summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--MEMORIAM5
-rw-r--r--meta-selftest/conf/layer.conf2
-rw-r--r--meta-selftest/lib/oeqa/runtime/cases/virgl.py9
-rw-r--r--meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend (renamed from meta-selftest/recipes-test/aspell/aspell_0.60.7.bbappend)0
-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/backported.patch37
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb4
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded5
-rw-r--r--meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb8
-rw-r--r--meta-selftest/recipes-test/license/incompatible-licenses.bb3
-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/recipeutils/recipeutils-test_1.2.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.bb50
-rw-r--r--meta/classes/archiver.bbclass156
-rw-r--r--meta/classes/autotools.bbclass4
-rw-r--r--meta/classes/baremetal-image.bbclass99
-rw-r--r--meta/classes/base.bbclass97
-rw-r--r--meta/classes/buildhistory.bbclass85
-rw-r--r--meta/classes/buildstats.bbclass6
-rw-r--r--meta/classes/chrpath.bbclass34
-rw-r--r--meta/classes/cmake.bbclass83
-rw-r--r--meta/classes/cml1.bbclass28
-rw-r--r--meta/classes/core-image.bbclass2
-rw-r--r--meta/classes/cross.bbclass2
-rw-r--r--meta/classes/crosssdk.bbclass7
-rw-r--r--meta/classes/cve-check.bbclass206
-rw-r--r--meta/classes/deploy.bbclass1
-rw-r--r--meta/classes/devicetree.bbclass2
-rw-r--r--meta/classes/devtool-source.bbclass12
-rw-r--r--meta/classes/distro_features_check.bbclass35
-rw-r--r--meta/classes/distutils-base.bbclass4
-rw-r--r--meta/classes/distutils.bbclass87
-rw-r--r--meta/classes/distutils3.bbclass38
-rw-r--r--meta/classes/externalsrc.bbclass7
-rw-r--r--meta/classes/features_check.bbclass57
-rw-r--r--meta/classes/fontcache.bbclass4
-rw-r--r--meta/classes/go-mod.bbclass20
-rw-r--r--meta/classes/go.bbclass5
-rw-r--r--meta/classes/goarch.bbclass9
-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/icecc.bbclass34
-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.bbclass17
-rw-r--r--meta/classes/image_types.bbclass21
-rw-r--r--meta/classes/image_types_wic.bbclass21
-rw-r--r--meta/classes/insane.bbclass178
-rw-r--r--meta/classes/kernel-artifact-names.bbclass8
-rw-r--r--meta/classes/kernel-devicetree.bbclass22
-rw-r--r--meta/classes/kernel-fitimage.bbclass102
-rw-r--r--meta/classes/kernel-yocto.bbclass385
-rw-r--r--meta/classes/kernel.bbclass110
-rw-r--r--meta/classes/kernelsrc.bbclass2
-rw-r--r--meta/classes/libc-common.bbclass37
-rw-r--r--meta/classes/libc-package.bbclass16
-rw-r--r--meta/classes/license.bbclass60
-rw-r--r--meta/classes/license_image.bbclass22
-rw-r--r--meta/classes/linuxloader.bbclass33
-rw-r--r--meta/classes/manpages.bbclass9
-rw-r--r--meta/classes/meson.bbclass42
-rw-r--r--meta/classes/mime-xdg.bbclass74
-rw-r--r--meta/classes/mime.bbclass71
-rw-r--r--meta/classes/multilib.bbclass37
-rw-r--r--meta/classes/native.bbclass2
-rw-r--r--meta/classes/nativesdk.bbclass4
-rw-r--r--meta/classes/nopackages.bbclass1
-rw-r--r--meta/classes/npm.bbclass363
-rw-r--r--meta/classes/package.bbclass345
-rw-r--r--meta/classes/package_deb.bbclass5
-rw-r--r--meta/classes/package_ipk.bbclass9
-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/patch.bbclass7
-rw-r--r--meta/classes/populate_sdk_base.bbclass16
-rw-r--r--meta/classes/populate_sdk_ext.bbclass81
-rw-r--r--meta/classes/ptest.bbclass2
-rw-r--r--meta/classes/pypi.bbclass4
-rw-r--r--meta/classes/python-dir.bbclass5
-rw-r--r--meta/classes/python3-dir.bbclass4
-rw-r--r--meta/classes/pythonnative.bbclass27
-rw-r--r--meta/classes/qemu.bbclass3
-rw-r--r--meta/classes/qemuboot.bbclass30
-rw-r--r--meta/classes/relocatable.bbclass20
-rw-r--r--meta/classes/report-error.bbclass8
-rw-r--r--meta/classes/reproducible_build.bbclass137
-rw-r--r--meta/classes/reproducible_build_simple.bbclass1
-rw-r--r--meta/classes/rm_work.bbclass48
-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.bbclass70
-rw-r--r--meta/classes/setuptools.bbclass3
-rw-r--r--meta/classes/sign_rpm.bbclass1
-rw-r--r--meta/classes/siteinfo.bbclass15
-rw-r--r--meta/classes/spdx.bbclass360
-rw-r--r--meta/classes/sstate.bbclass151
-rw-r--r--meta/classes/staging.bbclass49
-rw-r--r--meta/classes/systemd.bbclass6
-rw-r--r--meta/classes/testexport.bbclass8
-rw-r--r--meta/classes/testimage.bbclass90
-rw-r--r--meta/classes/texinfo.bbclass8
-rw-r--r--meta/classes/tinderclient.bbclass368
-rw-r--r--meta/classes/toaster.bbclass26
-rw-r--r--meta/classes/uboot-sign.bbclass11
-rw-r--r--meta/classes/uninative.bbclass19
-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.conf69
-rw-r--r--meta/conf/distro/defaultsetup.conf5
-rw-r--r--meta/conf/distro/include/default-distrovars.inc2
-rw-r--r--meta/conf/distro/include/distro_alias.inc12
-rw-r--r--meta/conf/distro/include/maintainers.inc249
-rw-r--r--meta/conf/distro/include/no-static-libs.inc4
-rw-r--r--meta/conf/distro/include/ptest-packagelists.inc18
-rw-r--r--meta/conf/distro/include/security_flags.inc10
-rw-r--r--meta/conf/distro/include/tclibc-baremetal.inc2
-rw-r--r--meta/conf/distro/include/tclibc-newlib.inc9
-rw-r--r--meta/conf/distro/include/tcmode-default.inc22
-rw-r--r--meta/conf/distro/include/yocto-uninative.inc10
-rw-r--r--meta/conf/documentation.conf16
-rw-r--r--meta/conf/layer.conf17
-rw-r--r--meta/conf/licenses.conf51
-rw-r--r--meta/conf/local.conf.sample12
-rw-r--r--meta/conf/local.conf.sample.extended13
-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/microblaze/arch-microblaze.inc35
-rw-r--r--meta/conf/machine/include/microblaze/feature-microblaze-math.inc12
-rw-r--r--meta/conf/machine/include/microblaze/feature-microblaze-versions.inc6
-rw-r--r--meta/conf/machine/include/mips/arch-mips.inc18
-rw-r--r--meta/conf/machine/include/powerpc/arch-powerpc.inc3
-rw-r--r--meta/conf/machine/include/powerpc/arch-powerpc64.inc2
-rw-r--r--meta/conf/machine/include/qemu.inc2
-rw-r--r--meta/conf/machine/include/qemuboot-mips.inc7
-rw-r--r--meta/conf/machine/include/qemuboot-x86.inc7
-rw-r--r--meta/conf/machine/include/riscv/arch-riscv.inc8
-rw-r--r--meta/conf/machine/include/riscv/qemuriscv.inc5
-rw-r--r--meta/conf/machine/include/riscv/tune-riscv.inc16
-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.inc9
-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.inc19
-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-power9.inc35
-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.inc4
-rw-r--r--meta/conf/machine/include/x86/arch-x86.inc12
-rw-r--r--meta/conf/machine/qemuarm.conf9
-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/machine/qemuriscv64.conf4
-rw-r--r--meta/conf/machine/qemux86-64.conf4
-rw-r--r--meta/conf/machine/qemux86.conf4
-rw-r--r--meta/conf/multilib.conf3
-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/Intel105
-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.sh20
-rw-r--r--meta/lib/bblayers/templates/example.bb4
-rw-r--r--meta/lib/oe/buildhistory_analysis.py67
-rw-r--r--meta/lib/oe/classextend.py34
-rw-r--r--meta/lib/oe/elf.py6
-rw-r--r--meta/lib/oe/manifest.py144
-rw-r--r--meta/lib/oe/package.py33
-rw-r--r--meta/lib/oe/package_manager.py1851
-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/packagedata.py5
-rw-r--r--meta/lib/oe/packagegroup.py8
-rw-r--r--meta/lib/oe/patch.py15
-rw-r--r--meta/lib/oe/path.py24
-rw-r--r--meta/lib/oe/prservice.py69
-rw-r--r--meta/lib/oe/qa.py4
-rw-r--r--meta/lib/oe/recipeutils.py34
-rw-r--r--meta/lib/oe/reproducible.py104
-rw-r--r--meta/lib/oe/rootfs.py629
-rw-r--r--meta/lib/oe/sdk.py285
-rw-r--r--meta/lib/oe/sstatesig.py117
-rw-r--r--meta/lib/oe/terminal.py5
-rw-r--r--meta/lib/oe/types.py4
-rw-r--r--meta/lib/oe/utils.py50
-rw-r--r--meta/lib/oeqa/buildperf/base.py2
-rw-r--r--meta/lib/oeqa/controllers/masterimage.py2
-rw-r--r--meta/lib/oeqa/core/context.py50
-rw-r--r--meta/lib/oeqa/core/decorator/data.py107
-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.py15
-rw-r--r--meta/lib/oeqa/core/target/ssh.py14
-rw-r--r--meta/lib/oeqa/core/utils/concurrencytest.py71
-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.json384
-rw-r--r--meta/lib/oeqa/manual/bsp-qemu.json222
-rw-r--r--meta/lib/oeqa/manual/compliance-test.json76
-rw-r--r--meta/lib/oeqa/manual/eclipse-plugin.json6
-rw-r--r--meta/lib/oeqa/manual/oe-core.json78
-rw-r--r--meta/lib/oeqa/runtime/cases/apt.py6
-rw-r--r--meta/lib/oeqa/runtime/cases/boot.py33
-rw-r--r--meta/lib/oeqa/runtime/cases/buildcpio.py5
-rw-r--r--meta/lib/oeqa/runtime/cases/date.py4
-rw-r--r--meta/lib/oeqa/runtime/cases/df.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/dnf.py3
-rw-r--r--meta/lib/oeqa/runtime/cases/logrotate.py58
-rw-r--r--meta/lib/oeqa/runtime/cases/ltp.py9
-rw-r--r--meta/lib/oeqa/runtime/cases/ltp_stress.py98
-rw-r--r--meta/lib/oeqa/runtime/cases/multilib.py11
-rw-r--r--meta/lib/oeqa/runtime/cases/opkg.py8
-rw-r--r--meta/lib/oeqa/runtime/cases/parselogs.py17
-rw-r--r--meta/lib/oeqa/runtime/cases/ptest.py33
-rw-r--r--meta/lib/oeqa/runtime/cases/rtc.py38
-rw-r--r--meta/lib/oeqa/runtime/cases/storage.py149
-rw-r--r--meta/lib/oeqa/runtime/cases/systemd.py16
-rw-r--r--meta/lib/oeqa/runtime/cases/terminal.py18
-rw-r--r--meta/lib/oeqa/runtime/cases/weston.py75
-rw-r--r--meta/lib/oeqa/runtime/cases/x32lib.py17
-rw-r--r--meta/lib/oeqa/runtime/context.py13
-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.py9
-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/sdk/context.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/case.py30
-rw-r--r--meta/lib/oeqa/selftest/cases/archiver.py194
-rw-r--r--meta/lib/oeqa/selftest/cases/bblayers.py8
-rw-r--r--meta/lib/oeqa/selftest/cases/bbtests.py17
-rw-r--r--meta/lib/oeqa/selftest/cases/buildoptions.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/containerimage.py3
-rw-r--r--meta/lib/oeqa/selftest/cases/devtool.py138
-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/distrodata.py33
-rw-r--r--meta/lib/oeqa/selftest/cases/gcc.py20
-rw-r--r--meta/lib/oeqa/selftest/cases/imagefeatures.py114
-rw-r--r--meta/lib/oeqa/selftest/cases/incompatible_lic.py106
-rw-r--r--meta/lib/oeqa/selftest/cases/meta_ide.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/oelib/buildhistory.py48
-rw-r--r--meta/lib/oeqa/selftest/cases/oescripts.py72
-rw-r--r--meta/lib/oeqa/selftest/cases/package.py25
-rw-r--r--meta/lib/oeqa/selftest/cases/prservice.py8
-rw-r--r--meta/lib/oeqa/selftest/cases/recipetool.py52
-rw-r--r--meta/lib/oeqa/selftest/cases/reproducible.py164
-rw-r--r--meta/lib/oeqa/selftest/cases/runcmd.py25
-rw-r--r--meta/lib/oeqa/selftest/cases/runtime_test.py212
-rw-r--r--meta/lib/oeqa/selftest/cases/signing.py25
-rw-r--r--meta/lib/oeqa/selftest/cases/sstate.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/sstatetests.py57
-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.py419
-rw-r--r--meta/lib/oeqa/selftest/context.py144
-rw-r--r--meta/lib/oeqa/targetcontrol.py16
-rw-r--r--meta/lib/oeqa/utils/commands.py27
-rw-r--r--meta/lib/oeqa/utils/dump.py5
-rw-r--r--meta/lib/oeqa/utils/httpserver.py4
-rw-r--r--meta/lib/oeqa/utils/logparser.py16
-rw-r--r--meta/lib/oeqa/utils/package_manager.py4
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py104
-rw-r--r--meta/lib/oeqa/utils/qemutinyrunner.py2
-rw-r--r--meta/lib/oeqa/utils/sshcontrol.py2
-rw-r--r--meta/recipes-bsp/alsa-state/alsa-state.bb2
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch24
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch18
-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.9.bb)7
-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.inc14
-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/lrzsz/lrzsz-0.12.20/acdefine.patch19
-rw-r--r--meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch5749
-rw-r--r--meta/recipes-bsp/lrzsz/lrzsz-0.12.20/gettext.patch21884
-rw-r--r--meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch49
-rw-r--r--meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb4
-rw-r--r--meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch16
-rw-r--r--meta/recipes-bsp/opensbi/opensbi-payloads.inc20
-rw-r--r--meta/recipes-bsp/opensbi/opensbi_0.8.bb (renamed from meta/recipes-bsp/opensbi/opensbi_0.4.bb)28
-rw-r--r--meta/recipes-bsp/pciutils/pciutils/configure.patch4
-rw-r--r--meta/recipes-bsp/pciutils/pciutils_3.7.0.bb (renamed from meta/recipes-bsp/pciutils/pciutils_3.6.2.bb)3
-rw-r--r--meta/recipes-bsp/u-boot/files/0001-CVE-2019-13103.patch69
-rw-r--r--meta/recipes-bsp/u-boot/files/0002-CVE-2019-13104.patch49
-rw-r--r--meta/recipes-bsp/u-boot/files/0003-CVE-2019-13105.patch37
-rw-r--r--meta/recipes-bsp/u-boot/files/0004-CVE-2019-13106.patch56
-rw-r--r--meta/recipes-bsp/u-boot/files/0005-CVE-2019-14192-14193-14199.patch43
-rw-r--r--meta/recipes-bsp/u-boot/files/0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch44
-rw-r--r--meta/recipes-bsp/u-boot/files/0007-CVE-2019-14194-14198.patch42
-rw-r--r--meta/recipes-bsp/u-boot/files/0008-CVE-2019-14195.patch42
-rw-r--r--meta/recipes-bsp/u-boot/files/0009-CVE-2019-14196.patch48
-rw-r--r--meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb30
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-common.inc15
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.07.bb34
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-tools.inc (renamed from meta/recipes-bsp/u-boot/u-boot-tools_2019.07.bb)9
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb2
-rw-r--r--meta/recipes-bsp/u-boot/u-boot.inc164
-rw-r--r--meta/recipes-bsp/u-boot/u-boot_2020.07.bb (renamed from meta/recipes-bsp/u-boot/u-boot_2019.07.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)17
-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.patch32
-rw-r--r--meta/recipes-connectivity/bind/bind/0001-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch22
-rw-r--r--meta/recipes-connectivity/bind/bind/0001-lib-dns-gen.c-fix-too-long-error.patch31
-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.5-P4.bb)46
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5.inc27
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch12
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch32
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5/0001-tools-Fix-build-after-y2038-changes-in-glibc.patch68
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch505
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5/gcc9-fixes.patch301
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch26
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5/run-ptest2
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5_5.54.bb (renamed from meta/recipes-connectivity/bluez5/bluez5_5.50.bb)4
-rw-r--r--meta/recipes-connectivity/connman/connman-gnome_0.7.bb4
-rw-r--r--meta/recipes-connectivity/connman/connman.inc18
-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-Fix-a-NSUPDATE-compiling-issue.patch68
-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-master-Added-includes-of-new-BIND9-compatibility-hea.patch79
-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.patch93
-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.1.bb22
-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.inc37
-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.2.0.bb)6
-rw-r--r--meta/recipes-connectivity/iw/iw/separate-objdir.patch24
-rw-r--r--meta/recipes-connectivity/iw/iw_5.8.bb (renamed from meta/recipes-connectivity/iw/iw_5.3.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/libnss-mdns/libnss-mdns_0.14.1.bb (renamed from meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb)20
-rw-r--r--meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb2
-rw-r--r--meta/recipes-connectivity/libuv/libuv_1.39.0.bb19
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Don-t-build-tools-with-CC_FOR_BUILD.patch40
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-include-order-between-config.h-and-stat.h.patch156
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch12
-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/0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch40
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/clang-format-string.patch183
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/clang-warnings.patch61
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service1
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch46
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver2
-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.1.bb)45
-rw-r--r--meta/recipes-connectivity/ofono/ofono_1.30.bb9
-rw-r--r--meta/recipes-connectivity/ofono/ofono_1.31.bb (renamed from meta/recipes-connectivity/ofono/ofono.inc)37
-rwxr-xr-xmeta/recipes-connectivity/openssh/openssh/run-ptest1
-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.0p1.bb)21
-rw-r--r--meta/recipes-connectivity/openssl/openssl/reproducible.patch32
-rw-r--r--meta/recipes-connectivity/openssl/openssl_1.1.1g.bb (renamed from meta/recipes-connectivity/openssl/openssl_1.1.1d.bb)23
-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-pppd-Fix-bounds-check-in-EAP-code.patch47
-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)11
-rw-r--r--meta/recipes-connectivity/resolvconf/resolvconf_1.83.bb (renamed from meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb)7
-rw-r--r--meta/recipes-connectivity/socat/socat_1.7.3.4.bb (renamed from meta/recipes-connectivity/socat/socat_1.7.3.3.bb)13
-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-AP-Silently-ignore-management-frame-from-unexpected-.patch82
-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.bb12
-rw-r--r--meta/recipes-core/base-files/base-files/fstab2
-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.inc61
-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/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.0.bb)10
-rw-r--r--meta/recipes-core/busybox/files/inittab12
-rw-r--r--meta/recipes-core/busybox/files/run-ptest2
-rw-r--r--meta/recipes-core/busybox/files/simple.script4
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/0001-Cover-the-else-with-__GLIBC__.patch51
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/0001-Fix-format-security-compilation-error.patch57
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/0001-kbdtools-Include-sys-types.h-for-u_char-and-u_short-.patch44
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/Makevars41
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch17
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch12
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch29
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/fix-libconsole-linking.patch56
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch75
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/lcmessage.m424
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/no-dep-on-libfl.patch19
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/nodocs.patch22
-rw-r--r--meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch49
-rw-r--r--meta/recipes-core/console-tools/console-tools_0.3.2.bb48
-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)76
-rw-r--r--meta/recipes-core/dbus/dbus-glib_0.110.bb4
-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/dbus-1.init4
-rwxr-xr-xmeta/recipes-core/dbus/dbus/run-ptest4
-rw-r--r--meta/recipes-core/dbus/dbus_1.12.20.bb (renamed from meta/recipes-core/dbus/dbus_1.12.16.bb)40
-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.22.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.bb (renamed from meta/recipes-core/expat/expat_2.2.8.bb)18
-rw-r--r--meta/recipes-core/gettext/gettext-0.19.8.1/add-with-bisonlocaledir.patch58
-rw-r--r--meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch87
-rw-r--r--meta/recipes-core/gettext/gettext-0.19.8.1/fix-CVE-2018-18751.patch141
-rw-r--r--meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch23
-rw-r--r--meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch321
-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.patch26
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/mingw.patch28
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/parallel.patch32
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/run-ptest (renamed from meta/recipes-core/gettext/gettext-0.19.8.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.19.8.1/serial-tests-config.patch)26
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/use-pkgconfig.patch699
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch38
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgzbin40014 -> 0 bytes
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/COPYING (renamed from meta/recipes-core/gettext/gettext-minimal-0.19.8.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.19.8.1/Makefile.in.in)133
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/gettext.m4386
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/host-cpu-c-abi.m4675
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/iconv.m4288
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/intlmacosx.m465
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-ld.m4168
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-link.m4800
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-prefix.m4320
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/nls.m432
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/po.m4450
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/progtest.m491
-rwxr-xr-xmeta/recipes-core/gettext/gettext-minimal-0.21/config.rpath (renamed from meta/recipes-core/gettext/gettext-minimal-0.19.8.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.19.8.1/remove-potcdate.sin)8
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-native_0.21.bb (renamed from meta/recipes-core/gettext/gettext-minimal-native_0.19.8.1.bb)5
-rw-r--r--meta/recipes-core/gettext/gettext_0.21.bb (renamed from meta/recipes-core/gettext/gettext_0.19.8.1.bb)59
-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.patch33
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch31
-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.patch24
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch28
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch29
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch62
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch27
-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.patch40
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common3
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc (renamed from meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross)4
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux5
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw6
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl6
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch12
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/run-ptest3
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch22
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.60.7.bb25
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.64.5.bb49
-rw-r--r--meta/recipes-core/glib-2.0/glib.inc28
-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.60.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.30.bb)17
-rw-r--r--meta/recipes-core/glibc/glibc-common.inc4
-rw-r--r--meta/recipes-core/glibc/glibc-locale_2.32.bb (renamed from meta/recipes-core/glibc/glibc-locale_2.30.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-mtrace_2.32.bb (renamed from meta/recipes-core/glibc/glibc-mtrace_2.30.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-package.inc58
-rw-r--r--meta/recipes-core/glibc/glibc-scripts_2.32.bb (renamed from meta/recipes-core/glibc/glibc-scripts_2.30.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-testing.inc95
-rw-r--r--meta/recipes-core/glibc/glibc-testsuite_2.32.bb (renamed from meta/recipes-core/glibc/glibc-testsuite_2.30.bb)3
-rw-r--r--meta/recipes-core/glibc/glibc-version.inc8
-rw-r--r--meta/recipes-core/glibc/glibc.inc6
-rw-r--r--meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch (renamed from meta/recipes-core/glibc/glibc/add-cross-localedef-hardlink.patch)918
-rw-r--r--meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch (renamed from meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch)53
-rw-r--r--meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch (renamed from meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch)12
-rw-r--r--meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch (renamed from meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch)10
-rw-r--r--meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch (renamed from meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch)32
-rw-r--r--meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch (renamed from meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch)8
-rw-r--r--meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch (renamed from meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch)57
-rw-r--r--meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch (renamed from meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch)6
-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/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch)6
-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/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch)6
-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/0010-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/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch)8
-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/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch)6
-rw-r--r--meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch34
-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/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch)6
-rw-r--r--meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch14
-rw-r--r--meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch8
-rw-r--r--meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch6
-rw-r--r--meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch6
-rw-r--r--meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch14
-rw-r--r--meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch83
-rw-r--r--meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch (renamed from meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch)8
-rw-r--r--meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch (renamed from meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch)67
-rw-r--r--meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch (renamed from meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch)8
-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/0024-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/0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch)8
-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/0026-intl-Emit-no-lines-in-bison-generated-files.patch)8
-rw-r--r--meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch (renamed from meta/recipes-core/glibc/glibc/0027-inject-file-assembly-directives.patch)80
-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/0028-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch)8
-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/0007-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.30.bb)55
-rw-r--r--meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch23
-rw-r--r--meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch403
-rw-r--r--meta/recipes-core/ifupdown/files/run-ptest (renamed from meta/recipes-core/kbd/kbd/run-ptest)2
-rw-r--r--meta/recipes-core/ifupdown/files/tweak-ptest-script.patch49
-rw-r--r--meta/recipes-core/ifupdown/ifupdown_0.8.35.bb (renamed from meta/recipes-core/ifupdown/ifupdown_0.8.22.bb)22
-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/sysfs.sh4
-rw-r--r--meta/recipes-core/initscripts/initscripts_1.0.bb3
-rw-r--r--meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch56
-rw-r--r--meta/recipes-core/kbd/kbd_2.0.4.bb64
-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.8.bb)2
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt.inc (renamed from meta/recipes-core/libxcrypt/libxcrypt_4.4.8.bb)10
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt_4.4.17.bb2
-rw-r--r--meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch62
-rw-r--r--meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch37
-rw-r--r--meta/recipes-core/libxml/libxml2/CVE-2020-24977.patch41
-rw-r--r--meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch36
-rw-r--r--meta/recipes-core/libxml/libxml2_2.9.10.bb (renamed from meta/recipes-core/libxml/libxml2_2.9.9.bb)9
-rw-r--r--meta/recipes-core/meta/build-sysroots.bb4
-rw-r--r--meta/recipes-core/meta/buildtools-extended-tarball.bb36
-rw-r--r--meta/recipes-core/meta/buildtools-tarball.bb24
-rw-r--r--meta/recipes-core/meta/cve-update-db-native.bb170
-rw-r--r--meta/recipes-core/meta/dummy-sdk-package.inc7
-rw-r--r--meta/recipes-core/meta/meta-extsdk-toolchain.bb3
-rw-r--r--meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb8
-rw-r--r--meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb7
-rw-r--r--meta/recipes-core/meta/package-index.bb1
-rw-r--r--meta/recipes-core/meta/signing-keys.bb2
-rw-r--r--meta/recipes-core/meta/target-sdk-provides-dummy.bb1
-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_git.bb64
-rw-r--r--meta/recipes-core/musl/musl.inc6
-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/0001-riscv-Define-sigcontext-again.patch48
-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.bb36
-rw-r--r--meta/recipes-core/ncurses/files/config.cache4
-rw-r--r--meta/recipes-core/ncurses/ncurses.inc11
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.1+20190803.bb11
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.2.bb13
-rw-r--r--meta/recipes-core/netbase/netbase/netbase-add-rpcbind-as-an-alias-to-sunrpc.patch46
-rw-r--r--meta/recipes-core/netbase/netbase_6.1.bb (renamed from meta/recipes-core/netbase/netbase_5.6.bb)13
-rw-r--r--meta/recipes-core/newlib/libgloss_3.3.0.bb (renamed from meta/recipes-core/newlib/libgloss_3.1.0.bb)0
-rw-r--r--meta/recipes-core/newlib/newlib.inc10
-rw-r--r--meta/recipes-core/newlib/newlib_3.3.0.bb (renamed from meta/recipes-core/newlib/newlib_3.1.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/no-stack-protector-all-archs.patch)30
-rw-r--r--meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch (renamed from meta/recipes-core/ovmf/ovmf/0002-ovmf-update-path-to-native-BaseTools.patch)11
-rw-r--r--meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch (renamed from meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch)17
-rw-r--r--meta/recipes-core/ovmf/ovmf/0003-ovmf-enable-long-path-file.patch (renamed from meta/recipes-core/ovmf/ovmf/0004-ovmf-enable-long-path-file.patch)18
-rw-r--r--meta/recipes-core/ovmf/ovmf/VfrCompile-increase-path-length-limit.patch33
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb24
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-base.bb8
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-sdk.bb1
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb5
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb16
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb3
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-self-hosted.bb7
-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_243.bb)26
-rw-r--r--meta/recipes-core/systemd/systemd-compat-units.bb4
-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_243.bb)0
-rw-r--r--meta/recipes-core/systemd/systemd-serialgetty.bb6
-rw-r--r--meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service11
-rwxr-xr-xmeta/recipes-core/systemd/systemd-systemctl/systemctl2
-rw-r--r--meta/recipes-core/systemd/systemd.inc6
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch62
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch162
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Revert-meson-print-EFI-CC-configuration-nicely.patch33
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Revert-meson-use-an-array-option-for-efi-cc.patch77
-rw-r--r--meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch53
-rw-r--r--meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch276
-rw-r--r--meta/recipes-core/systemd/systemd/0001-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch48
-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/0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch42
-rw-r--r--meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch54
-rw-r--r--meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch8
-rw-r--r--meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch63
-rw-r--r--meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch10
-rw-r--r--meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch37
-rw-r--r--meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch12
-rw-r--r--meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch61
-rw-r--r--meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch34
-rw-r--r--meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch14
-rw-r--r--meta/recipes-core/systemd/systemd/0005-rules-watch-metadata-changes-in-ide-devices.patch45
-rw-r--r--meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch445
-rw-r--r--meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch206
-rw-r--r--meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch48
-rw-r--r--meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch10
-rw-r--r--meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch20
-rw-r--r--meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch40
-rw-r--r--meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch15
-rw-r--r--meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch34
-rw-r--r--meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch26
-rw-r--r--meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch17
-rw-r--r--meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch28
-rw-r--r--meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch10
-rw-r--r--meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch10
-rw-r--r--meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch23
-rw-r--r--meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch10
-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/0024-test-json.c-define-M_PIl.patch12
-rw-r--r--meta/recipes-core/systemd/systemd_246.6.bb (renamed from meta/recipes-core/systemd/systemd_243.bb)123
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-inittab/start_getty4
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch52
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch14
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch33
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/install.patch48
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch64
-rwxr-xr-xmeta/recipes-core/sysvinit/sysvinit/rc9
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/realpath.patch85
-rw-r--r--meta/recipes-core/sysvinit/sysvinit_2.97.bb (renamed from meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb)26
-rw-r--r--meta/recipes-core/udev/eudev_3.2.9.bb (renamed from meta/recipes-core/udev/eudev_3.2.8.bb)8
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.34.bb12
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.36.bb (renamed from meta/recipes-core/util-linux/util-linux.inc)32
-rw-r--r--meta/recipes-core/volatile-binds/files/volatile-binds.service.in1
-rw-r--r--meta/recipes-core/volatile-binds/volatile-binds.bb2
-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-archive/autoconf-archive_2019.01.06.bb2
-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.32.inc)44
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils-cross-canadian_2.32.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.32.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils-cross_2.32.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils-crosssdk_2.32.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils.inc44
-rw-r--r--meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch46
-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.patch98
-rw-r--r--meta/recipes-devtools/binutils/binutils/0003-configure-widen-the-regexp-for-SH-architectures.patch47
-rw-r--r--meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch44
-rw-r--r--meta/recipes-devtools/binutils/binutils/0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch41
-rw-r--r--meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch (renamed from meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch)14
-rw-r--r--meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch41
-rw-r--r--meta/recipes-devtools/binutils/binutils/0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch10
-rw-r--r--meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch86
-rw-r--r--meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch (renamed from meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch)30
-rw-r--r--meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch (renamed from meta/recipes-devtools/binutils/binutils/0011-Add-support-for-Netlogic-XLP.patch)130
-rw-r--r--meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch (renamed from meta/recipes-devtools/binutils/binutils/0012-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch)25
-rw-r--r--meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch (renamed from meta/recipes-devtools/binutils/binutils/0013-Detect-64-bit-MIPS-targets.patch)8
-rw-r--r--meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch (renamed from meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch)2767
-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/0009-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch)8
-rw-r--r--meta/recipes-devtools/binutils/binutils/0015-binutils-enable-x86_64-pep-for-producing-EFI-binarie.patch53
-rw-r--r--meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch (renamed from meta/recipes-devtools/binutils/binutils/0014-sync-with-OE-libtool-changes.patch)8
-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/CVE-2019-12972.patch51
-rw-r--r--meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch33
-rw-r--r--meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch28
-rw-r--r--meta/recipes-devtools/binutils/binutils/CVE-2019-9071.patch165
-rw-r--r--meta/recipes-devtools/binutils/binutils/CVE-2019-9074.patch68
-rw-r--r--meta/recipes-devtools/binutils/binutils/CVE-2019-9075.patch119
-rw-r--r--meta/recipes-devtools/binutils/binutils/CVE-2019-9076.patch49
-rw-r--r--meta/recipes-devtools/binutils/binutils/CVE-2019-9077.patch37
-rw-r--r--meta/recipes-devtools/binutils/binutils_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils_2.32.bb)12
-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.4.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.2.2.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.3.bb7
-rw-r--r--meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb11
-rw-r--r--meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch27
-rw-r--r--meta/recipes-devtools/cmake/cmake-native_3.18.2.bb (renamed from meta/recipes-devtools/cmake/cmake-native_3.15.3.bb)3
-rw-r--r--meta/recipes-devtools/cmake/cmake.inc17
-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.patch4
-rw-r--r--meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch4
-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.15.3.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.0.bb)6
-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/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch24
-rw-r--r--meta/recipes-devtools/diffstat/diffstat_1.63.bb (renamed from meta/recipes-devtools/diffstat/diffstat_1.62.bb)7
-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)6
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools_4.1.bb5
-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.inc2
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-configure.ac-correct-AM_GNU_GETTEXT.patch26
-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-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch27
-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.patch7
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch13
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.3.bb)21
-rw-r--r--meta/recipes-devtools/elfutils/elfutils_0.180.bb (renamed from meta/recipes-devtools/elfutils/elfutils_0.177.bb)64
-rw-r--r--meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch12
-rw-r--r--meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch8
-rw-r--r--meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch (renamed from meta/recipes-devtools/elfutils/files/musl-obstack-fts.patch)56
-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.patch (renamed from meta/recipes-devtools/elfutils/files/musl-libs.patch)18
-rw-r--r--meta/recipes-devtools/elfutils/files/0003-musl-utils.patch (renamed from meta/recipes-devtools/elfutils/files/musl-utils.patch)20
-rw-r--r--meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch (renamed from meta/recipes-devtools/elfutils/files/musl-tests.patch)17
-rw-r--r--meta/recipes-devtools/elfutils/files/0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch42
-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.diff831
-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.diff717
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch131
-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.37.bb)26
-rw-r--r--meta/recipes-devtools/flex/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch32
-rw-r--r--meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch64
-rw-r--r--meta/recipes-devtools/flex/flex/CVE-2016-6354.patch59
-rw-r--r--meta/recipes-devtools/flex/flex/check-funcs.patch67
-rw-r--r--meta/recipes-devtools/flex/flex/do_not_create_pdf_doc.patch17
-rwxr-xr-xmeta/recipes-devtools/flex/flex/run-ptest2
-rw-r--r--meta/recipes-devtools/flex/flex_2.6.4.bb (renamed from meta/recipes-devtools/flex/flex_2.6.0.bb)20
-rw-r--r--meta/recipes-devtools/gcc/gcc-10.2.inc (renamed from meta/recipes-devtools/gcc/gcc-9.2.inc)62
-rw-r--r--meta/recipes-devtools/gcc/gcc-8.3/CVE-2019-14250.patch44
-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/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-common.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-configure-common.inc5
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian.inc35
-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.inc108
-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.inc35
-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.inc2
-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.inc33
-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)171
-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.inc8
-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-8.3.1.inc21
-rw-r--r--meta/recipes-devtools/gdb/gdb-9.2.inc21
-rw-r--r--meta/recipes-devtools/gdb/gdb-cross-canadian_9.2.bb (renamed from meta/recipes-devtools/gdb/gdb-cross-canadian_8.3.1.bb)0
-rw-r--r--meta/recipes-devtools/gdb/gdb-cross_9.2.bb (renamed from meta/recipes-devtools/gdb/gdb-cross_8.3.1.bb)0
-rw-r--r--meta/recipes-devtools/gdb/gdb/0001-gdbserver-ctrl-c-handling.patch26
-rw-r--r--meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch (renamed from meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch)9
-rw-r--r--meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch (renamed from meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch)9
-rw-r--r--meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch (renamed from meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch)7
-rw-r--r--meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch (renamed from meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch)41
-rw-r--r--meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch (renamed from meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch)13
-rw-r--r--meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch (renamed from meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch)9
-rw-r--r--meta/recipes-devtools/gdb/gdb/0007-Use-exorted-definitions-of-SIGRTMIN.patch (renamed from meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch)11
-rw-r--r--meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch (renamed from meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch)13
-rw-r--r--meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch (renamed from meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch)17
-rw-r--r--meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch (renamed from meta/recipes-devtools/gdb/gdb/0011-Fix-invalid-sigprocmask-call.patch)23
-rw-r--r--meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch39
-rw-r--r--meta/recipes-devtools/gdb/gdb_9.2.bb (renamed from meta/recipes-devtools/gdb/gdb_8.3.1.bb)0
-rw-r--r--meta/recipes-devtools/git/git.inc20
-rw-r--r--meta/recipes-devtools/git/git_2.23.0.bb11
-rw-r--r--meta/recipes-devtools/git/git_2.28.0.bb9
-rw-r--r--meta/recipes-devtools/glide/glide_0.13.3.bb (renamed from meta/recipes-devtools/glide/glide_0.13.2.bb)6
-rw-r--r--meta/recipes-devtools/gnu-config/gnu-config_git.bb4
-rw-r--r--meta/recipes-devtools/go/go-1.12/0001-allow-CC-and-CXX-to-have-multiple-words.patch31
-rw-r--r--meta/recipes-devtools/go/go-1.12/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch48
-rw-r--r--meta/recipes-devtools/go/go-1.12/0009-ld-replace-glibc-dynamic-linker-with-musl.patch112
-rw-r--r--meta/recipes-devtools/go/go-1.15.inc (renamed from meta/recipes-devtools/go/go-1.12.inc)9
-rw-r--r--meta/recipes-devtools/go/go-1.15/0001-allow-CC-and-CXX-to-have-multiple-words.patch33
-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.12/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch)107
-rw-r--r--meta/recipes-devtools/go/go-1.15/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch47
-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.12/0004-ld-add-soname-to-shareable-objects.patch)28
-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.12/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch)26
-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.12/0006-cmd-dist-separate-host-and-target-builds.patch)96
-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.12/0007-cmd-go-make-GOROOT-precious-by-default.patch)62
-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.12/0008-use-GOBUILDMODE-to-set-buildmode.patch)35
-rw-r--r--meta/recipes-devtools/go/go-binary-native_1.15.2.bb46
-rw-r--r--meta/recipes-devtools/go/go-common.inc10
-rw-r--r--meta/recipes-devtools/go/go-cross-canadian.inc8
-rw-r--r--meta/recipes-devtools/go/go-cross-canadian_1.15.bb (renamed from meta/recipes-devtools/go/go-cross-canadian_1.12.bb)0
-rw-r--r--meta/recipes-devtools/go/go-cross.inc13
-rw-r--r--meta/recipes-devtools/go/go-cross_1.15.bb (renamed from meta/recipes-devtools/go/go-cross_1.12.bb)0
-rw-r--r--meta/recipes-devtools/go/go-crosssdk.inc11
-rw-r--r--meta/recipes-devtools/go/go-crosssdk_1.15.bb (renamed from meta/recipes-devtools/go/go-crosssdk_1.12.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/0001-bolt_riscv64-Add-support-for-riscv64.patch33
-rw-r--r--meta/recipes-devtools/go/go-dep_0.5.4.bb6
-rw-r--r--meta/recipes-devtools/go/go-native_1.12.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.inc15
-rw-r--r--meta/recipes-devtools/go/go-runtime_1.15.bb (renamed from meta/recipes-devtools/go/go-runtime_1.12.bb)1
-rw-r--r--meta/recipes-devtools/go/go-target.inc13
-rw-r--r--meta/recipes-devtools/go/go_1.12.bb14
-rw-r--r--meta/recipes-devtools/go/go_1.15.bb15
-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/i2c-tools/i2c-tools_4.1.bb1
-rw-r--r--meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb2
-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-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch41
-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.patch27
-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/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)10
-rw-r--r--meta/recipes-devtools/libedit/libedit/0001-readline.c-fix-cannot-get-history.patch34
-rw-r--r--meta/recipes-devtools/libedit/libedit_20191231-3.1.bb (renamed from meta/recipes-devtools/libedit/libedit_20190324-3.1.bb)11
-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/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch22
-rw-r--r--meta/recipes-devtools/libmodulemd/libmodulemd/0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch28
-rw-r--r--meta/recipes-devtools/libmodulemd/libmodulemd/0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch71
-rw-r--r--meta/recipes-devtools/libmodulemd/libmodulemd_git.bb16
-rw-r--r--meta/recipes-devtools/librepo/librepo_1.12.1.bb (renamed from meta/recipes-devtools/librepo/librepo_1.10.5.bb)2
-rw-r--r--meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb2
-rw-r--r--meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch12
-rw-r--r--meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch11
-rw-r--r--meta/recipes-devtools/llvm/llvm_git.bb28
-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/makedevs/makedevs/makedevs.c10
-rw-r--r--meta/recipes-devtools/meson/meson.inc10
-rw-r--r--meta/recipes-devtools/meson/meson/0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch28
-rw-r--r--meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch16
-rw-r--r--meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch29
-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-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch8
-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/0001-python-module-do-not-manipulate-the-environment-when.patch16
-rw-r--r--meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch8
-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.patch40
-rw-r--r--meta/recipes-devtools/meson/meson/disable-rpath-handling.patch29
-rw-r--r--meta/recipes-devtools/meson/meson/vala-cross-compile.patch50
-rw-r--r--meta/recipes-devtools/meson/meson_0.55.1.bb (renamed from meta/recipes-devtools/meson/meson_0.51.2.bb)0
-rw-r--r--meta/recipes-devtools/meson/nativesdk-meson_0.55.1.bb (renamed from meta/recipes-devtools/meson/nativesdk-meson_0.51.2.bb)1
-rw-r--r--meta/recipes-devtools/mmc/mmc-utils_git.bb2
-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.patch115
-rw-r--r--meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch294
-rw-r--r--meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch116
-rw-r--r--meta/recipes-devtools/nasm/nasm_2.15.05.bb (renamed from meta/recipes-devtools/nasm/nasm_2.14.02.bb)11
-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/0001-Switch-all-scripts-to-use-Python-3.x.patch113
-rw-r--r--meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch44
-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.1.bb)23
-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.1.bb)21
-rw-r--r--meta/recipes-devtools/orc/orc_0.4.31.bb (renamed from meta/recipes-devtools/orc/orc_0.4.29.bb)10
-rw-r--r--meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb16
-rw-r--r--meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch4
-rw-r--r--meta/recipes-devtools/patch/patch_2.7.6.bb3
-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-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch24
-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/determinism.patch68
-rw-r--r--meta/recipes-devtools/perl/files/encodefix.patch20
-rw-r--r--meta/recipes-devtools/perl/files/fix-setgroup.patch49
-rw-r--r--meta/recipes-devtools/perl/files/perl-configpm-switch.patch4
-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/liberror-perl_0.17029.bb (renamed from meta/recipes-devtools/perl/liberror-perl_0.17027.bb)6
-rw-r--r--meta/recipes-devtools/perl/libmodule-build-perl/run-ptest2
-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)30
-rw-r--r--meta/recipes-devtools/perl/libxml-parser-perl_2.46.bb (renamed from meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb)11
-rw-r--r--meta/recipes-devtools/perl/perl-ptest.inc3
-rw-r--r--meta/recipes-devtools/perl/perl_5.32.0.bb (renamed from meta/recipes-devtools/perl/perl_5.30.0.bb)101
-rw-r--r--meta/recipes-devtools/pkgconf/pkgconf_1.7.3.bb (renamed from meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb)4
-rw-r--r--meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch110
-rw-r--r--meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch51
-rw-r--r--meta/recipes-devtools/prelink/prelink_git.bb6
-rw-r--r--meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch34
-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.inc19
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_git.bb7
-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-npy_cpu-Add-riscv-support.patch24
-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/files/aarch64/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/aarch64/config.h139
-rw-r--r--meta/recipes-devtools/python-numpy/files/arm/config.h21
-rw-r--r--meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h17
-rw-r--r--meta/recipes-devtools/python-numpy/files/armeb/config.h21
-rw-r--r--meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h17
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h139
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h31
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h138
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h139
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h138
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h139
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h21
-rw-r--r--meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h18
-rw-r--r--meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/powerpc/config.h139
-rw-r--r--meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/powerpc64/config.h139
-rw-r--r--meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/riscv64/config.h139
-rw-r--r--meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h32
-rw-r--r--meta/recipes-devtools/python-numpy/files/x86-64/config.h139
-rw-r--r--meta/recipes-devtools/python-numpy/files/x86/config.h108
-rw-r--r--meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h24
-rw-r--r--meta/recipes-devtools/python-numpy/python-numpy.inc80
-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.0.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-async.inc2
-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-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch39
-rw-r--r--meta/recipes-devtools/python/python-native/10-distutils-fix-swig-parameter.patch18
-rw-r--r--meta/recipes-devtools/python/python-native/11-distutils-never-modify-shebang-line.patch20
-rw-r--r--meta/recipes-devtools/python/python-native/debug.patch32
-rw-r--r--meta/recipes-devtools/python/python-native/multilib.patch235
-rw-r--r--meta/recipes-devtools/python/python-native/nohostlibs.patch54
-rw-r--r--meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch86
-rw-r--r--meta/recipes-devtools/python/python-native/unixccompiler.patch20
-rw-r--r--meta/recipes-devtools/python/python-native_2.7.16.bb89
-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-setuptools_41.2.0.bb9
-rw-r--r--meta/recipes-devtools/python/python-six.inc7
-rw-r--r--meta/recipes-devtools/python/python-smmap.inc7
-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/python.inc52
-rw-r--r--meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch51
-rw-r--r--meta/recipes-devtools/python/python/0001-python2-use-cc_basename-to-replace-CC-for-checking-c.patch114
-rw-r--r--meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch100
-rw-r--r--meta/recipes-devtools/python/python/03-fix-tkinter-detection.patch46
-rw-r--r--meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch27
-rw-r--r--meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch35
-rw-r--r--meta/recipes-devtools/python/python/CVE-2018-20852.patch123
-rw-r--r--meta/recipes-devtools/python/python/CVE-2019-9740.patch216
-rw-r--r--meta/recipes-devtools/python/python/add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch28
-rw-r--r--meta/recipes-devtools/python/python/add-md5module-support.patch18
-rw-r--r--meta/recipes-devtools/python/python/avoid_warning_about_tkinter.patch29
-rw-r--r--meta/recipes-devtools/python/python/avoid_warning_for_sunos_specific_module.patch23
-rw-r--r--meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch55
-rw-r--r--meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch55
-rw-r--r--meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch28
-rw-r--r--meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch111
-rw-r--r--meta/recipes-devtools/python/python/builddir.patch46
-rw-r--r--meta/recipes-devtools/python/python/cgi_py.patch23
-rw-r--r--meta/recipes-devtools/python/python/check-if-target-is-64b-not-host.patch57
-rw-r--r--meta/recipes-devtools/python/python/create_manifest2.py298
-rw-r--r--meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch77
-rw-r--r--meta/recipes-devtools/python/python/float-endian.patch216
-rw-r--r--meta/recipes-devtools/python/python/get_module_deps2.py112
-rw-r--r--meta/recipes-devtools/python/python/host_include_contamination.patch28
-rw-r--r--meta/recipes-devtools/python/python/multilib.patch298
-rw-r--r--meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch19
-rw-r--r--meta/recipes-devtools/python/python/pass-missing-libraries-to-Extension-for-mul.patch82
-rw-r--r--meta/recipes-devtools/python/python/python-2.7.3-remove-bsdb-rpath.patch28
-rw-r--r--meta/recipes-devtools/python/python/python2-manifest.json1138
-rw-r--r--meta/recipes-devtools/python/python/run-ptest3
-rw-r--r--meta/recipes-devtools/python/python/search_db_h_in_inc_dirs_and_avoid_warning.patch35
-rw-r--r--meta/recipes-devtools/python/python/setup_py_skip_cross_import_check.patch27
-rw-r--r--meta/recipes-devtools/python/python/setuptweaks.patch57
-rw-r--r--meta/recipes-devtools/python/python/sitecustomize.py37
-rw-r--r--meta/recipes-devtools/python/python/support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch34
-rw-r--r--meta/recipes-devtools/python/python/use_sysroot_ncurses_instead_of_host.patch21
-rw-r--r--meta/recipes-devtools/python/python3-cython_0.29.21.bb18
-rw-r--r--meta/recipes-devtools/python/python3-dbus_1.2.16.bb (renamed from meta/recipes-devtools/python/python3-dbus_1.2.12.bb)4
-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.2.bb)3
-rw-r--r--meta/recipes-devtools/python/python3-gitdb_2.0.5.bb2
-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.bb21
-rw-r--r--meta/recipes-devtools/python/python3-magic_0.4.18.bb22
-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-pbr_5.4.3.bb5
-rw-r--r--meta/recipes-devtools/python/python3-pbr_5.4.4.bb5
-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.bb (renamed from meta/recipes-devtools/python/python3-pip_19.2.3.bb)8
-rw-r--r--meta/recipes-devtools/python/python3-pycairo_1.19.1.bb (renamed from meta/recipes-devtools/python/python3-pycairo_1.18.1.bb)6
-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.4.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_41.2.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.12.0.bb2
-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/no_traceback2.patch23
-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)2
-rw-r--r--meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch14
-rw-r--r--meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch158
-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-Makefile-do-not-compile-.pyc-in-parallel.patch58
-rw-r--r--meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch22
-rw-r--r--meta/recipes-devtools/python/python3/0001-configure.ac-fix-LIBPL.patch35
-rw-r--r--meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch10
-rw-r--r--meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch49
-rw-r--r--meta/recipes-devtools/python/python3/0001-python3-Do-not-hardcode-lib-for-distutils.patch43
-rw-r--r--meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch39
-rw-r--r--meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch (renamed from meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch)41
-rw-r--r--meta/recipes-devtools/python/python3/0002-Don-t-do-runtime-test-to-get-float-byte-order.patch199
-rw-r--r--meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch32
-rw-r--r--meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch48
-rw-r--r--meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch10
-rw-r--r--meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch33
-rw-r--r--meta/recipes-devtools/python/python3/get_module_deps3.py20
-rw-r--r--meta/recipes-devtools/python/python3/python-config.patch24
-rw-r--r--meta/recipes-devtools/python/python3/python3-manifest.json171
-rw-r--r--meta/recipes-devtools/python/python3/run-ptest2
-rw-r--r--meta/recipes-devtools/python/python3_3.8.5.bb (renamed from meta/recipes-devtools/python/python3_3.7.4.bb)110
-rw-r--r--meta/recipes-devtools/python/python_2.7.16.bb267
-rw-r--r--meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb9
-rwxr-xr-xmeta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper25
-rw-r--r--meta/recipes-devtools/qemu/qemu-helper/tunctl.c16
-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.1.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.1.0.bb)4
-rw-r--r--meta/recipes-devtools/qemu/qemu-targets.inc2
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc38
-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.patch24
-rw-r--r--meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch12
-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.patch58
-rw-r--r--meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch12
-rw-r--r--meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch18
-rw-r--r--meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch90
-rw-r--r--meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch22
-rw-r--r--meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch86
-rw-r--r--meta/recipes-devtools/qemu/qemu/0011-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/run-ptest2
-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.1.0.bb)5
-rw-r--r--meta/recipes-devtools/quilt/quilt.inc3
-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-Rip-out-partial-support-for-unused-MD2-and-RIPEMD160.patch81
-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/0001-rpmplugins.c-call-dlerror-prior-to-dlsym.patch29
-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)47
-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)22
-rw-r--r--meta/recipes-devtools/ruby/ruby.inc10
-rw-r--r--meta/recipes-devtools/ruby/ruby/0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch38
-rw-r--r--meta/recipes-devtools/ruby/ruby/0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch101
-rw-r--r--meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch34
-rw-r--r--meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch24
-rw-r--r--meta/recipes-devtools/ruby/ruby/extmk.patch16
-rw-r--r--meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch26
-rw-r--r--meta/recipes-devtools/ruby/ruby_2.7.1.bb (renamed from meta/recipes-devtools/ruby/ruby_2.5.5.bb)42
-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/squashfs-tools-4.3-sysmacros.patch32
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb19
-rw-r--r--meta/recipes-devtools/strace/strace/0001-caps-abbrev.awk-fix-gawk-s-path.patch2
-rw-r--r--meta/recipes-devtools/strace/strace/0001-strace-fix-reproducibilty-issues.patch39
-rw-r--r--meta/recipes-devtools/strace/strace/0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch32
-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/Makefile-ptest.patch10
-rw-r--r--meta/recipes-devtools/strace/strace/disable-git-version-gen.patch4
-rw-r--r--meta/recipes-devtools/strace/strace/mips-SIGEMT.patch2
-rw-r--r--meta/recipes-devtools/strace/strace/more-robust-test-for-m32-mx32-compile-support.patch45
-rw-r--r--meta/recipes-devtools/strace/strace/ptest-spacesave.patch17
-rwxr-xr-xmeta/recipes-devtools/strace/strace/run-ptest7
-rw-r--r--meta/recipes-devtools/strace/strace/uintptr_t.patch27
-rw-r--r--meta/recipes-devtools/strace/strace/update-gawk-paths.patch2
-rw-r--r--meta/recipes-devtools/strace/strace_5.8.bb (renamed from meta/recipes-devtools/strace/strace_5.3.bb)12
-rw-r--r--meta/recipes-devtools/subversion/subversion_1.14.0.bb (renamed from meta/recipes-devtools/subversion/subversion_1.12.2.bb)9
-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/systemd-bootchart/systemd-bootchart/0001-architecture-Recognise-RISCV-32-RISCV-64.patch45
-rw-r--r--meta/recipes-devtools/systemd-bootchart/systemd-bootchart/mips64.patch35
-rw-r--r--meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb4
-rw-r--r--meta/recipes-devtools/tcf-agent/tcf-agent_git.bb3
-rw-r--r--meta/recipes-devtools/tcltk/tcl/0001-Fix-abd4abedd2-Failed-to-build-tk-8.6.10-with-cross-.patch44
-rw-r--r--meta/recipes-devtools/tcltk/tcl/alter-includedir.patch5
-rw-r--r--meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch15
-rw-r--r--meta/recipes-devtools/tcltk/tcl_8.6.10.bb (renamed from meta/recipes-devtools/tcltk/tcl_8.6.9.bb)10
-rw-r--r--meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch54
-rw-r--r--meta/recipes-devtools/unfs3/unfs3_git.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.44.7.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-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch34
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0002-valgrind-adjust-std_list-expected-output.patch32
-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/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch32
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/remove-for-aarch641
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch19
-rw-r--r--meta/recipes-devtools/valgrind/valgrind_3.16.1.bb (renamed from meta/recipes-devtools/valgrind/valgrind_3.15.0.bb)56
-rw-r--r--meta/recipes-devtools/xmlto/xmlto_0.0.28.bb2
-rw-r--r--meta/recipes-extended/acpica/acpica_20200717.bb (renamed from meta/recipes-extended/acpica/acpica_20190816.bb)14
-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.inc1
-rw-r--r--meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch386
-rw-r--r--meta/recipes-extended/bash/bash_5.0.bb35
-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/chkconfig/chkconfig-alternatives-native_1.3.59.bb44
-rw-r--r--meta/recipes-extended/chkconfig/chkconfig/replace_caddr_t.patch33
-rw-r--r--meta/recipes-extended/chkconfig/chkconfig_1.3.58.bb71
-rw-r--r--meta/recipes-extended/cpio/cpio-2.12/0001-CVE-2016-2037-1-byte-out-of-bounds-write.patch346
-rw-r--r--meta/recipes-extended/cpio/cpio-2.12/0001-Fix-CVE-2015-1197.patch178
-rw-r--r--meta/recipes-extended/cpio/cpio-2.12/0001-Fix-segfault-with-append.patch51
-rw-r--r--meta/recipes-extended/cpio/cpio-2.13/0001-Unset-need_charset_alias-when-building-for-musl.patch (renamed from meta/recipes-extended/cpio/cpio-2.12/0001-Unset-need_charset_alias-when-building-for-musl.patch)0
-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.bb (renamed from meta/recipes-extended/cpio/cpio_2.12.bb)14
-rw-r--r--meta/recipes-extended/cronie/cronie_1.5.5.bb (renamed from meta/recipes-extended/cronie/cronie_1.5.4.bb)7
-rw-r--r--meta/recipes-extended/cups/cups.inc44
-rw-r--r--meta/recipes-extended/cups/cups/0001-use-echo-only-in-init.patch27
-rw-r--r--meta/recipes-extended/cups/cups/0002-don-t-try-to-run-generated-binaries.patch (renamed from meta/recipes-extended/cups/cups/0001-don-t-try-to-run-generated-binaries.patch)29
-rw-r--r--meta/recipes-extended/cups/cups/0003-cups_1.4.6.bb-Fix-build-on-ppc64.patch51
-rw-r--r--meta/recipes-extended/cups/cups/0004-cups-fix-multilib-install-file-conflicts.patch (renamed from meta/recipes-extended/cups/cups/cups-avoid-install-file-conflicts.patch)12
-rw-r--r--meta/recipes-extended/cups/cups/cups-volatiles.conf1
-rw-r--r--meta/recipes-extended/cups/cups/cups_serverbin.patch38
-rw-r--r--meta/recipes-extended/cups/cups/use_echo_only_in_init.patch15
-rw-r--r--meta/recipes-extended/cups/cups/volatiles.99_cups2
-rw-r--r--meta/recipes-extended/cups/cups_2.2.12.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.2.bb)12
-rw-r--r--meta/recipes-extended/findutils/findutils.inc4
-rw-r--r--meta/recipes-extended/findutils/findutils/0001-Unset-need_charset_alias-when-building-for-musl.patch31
-rw-r--r--meta/recipes-extended/findutils/findutils/0001-find-make-delete-honour-the-ignore_readdir_race-opti.patch144
-rw-r--r--meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-fflush.patch140
-rw-r--r--meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-makedev.patch78
-rw-r--r--meta/recipes-extended/findutils/findutils_4.6.0.bb21
-rw-r--r--meta/recipes-extended/findutils/findutils_4.7.0.bb15
-rw-r--r--meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch23
-rw-r--r--meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch23
-rw-r--r--meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb44
-rw-r--r--meta/recipes-extended/gawk/gawk_5.1.0.bb (renamed from meta/recipes-extended/gawk/gawk_5.0.1.bb)10
-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-14811-0001.patch68
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch270
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch236
-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/microblazeeb/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/x86-64/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript_9.52.bb (renamed from meta/recipes-extended/ghostscript/ghostscript_9.27.bb)28
-rw-r--r--meta/recipes-extended/grep/grep_3.4.bb (renamed from meta/recipes-extended/grep/grep_3.3.bb)7
-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/gzip/gzip_1.10.bb2
-rw-r--r--meta/recipes-extended/images/core-image-testmaster-initramfs.bb1
-rw-r--r--meta/recipes-extended/images/core-image-testmaster.bb2
-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/ip6tables.rules0
-rw-r--r--meta/recipes-extended/iptables/iptables/ip6tables.service13
-rw-r--r--meta/recipes-extended/iptables/iptables/iptables.service6
-rw-r--r--meta/recipes-extended/iptables/iptables_1.8.5.bb (renamed from meta/recipes-extended/iptables/iptables_1.8.3.bb)91
-rw-r--r--meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch46
-rw-r--r--meta/recipes-extended/iputils/iputils_s20190709.bb55
-rw-r--r--meta/recipes-extended/iputils/iputils_s20200821.bb72
-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.0.bb)9
-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/libidn2_2.3.0.bb (renamed from meta/recipes-extended/libidn/libidn2_2.2.0.bb)7
-rw-r--r--meta/recipes-extended/libidn/libidn_1.35.bb42
-rw-r--r--meta/recipes-extended/libmnl/libmnl_1.0.4.bb4
-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.1.bb)3
-rw-r--r--meta/recipes-extended/libsolv/libsolv_0.7.14.bb (renamed from meta/recipes-extended/libsolv/libsolv_0.7.6.bb)6
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc/musl.patch18
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb (renamed from meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb)12
-rw-r--r--meta/recipes-extended/lighttpd/lighttpd_1.4.55.bb (renamed from meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb)6
-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-configure-time-check-for-getdents-getdents64-API.patch72
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch32
-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.patch128
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch64
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch81
-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-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch46
-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-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch75
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch161
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch36
-rw-r--r--meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch68
-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.patch58
-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/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch82
-rw-r--r--meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch56
-rw-r--r--meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch64
-rw-r--r--meta/recipes-extended/ltp/ltp_20200515.bb (renamed from meta/recipes-extended/ltp/ltp_20190517.bb)62
-rw-r--r--meta/recipes-extended/man-db/man-db_2.9.3.bb (renamed from meta/recipes-extended/man-db/man-db_2.8.7.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.01.bb)7
-rw-r--r--meta/recipes-extended/mc/files/nomandate.patch21
-rw-r--r--meta/recipes-extended/mc/mc_4.8.25.bb (renamed from meta/recipes-extended/mc/mc_4.8.23.bb)12
-rw-r--r--meta/recipes-extended/mdadm/files/run-ptest5
-rw-r--r--meta/recipes-extended/mdadm/mdadm_4.1.bb14
-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.5.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.bb11
-rw-r--r--meta/recipes-extended/pam/libpam/fixsepbuild.patch24
-rw-r--r--meta/recipes-extended/pam/libpam/libpam-xtests.patch2
-rw-r--r--meta/recipes-extended/pam/libpam/pam.d/common-password5
-rw-r--r--meta/recipes-extended/pam/libpam_1.3.1.bb11
-rw-r--r--meta/recipes-extended/parted/files/0001-Include-fcntl.h-in-platform_defs.h.patch33
-rw-r--r--meta/recipes-extended/parted/files/0001-Move-python-helper-scripts-used-only-in-tests-to-Pyt.patch23
-rw-r--r--meta/recipes-extended/parted/files/0001-Unset-need_charset_alias-when-building-for-musl.patch33
-rw-r--r--meta/recipes-extended/parted/files/0001-libparted-Use-read-only-when-probing-devices-on-linu.patch222
-rw-r--r--meta/recipes-extended/parted/files/0001-libparted-fs-add-sourcedir-lib-to-include-paths.patch26
-rw-r--r--meta/recipes-extended/parted/files/0001-linux-Include-sys-sysmacros.h-for-major-macro.patch28
-rw-r--r--meta/recipes-extended/parted/files/0002-tests-use-skip_-rather-than-skip_test_-which-is-unde.patch66
-rw-r--r--meta/recipes-extended/parted/files/Makefile285
-rw-r--r--meta/recipes-extended/parted/files/dm_check.patch22
-rw-r--r--meta/recipes-extended/parted/files/fix-compile-failure-while-dis.patch81
-rw-r--r--meta/recipes-extended/parted/files/run-ptest6
-rw-r--r--meta/recipes-extended/parted/parted_3.3.bb (renamed from meta/recipes-extended/parted/parted_3.2.bb)35
-rw-r--r--meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb4
-rw-r--r--meta/recipes-extended/procps/procps/0001-Fix-out-of-tree-builds.patch24
-rw-r--r--meta/recipes-extended/procps/procps_3.3.16.bb (renamed from meta/recipes-extended/procps/procps_3.3.15.bb)26
-rw-r--r--meta/recipes-extended/psmisc/psmisc.inc3
-rw-r--r--meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch30
-rw-r--r--meta/recipes-extended/psmisc/psmisc_23.3.bb (renamed from meta/recipes-extended/psmisc/psmisc_23.2.bb)3
-rw-r--r--meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch42
-rw-r--r--meta/recipes-extended/rpcbind/rpcbind/rpcbind.conf2
-rw-r--r--meta/recipes-extended/rpcbind/rpcbind/rpcbind.service12
-rw-r--r--meta/recipes-extended/rpcbind/rpcbind/rpcbind.socket8
-rw-r--r--meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb20
-rw-r--r--meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb10
-rw-r--r--meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch109
-rw-r--r--meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch57
-rw-r--r--meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch137
-rw-r--r--meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch65
-rw-r--r--meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch135
-rw-r--r--meta/recipes-extended/screen/screen_4.8.0.bb (renamed from meta/recipes-extended/screen/screen_4.6.2.bb)12
-rw-r--r--meta/recipes-extended/sed/sed-4.2.2/0001-Unset-need_charset_alias-when-building-for-musl.patch33
-rw-r--r--meta/recipes-extended/sed/sed-4.2.2/run-ptest3
-rw-r--r--meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch66
-rw-r--r--meta/recipes-extended/sed/sed/run-ptest5
-rw-r--r--meta/recipes-extended/sed/sed_4.2.2.bb53
-rw-r--r--meta/recipes-extended/sed/sed_4.8.bb65
-rw-r--r--meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch18
-rw-r--r--meta/recipes-extended/shadow/files/0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch89
-rw-r--r--meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch36
-rw-r--r--meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch116
-rw-r--r--meta/recipes-extended/shadow/files/0002-Allow-for-setting-password-in-clear-text.patch (renamed from meta/recipes-extended/shadow/files/allow-for-setting-password-in-clear-text.patch)101
-rw-r--r--meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch15
-rw-r--r--meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch51
-rw-r--r--meta/recipes-extended/shadow/shadow-sysroot_4.6.bb11
-rw-r--r--meta/recipes-extended/shadow/shadow.inc18
-rw-r--r--meta/recipes-extended/shadow/shadow_4.8.1.bb (renamed from meta/recipes-extended/shadow/shadow_4.6.bb)0
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch23
-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.10.00.bb)7
-rw-r--r--meta/recipes-extended/sudo/sudo.inc26
-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.27.bb)19
-rw-r--r--meta/recipes-extended/sysklogd/files/0001-Fix-build-with-musl.patch132
-rw-r--r--meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch43
-rw-r--r--meta/recipes-extended/sysklogd/files/0001-fix-problems-that-causes-a-segmentation-fault-under-.patch28
-rw-r--r--meta/recipes-extended/sysklogd/files/0002-Make-way-for-respecting-flags-from-environment.patch35
-rw-r--r--meta/recipes-extended/sysklogd/files/klogd.service13
-rw-r--r--meta/recipes-extended/sysklogd/files/no-strip-install.patch17
-rw-r--r--meta/recipes-extended/sysklogd/files/no-vectorization.patch20
-rwxr-xr-xmeta/recipes-extended/sysklogd/files/sysklogd24
-rw-r--r--meta/recipes-extended/sysklogd/files/syslog.conf71
-rw-r--r--meta/recipes-extended/sysklogd/files/syslogd.service14
-rw-r--r--meta/recipes-extended/sysklogd/files/tmpfiles.sysklogd.conf1
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd.inc54
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_1.5.1.bb3
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.1.2.bb3
-rw-r--r--meta/recipes-extended/sysstat/sysstat.inc18
-rw-r--r--meta/recipes-extended/sysstat/sysstat/0001-Include-needed-headers-explicitly.patch59
-rw-r--r--meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch31
-rw-r--r--meta/recipes-extended/sysstat/sysstat/sysstat.service2
-rw-r--r--meta/recipes-extended/sysstat/sysstat_12.1.6.bb8
-rw-r--r--meta/recipes-extended/sysstat/sysstat_12.4.0.bb7
-rw-r--r--meta/recipes-extended/tar/tar_1.32.bb2
-rw-r--r--meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/0001-Remove-fgets-extern-declaration.patch43
-rw-r--r--meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb3
-rw-r--r--meta/recipes-extended/texi2html/files/0001-Allow-compiling-out-of-source.patch39
-rw-r--r--meta/recipes-extended/texi2html/texi2html_5.0.bb31
-rw-r--r--meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb10
-rw-r--r--meta/recipes-extended/texinfo/texinfo/0001-Unset-need_charset_alias-when-building-for-musl.patch30
-rw-r--r--meta/recipes-extended/texinfo/texinfo/dont-depend-on-help2man.patch23
-rw-r--r--meta/recipes-extended/texinfo/texinfo/link-zip.patch23
-rw-r--r--meta/recipes-extended/texinfo/texinfo/texinfo-4.12-zlib.patch38
-rw-r--r--meta/recipes-extended/texinfo/texinfo_6.7.bb (renamed from meta/recipes-extended/texinfo/texinfo_6.5.bb)9
-rw-r--r--meta/recipes-extended/timezone/timezone.inc10
-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.inc5
-rw-r--r--meta/recipes-extended/wget/wget/0002-improve-reproducibility.patch9
-rw-r--r--meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb4
-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)12
-rw-r--r--meta/recipes-extended/zip/zip-3.0/zipnote-crashes-with-segfault.patch22
-rw-r--r--meta/recipes-extended/zip/zip_3.0.bb1
-rw-r--r--meta/recipes-gnome/epiphany/epiphany_3.36.4.bb (renamed from meta/recipes-gnome/epiphany/epiphany_3.32.4.bb)8
-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.28.1.bb32
-rw-r--r--meta/recipes-gnome/gcr/gcr_3.36.0.bb34
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch30
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb (renamed from meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb)27
-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.32.0.bb)12
-rw-r--r--meta/recipes-gnome/gnome/gconf/python3.patch60
-rw-r--r--meta/recipes-gnome/gnome/gconf_3.2.6.bb6
-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.patch10
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch48
-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/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch201
-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-.patch94
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb (renamed from meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb)40
-rw-r--r--meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb16
-rw-r--r--meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb18
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3.inc16
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch15
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch103
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3_3.24.22.bb (renamed from meta/recipes-gnome/gtk+/gtk+3_3.24.8.bb)5
-rw-r--r--meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch2
-rw-r--r--meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb (renamed from meta/recipes-gnome/gtk-doc/gtk-doc_1.31.bb)16
-rw-r--r--meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb6
-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.bb9
-rw-r--r--meta/recipes-gnome/libdazzle/libdazzle_3.32.3.bb15
-rw-r--r--meta/recipes-gnome/libdazzle/libdazzle_3.36.0.bb20
-rw-r--r--meta/recipes-gnome/libgudev/libgudev_233.bb5
-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)15
-rw-r--r--meta/recipes-gnome/librsvg/librsvg/0001-Remove-non-reproducible-SRCDIR.patch30
-rw-r--r--meta/recipes-gnome/librsvg/librsvg_2.40.21.bb (renamed from meta/recipes-gnome/librsvg/librsvg_2.40.20.bb)14
-rw-r--r--meta/recipes-gnome/libsecret/files/0001-meson-add-option-introspection.patch137
-rw-r--r--meta/recipes-gnome/libsecret/libsecret_0.19.0.bb22
-rw-r--r--meta/recipes-gnome/libsecret/libsecret_0.20.3.bb28
-rw-r--r--meta/recipes-graphics/cairo/cairo_1.16.0.bb24
-rw-r--r--meta/recipes-graphics/clutter/clutter-1.0.inc11
-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/clutter/clutter-gst-3.0.inc2
-rw-r--r--meta/recipes-graphics/clutter/clutter-gtk-1.0.inc2
-rw-r--r--meta/recipes-graphics/cogl/cogl-1.0.inc10
-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.99.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)13
-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.1.bb40
-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.bb4
-rw-r--r--meta/recipes-graphics/images/core-image-x11.bb2
-rw-r--r--meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb (renamed from meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb)10
-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.bb7
-rw-r--r--meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch26
-rw-r--r--meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb (renamed from meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb)21
-rw-r--r--meta/recipes-graphics/libfakekey/libfakekey_git.bb2
-rw-r--r--meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb6
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb (renamed from meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb)17
-rw-r--r--meta/recipes-graphics/libva/libva-initial_2.8.0.bb8
-rw-r--r--meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch35
-rw-r--r--meta/recipes-graphics/libva/libva-utils_2.8.0.bb (renamed from meta/recipes-graphics/libva/libva-utils_2.5.0.bb)17
-rw-r--r--meta/recipes-graphics/libva/libva.inc27
-rw-r--r--meta/recipes-graphics/libva/libva_2.5.0.bb46
-rw-r--r--meta/recipes-graphics/libva/libva_2.8.0.bb23
-rw-r--r--meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb1
-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.bb4
-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/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch27
-rw-r--r--meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch25
-rw-r--r--meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch46
-rw-r--r--meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch52
-rw-r--r--meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch14
-rw-r--r--meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch147
-rw-r--r--meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch51
-rw-r--r--meta/recipes-graphics/mesa/libglu_9.0.1.bb2
-rw-r--r--meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb2
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl_19.1.6.bb10
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb15
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc73
-rw-r--r--meta/recipes-graphics/mesa/mesa_19.1.6.bb20
-rw-r--r--meta/recipes-graphics/mesa/mesa_20.1.8.bb2
-rw-r--r--meta/recipes-graphics/mx/mx.inc2
-rw-r--r--meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb2
-rw-r--r--meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb2
-rw-r--r--meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb2
-rw-r--r--meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb2
-rw-r--r--meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch36
-rw-r--r--meta/recipes-graphics/pango/pango_1.46.2.bb (renamed from meta/recipes-graphics/pango/pango_1.44.6.bb)10
-rw-r--r--meta/recipes-graphics/piglit/piglit_git.bb11
-rw-r--r--meta/recipes-graphics/pong-clock/pong-clock_1.0.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.bb3
-rw-r--r--meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb2
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch27
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb21
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb24
-rw-r--r--meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch68
-rw-r--r--meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch1664
-rw-r--r--meta/recipes-graphics/vulkan/assimp_5.0.1.bb (renamed from meta/recipes-graphics/vulkan/assimp_4.1.0.bb)7
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch22
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-demos_git.bb16
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-headers_1.2.135.0.bb (renamed from meta/recipes-graphics/vulkan/vulkan-headers_1.1.108.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.108.bb)7
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-tools_1.2.135.0.bb (renamed from meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb)6
-rw-r--r--meta/recipes-graphics/waffle/waffle_1.6.1.bb (renamed from meta/recipes-graphics/waffle/waffle_1.6.0.bb)8
-rw-r--r--meta/recipes-graphics/wayland/libinput/determinism.patch21
-rw-r--r--meta/recipes-graphics/wayland/libinput/run-ptest9
-rw-r--r--meta/recipes-graphics/wayland/libinput_1.14.1.bb32
-rw-r--r--meta/recipes-graphics/wayland/libinput_1.16.1.bb49
-rw-r--r--meta/recipes-graphics/wayland/mtdev_1.1.6.bb (renamed from meta/recipes-graphics/wayland/mtdev_1.1.5.bb)4
-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.patch34
-rw-r--r--meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch115
-rw-r--r--meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch26
-rw-r--r--meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch27
-rw-r--r--meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch32
-rw-r--r--meta/recipes-graphics/wayland/wayland/run-ptest17
-rw-r--r--meta/recipes-graphics/wayland/wayland_1.18.0.bb (renamed from meta/recipes-graphics/wayland/wayland_1.17.0.bb)32
-rw-r--r--meta/recipes-graphics/wayland/weston-init.bb23
-rw-r--r--meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini2
-rw-r--r--meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini2
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston-autologin11
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston.env0
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston.ini7
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston@.service76
-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.patch37
-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_7.0.0.bb)36
-rw-r--r--meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf2
-rwxr-xr-xmeta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm8
-rw-r--r--meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb9
-rw-r--r--meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb6
-rw-r--r--meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb22
-rw-r--r--meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb (renamed from meta/recipes-graphics/xorg-app/mkfontscale_1.1.3.bb)9
-rw-r--r--meta/recipes-graphics/xorg-app/x11perf_1.6.1.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)6
-rw-r--r--meta/recipes-graphics/xorg-app/xorg-app-common.inc4
-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-input-synaptics/64bit_time_t_support.patch51
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb2
-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/01_Fix-build-on-i686.patch55
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb8
-rw-r--r--meta/recipes-graphics/xorg-driver/xorg-driver-common.inc5
-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.inc4
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb2
-rw-r--r--meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch56
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb3
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/no-host-libtool.patch45
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11/no-host-x.patch40
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11_1.6.12.bb (renamed from meta/recipes-graphics/xorg-lib/libx11.inc)11
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11_1.6.8.bb7
-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)8
-rw-r--r--meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb (renamed from meta/recipes-graphics/xorg-lib/libxfont2_2.0.3.bb)4
-rw-r--r--meta/recipes-graphics/xorg-lib/libxkbcommon_0.10.0.bb (renamed from meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb)13
-rw-r--r--meta/recipes-graphics/xorg-lib/libxpm_3.5.13.bb (renamed from meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb)6
-rw-r--r--meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb2
-rw-r--r--meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb4
-rw-r--r--meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb (renamed from meta/recipes-graphics/xorg-lib/libxvmc_1.0.11.bb)4
-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)39
-rw-r--r--meta/recipes-graphics/xorg-lib/xcb-util.inc2
-rw-r--r--meta/recipes-graphics/xorg-lib/xkeyboard-config_2.30.bb (renamed from meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb)3
-rw-r--r--meta/recipes-graphics/xorg-lib/xorg-lib-common.inc2
-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/xorg-proto-common.inc26
-rw-r--r--meta/recipes-graphics/xorg-proto/xorgproto_2019.1.bb14
-rw-r--r--meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb27
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf39
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf39
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg.inc5
-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/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch63
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch23
-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.5.bb)15
-rw-r--r--meta/recipes-graphics/xrestop/xrestop_0.4.bb2
-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.inc3
-rw-r--r--meta/recipes-kernel/cryptodev/files/0001-Fix-module-loading-with-Linux-v5.0-rc5.patch59
-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.bb13
-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/0007-kexec-un-break-the-build-on-32-bit-x86.patch42
-rw-r--r--meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb (renamed from meta/recipes-kernel/kexec/kexec-tools_2.0.19.bb)28
-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_20190815.bb)112
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc22
-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/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch27
-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.2.bb)8
-rw-r--r--meta/recipes-kernel/linux/kernel-devsrc.bb47
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-dev.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb (renamed from meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb)12
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb (renamed from meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb)14
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb (renamed from meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb)14
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb (renamed from meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb)16
-rw-r--r--meta/recipes-kernel/linux/linux-yocto.inc23
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_4.19.bb50
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.2.bb54
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.4.bb54
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.8.bb55
-rwxr-xr-xmeta/recipes-kernel/lttng/babeltrace/run-ptest9
-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.7.bb20
-rw-r--r--meta/recipes-kernel/lttng/babeltrace_1.5.8.bb98
-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.10.11.bb)28
-rw-r--r--meta/recipes-kernel/lttng/lttng-platforms.inc17
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0001-Skip-when-testapp-is-not-present.patch610
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch55
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch27
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch34
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0002-Fix-check-for-lttng-modules-presence-before-testing.patch24
-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.10.7.bb)31
-rw-r--r--meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch17
-rw-r--r--meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb (renamed from meta/recipes-kernel/lttng/lttng-ust_2.10.5.bb)12
-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.bb26
-rw-r--r--meta/recipes-kernel/powertop/powertop_2.13.bb (renamed from meta/recipes-kernel/powertop/powertop_2.10.bb)22
-rw-r--r--meta/recipes-kernel/sysprof/files/0001-Do-not-build-anything-in-help-as-it-requires-itstool.patch27
-rw-r--r--meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch22
-rw-r--r--meta/recipes-kernel/sysprof/sysprof_3.32.0.bb32
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_git.bb11
-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_1.2.3.2.bb (renamed from meta/recipes-multimedia/alsa/alsa-lib_1.1.9.bb)11
-rw-r--r--meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb (renamed from meta/recipes-multimedia/alsa/alsa-plugins_1.1.9.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.bb19
-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.1.9.bb)2
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils.inc (renamed from meta/recipes-multimedia/alsa/alsa-utils_1.1.9.bb)8
-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.1.bb)10
-rw-r--r--meta/recipes-multimedia/flac/flac_1.3.3.bb1
-rw-r--r--meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch40
-rw-r--r--meta/recipes-multimedia/gstreamer/files/add-a-target-to-compile-tests.patch69
-rw-r--r--meta/recipes-multimedia/gstreamer/files/gtk-doc-tweaks.patch47
-rw-r--r--meta/recipes-multimedia/gstreamer/files/run-ptest3
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb (renamed from meta/recipes-multimedia/gstreamer/gst-examples_git.bb)4
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-validate/0001-connect-has-a-different-signature-on-musl.patch (renamed from meta/recipes-multimedia/gstreamer/files/0001-connect-has-a-different-signature-on-musl.patch)0
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-validate_1.16.2.bb (renamed from meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.bb)4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch33
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-configure-check-for-armv7ve-variant.patch35
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-fix-host-contamination.patch36
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/gtkdoc-no-tree.patch35
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/mips64_cpu_detection.patch32
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch26
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb71
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.2.bb35
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.2.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb)26
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch36
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch61
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch49
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb145
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb147
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch29
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch36
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch295
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch235
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch26
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch25
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/link-with-libvchostif.patch45
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch45
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb73
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.bb99
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc50
-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/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch37
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/headerfix.patch43
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb78
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.2.bb70
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc (renamed from meta/recipes-multimedia/gstreamer/gst-plugins-package.inc)32
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb40
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.2.bb39
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc41
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc23
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python/0001-meson.build-fix-builds-with-python-3.8.patch24
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.2.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb)14
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch36
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb34
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.2.bb31
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi/0001-gst-vaapi-Makefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch33
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.2.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb)30
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch (renamed from meta/recipes-multimedia/gstreamer/files/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch)0
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch36
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch74
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch257
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch37
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb91
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.bb77
-rw-r--r--meta/recipes-multimedia/libogg/libogg_1.3.4.bb2
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb4
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.37.bb13
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb10
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb2
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2019-14973.patch415
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2019-6128.patch52
-rw-r--r--meta/recipes-multimedia/libtiff/tiff/CVE-2019-7663.patch77
-rw-r--r--meta/recipes-multimedia/libtiff/tiff_4.1.0.bb (renamed from meta/recipes-multimedia/libtiff/tiff_4.0.10.bb)11
-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)12
-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.11.bb)8
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio.inc27
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch46
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-introduce-a-special-build-flag-to-explicitly-disable.patch161
-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_12.2.bb16
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb12
-rw-r--r--meta/recipes-multimedia/speex/speex_1.2.0.bb2
-rw-r--r--meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch63
-rw-r--r--meta/recipes-multimedia/speex/speexdsp_1.2.0.bb27
-rw-r--r--meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb39
-rw-r--r--meta/recipes-multimedia/webp/libwebp_1.1.0.bb (renamed from meta/recipes-multimedia/webp/libwebp_1.0.3.bb)6
-rw-r--r--meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch14
-rw-r--r--meta/recipes-multimedia/x264/x264_git.bb4
-rwxr-xr-xmeta/recipes-rt/rt-tests/files/rt_bmark.py4
-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.bb8
-rw-r--r--meta/recipes-sato/l3afpad/l3afpad_git.bb2
-rw-r--r--meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb2
-rw-r--r--meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb4
-rw-r--r--meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb2
-rw-r--r--meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb2
-rw-r--r--meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb2
-rw-r--r--meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb2
-rw-r--r--meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc2
-rw-r--r--meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb2
-rw-r--r--meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb2
-rw-r--r--meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch46
-rw-r--r--meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch24
-rw-r--r--meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch23
-rw-r--r--meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch23
-rw-r--r--meta/recipes-sato/puzzles/puzzles_git.bb7
-rw-r--r--meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc2
-rw-r--r--meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb4
-rw-r--r--meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb2
-rw-r--r--meta/recipes-sato/webkit/libwpe_1.7.1.bb17
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch45
-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-WebKitMacros-Append-to-I-and-not-to-isystem.patch125
-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/0001-gstreamer-add-a-missing-format-string.patch24
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/detect-gstreamer-gl.patch20
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/narrowing.patch31
-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.24.4.bb)60
-rw-r--r--meta/recipes-sato/webkit/wpebackend-fdo_1.7.1.bb17
-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/aspell/aspell_0.60.8.bb (renamed from meta/recipes-support/aspell/aspell_0.60.7.bb)6
-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)10
-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)8
-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/acl/0001-test-patch-out-failing-bits.patch63
-rw-r--r--meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch24
-rw-r--r--meta/recipes-support/attr/acl/Makefile-libacl-should-depend-on-include.patch51
-rw-r--r--meta/recipes-support/attr/acl/acl-fix-the-order-of-expected-output-of-getfacl.patch198
-rw-r--r--meta/recipes-support/attr/acl/configure.ac49
-rw-r--r--meta/recipes-support/attr/acl/run-ptest60
-rw-r--r--meta/recipes-support/attr/acl/test-fix-directory-permissions.patch37
-rw-r--r--meta/recipes-support/attr/acl/test-fix-insufficient-quoting-of.patch100
-rw-r--r--meta/recipes-support/attr/acl/test-fixups-on-SELinux-machines-for-root-testcases.patch84
-rw-r--r--meta/recipes-support/attr/acl_2.2.52.bb52
-rw-r--r--meta/recipes-support/attr/acl_2.2.53.bb74
-rw-r--r--meta/recipes-support/attr/attr.inc49
-rw-r--r--meta/recipes-support/attr/attr/0001-Use-stdint-types-consistently.patch69
-rw-r--r--meta/recipes-support/attr/attr/attr-Missing-configure.ac.patch63
-rw-r--r--meta/recipes-support/attr/attr/dont-use-decl-macros.patch56
-rw-r--r--meta/recipes-support/attr/attr/run-ptest3
-rw-r--r--meta/recipes-support/attr/attr_2.4.47.bb15
-rw-r--r--meta/recipes-support/attr/attr_2.4.48.bb6
-rw-r--r--meta/recipes-support/attr/ea-acl.inc52
-rw-r--r--meta/recipes-support/attr/files/0001-Added-configure-option-to-enable-disable-static-libr.patch70
-rw-r--r--meta/recipes-support/attr/files/Remove-the-attr.5-man-page-moved-to-man-pages.patch240
-rw-r--r--meta/recipes-support/attr/files/Remove-the-section-2-man-pages.patch666
-rw-r--r--meta/recipes-support/attr/files/relative-libdir.patch25
-rw-r--r--meta/recipes-support/attr/files/run-ptest5
-rw-r--r--meta/recipes-support/bash-completion/bash-completion_2.11.bb (renamed from meta/recipes-support/bash-completion/bash-completion_2.9.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.71.0.bb20
-rw-r--r--meta/recipes-support/boost/boost-1.74.0.inc (renamed from meta/recipes-support/boost/boost-1.71.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-dont-setup-compiler-flags-m32-m64.patch42
-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.71.0.bb)2
-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/consolekit/consolekit_0.4.6.bb2
-rw-r--r--meta/recipes-support/curl/curl_7.72.0.bb (renamed from meta/recipes-support/curl/curl_7.66.0.bb)19
-rw-r--r--meta/recipes-support/db/db/0001-clock-Do-not-define-own-timespec.patch45
-rw-r--r--meta/recipes-support/db/db_5.3.28.bb10
-rw-r--r--meta/recipes-support/debianutils/debianutils_4.11.1.bb (renamed from meta/recipes-support/debianutils/debianutils_4.8.6.3.bb)23
-rw-r--r--meta/recipes-support/diffoscope/diffoscope_160.bb17
-rw-r--r--meta/recipes-support/dos2unix/dos2unix_7.4.1.bb (renamed from meta/recipes-support/dos2unix/dos2unix_7.4.0.bb)5
-rw-r--r--meta/recipes-support/enchant/enchant2_2.2.9.bb28
-rw-r--r--meta/recipes-support/enchant/enchant_1.6.0.bb34
-rw-r--r--meta/recipes-support/fribidi/fribidi/meson.patch44
-rw-r--r--meta/recipes-support/fribidi/fribidi_1.0.10.bb (renamed from meta/recipes-support/fribidi/fribidi_1.0.5.bb)10
-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.bb3
-rw-r--r--meta/recipes-support/gmp/gmp-6.1.2/amd64.patch18
-rw-r--r--meta/recipes-support/gmp/gmp/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch (renamed from meta/recipes-support/gmp/gmp-6.1.2/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch)0
-rw-r--r--meta/recipes-support/gmp/gmp/0001-confiure.ac-Believe-the-cflags-from-environment.patch (renamed from meta/recipes-support/gmp/gmp-6.1.2/0001-confiure.ac-Believe-the-cflags-from-environment.patch)16
-rw-r--r--meta/recipes-support/gmp/gmp/use-includedir.patch (renamed from meta/recipes-support/gmp/gmp-6.1.2/use-includedir.patch)3
-rw-r--r--meta/recipes-support/gmp/gmp_6.2.0.bb (renamed from meta/recipes-support/gmp/gmp_6.1.2.bb)5
-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.17.bb)36
-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/posix-shell.patch39
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.6.14.bb (renamed from meta/recipes-support/gnutls/gnutls_3.6.8.bb)6
-rw-r--r--meta/recipes-support/gnutls/libtasn1/fix-gtkdoc.patch38
-rw-r--r--meta/recipes-support/gnutls/libtasn1/fix-ldflags.patch31
-rw-r--r--meta/recipes-support/gnutls/libtasn1_4.16.0.bb (renamed from meta/recipes-support/gnutls/libtasn1_4.14.bb)6
-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_64.2.bb30
-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.3.bb)4
-rw-r--r--meta/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch35
-rw-r--r--meta/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch29
-rw-r--r--meta/recipes-support/itstool/itstool_2.0.6.bb21
-rw-r--r--meta/recipes-support/libassuan/libassuan_2.5.3.bb6
-rw-r--r--meta/recipes-support/libbsd/libbsd_0.10.0.bb4
-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.9.bb)0
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng.inc6
-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.9.bb)0
-rw-r--r--meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch46
-rw-r--r--meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch30
-rw-r--r--meta/recipes-support/libcap/libcap_2.43.bb (renamed from meta/recipes-support/libcap/libcap_2.27.bb)7
-rw-r--r--meta/recipes-support/libcheck/libcheck_0.15.2.bb (renamed from meta/recipes-support/libcheck/libcheck_0.12.0.bb)12
-rw-r--r--meta/recipes-support/libevdev/libevdev/determinism.patch43
-rw-r--r--meta/recipes-support/libevdev/libevdev_1.9.1.bb (renamed from meta/recipes-support/libevdev/libevdev_1.8.0.bb)9
-rw-r--r--meta/recipes-support/libevent/libevent/0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch37
-rw-r--r--meta/recipes-support/libevent/libevent_2.1.12.bb (renamed from meta/recipes-support/libevent/libevent_2.1.11.bb)21
-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-Address-platforms-with-no-__int128-part2.patch34
-rw-r--r--meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch27
-rw-r--r--meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch8
-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/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch38
-rw-r--r--meta/recipes-support/libffi/libffi/not-win32.patch15
-rw-r--r--meta/recipes-support/libffi/libffi_3.3.bb (renamed from meta/recipes-support/libffi/libffi_3.3~rc0.bb)17
-rw-r--r--meta/recipes-support/libfm/libfm_1.3.1.bb2
-rw-r--r--meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch90
-rw-r--r--meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch (renamed from meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch)138
-rw-r--r--meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch332
-rw-r--r--meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch178
-rw-r--r--meta/recipes-support/libgcrypt/files/determinism.patch32
-rw-r--r--meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb (renamed from meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb)9
-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/0001-Use-our-hand-build-native-src-generator.patch33
-rw-r--r--meta/recipes-support/libical/libical_3.0.6.bb35
-rw-r--r--meta/recipes-support/libical/libical_3.0.8.bb45
-rw-r--r--meta/recipes-support/libjitterentropy/files/0001-Make-man-pages-reproducible.patch30
-rw-r--r--meta/recipes-support/libjitterentropy/files/0001-Makefile-cleanup-install-for-rebuilds.patch56
-rw-r--r--meta/recipes-support/libjitterentropy/files/0001-fix-do_install-failure-on-oe.patch33
-rw-r--r--meta/recipes-support/libjitterentropy/libjitterentropy_2.2.0.bb (renamed from meta/recipes-support/libjitterentropy/libjitterentropy_2.1.2.bb)13
-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)9
-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.33.bb)17
-rw-r--r--meta/recipes-support/libpcre/libpcre_8.44.bb (renamed from meta/recipes-support/libpcre/libpcre_8.43.bb)11
-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/0001-Do-not-enforce-no-introspection-when-cross-building.patch28
-rw-r--r--meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb (renamed from meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb)21
-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/libxslt/files/0001-Fix-security-framework-bypass.patch124
-rw-r--r--meta/recipes-support/libxslt/files/CVE-2019-13117.patch33
-rw-r--r--meta/recipes-support/libxslt/files/CVE-2019-13118.patch76
-rw-r--r--meta/recipes-support/libxslt/libxslt_1.1.34.bb (renamed from meta/recipes-support/libxslt/libxslt_1.1.33.bb)15
-rw-r--r--meta/recipes-support/libyaml/libyaml_0.2.2.bb18
-rw-r--r--meta/recipes-support/libyaml/libyaml_0.2.5.bb18
-rw-r--r--meta/recipes-support/lz4/lz4_1.9.2.bb5
-rw-r--r--meta/recipes-support/mpfr/mpfr_4.1.0.bb (renamed from meta/recipes-support/mpfr/mpfr_4.0.2.bb)7
-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/npth/npth_1.6.bb2
-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/0004-Add-ARC-support.patch88
-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.21.bb194
-rw-r--r--meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb2
-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.45.bb267
-rw-r--r--meta/recipes-support/p11-kit/p11-kit/0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch29
-rw-r--r--meta/recipes-support/p11-kit/p11-kit_0.23.16.1.bb46
-rw-r--r--meta/recipes-support/p11-kit/p11-kit_0.23.21.bb29
-rw-r--r--meta/recipes-support/pinentry/pinentry_1.1.0.bb3
-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.7.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/install-data-hook.patch25
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info/parallelmake.patch33
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_1.10.bb7
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_git.bb (renamed from meta/recipes-support/shared-mime-info/shared-mime-info.inc)25
-rw-r--r--meta/recipes-support/sqlite/sqlite3.inc2
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.29.0.bb8
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.33.0.bb10
-rw-r--r--meta/recipes-support/vim/files/no-path-adjust.patch27
-rw-r--r--meta/recipes-support/vim/vim-tiny_8.2.bb (renamed from meta/recipes-support/vim/vim-tiny_8.1.1518.bb)0
-rw-r--r--meta/recipes-support/vim/vim.inc17
-rw-r--r--meta/recipes-support/vim/vim_8.1.1518.bb10
-rw-r--r--meta/recipes-support/vim/vim_8.2.bb15
-rw-r--r--meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch119
-rw-r--r--meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch29
-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.56.3.bb)33
-rw-r--r--meta/site/arm-common3
-rw-r--r--meta/site/common7
-rw-r--r--meta/site/common-glibc13
-rw-r--r--meta/site/common-linux5
-rw-r--r--meta/site/common-musl17
-rw-r--r--meta/site/ix86-common3
-rw-r--r--meta/site/nios2-linux3
-rw-r--r--meta/site/powerpc32-linux4
-rw-r--r--meta/site/sh-common4
-rwxr-xr-xscripts/buildall-qemu120
-rwxr-xr-xscripts/buildhistory-collect-srcrevs1
-rwxr-xr-xscripts/buildhistory-diff9
-rwxr-xr-xscripts/combo-layer2
-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/gen-lockedsig-cache10
-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.py16
-rw-r--r--scripts/lib/devtool/standard.py55
-rw-r--r--scripts/lib/devtool/upgrade.py17
-rw-r--r--scripts/lib/recipetool/create.py25
-rw-r--r--scripts/lib/recipetool/create_buildsys.py17
-rw-r--r--scripts/lib/recipetool/create_npm.py514
-rw-r--r--scripts/lib/recipetool/edit.py2
-rw-r--r--scripts/lib/resulttool/log.py21
-rw-r--r--scripts/lib/resulttool/report.py59
-rw-r--r--scripts/lib/resulttool/resultutils.py31
-rw-r--r--scripts/lib/resulttool/store.py5
-rw-r--r--scripts/lib/resulttool/template/test_report_full_text.txt3
-rw-r--r--scripts/lib/scriptutils.py11
-rw-r--r--scripts/lib/wic/canned-wks/qemux86-directdisk.wks2
-rw-r--r--scripts/lib/wic/engine.py111
-rw-r--r--scripts/lib/wic/filemap.py81
-rw-r--r--scripts/lib/wic/help.py116
-rw-r--r--scripts/lib/wic/ksparser.py63
-rw-r--r--scripts/lib/wic/misc.py19
-rw-r--r--scripts/lib/wic/partition.py26
-rw-r--r--scripts/lib/wic/pluginbase.py11
-rw-r--r--scripts/lib/wic/plugins/imager/direct.py25
-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/isoimage-isohybrid.py12
-rw-r--r--scripts/lib/wic/plugins/source/rawcopy.py5
-rw-r--r--scripts/lib/wic/plugins/source/rootfs.py134
-rw-r--r--scripts/multilib_header_wrapper.h21
-rwxr-xr-xscripts/native-intercept/chgrp5
-rwxr-xr-xscripts/oe-build-perf-report28
-rwxr-xr-xscripts/oe-build-perf-test2
-rwxr-xr-xscripts/oe-buildenv-internal18
-rwxr-xr-xscripts/oe-pkgdata-browser253
-rw-r--r--scripts/oe-pkgdata-browser.glade337
-rwxr-xr-xscripts/oe-pkgdata-util17
-rwxr-xr-xscripts/oe-publish-sdk8
-rwxr-xr-xscripts/oe-run-native2
-rw-r--r--scripts/postinst-intercepts/update_desktop_database8
-rw-r--r--scripts/postinst-intercepts/update_font_cache4
-rw-r--r--scripts/postinst-intercepts/update_mime_database9
-rw-r--r--scripts/postinst-intercepts/update_udev_hwdb16
-rw-r--r--scripts/pybootchartgui/pybootchartgui/draw.py2
-rw-r--r--scripts/pybootchartgui/pybootchartgui/parsing.py6
-rwxr-xr-xscripts/rpm2cpio.sh3
-rwxr-xr-xscripts/runqemu196
-rwxr-xr-xscripts/runqemu-extract-sdk2
-rwxr-xr-xscripts/tiny/ksize.py12
-rwxr-xr-xscripts/wic27
-rwxr-xr-xscripts/yocto-check-layer15
2383 files changed, 221574 insertions, 81576 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/MEMORIAM b/MEMORIAM
new file mode 100644
index 0000000000..0b3ce4670f
--- /dev/null
+++ b/MEMORIAM
@@ -0,0 +1,5 @@
+Some project contributors who are sadly no longer with us:
+
+Greg Gilbert (treke) - Ahead of his time with licensing
+Thomas Wood (thos) - Creator of the original sato
+Scott Rifenbark (scottrif) - Our long standing techwriter whose words live on
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 d301a19fa4..144decdd6b 100644
--- a/meta-selftest/lib/oeqa/runtime/cases/virgl.py
+++ b/meta-selftest/lib/oeqa/runtime/cases/virgl.py
@@ -9,15 +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):
-
- distro = oe.lsb.distro_identifier()
- if distro and distro == 'centos-7':
- self.skipTest('kmscube is not working when centos 7 is the host OS')
-
- 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/aspell/aspell_0.60.7.bbappend b/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend
index 205720982c..205720982c 100644
--- a/meta-selftest/recipes-test/aspell/aspell_0.60.7.bbappend
+++ b/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend
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/backported.patch b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch
new file mode 100644
index 0000000000..c4f3f12666
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1-1.5.3/backported.patch
@@ -0,0 +1,37 @@
+commit ced2ec32b657a7f52604b2e16e5d5881041c517a
+Author: OpenEmbedded <oe.patch@oe>
+Date: Mon Nov 18 18:43:15 2019 +0100
+
+ Backport of the NEWS file from version 1.6.0
+
+diff --git a/doc/NEWS b/doc/NEWS
+index 69793fc..fd49b1c 100644
+--- a/doc/NEWS
++++ b/doc/NEWS
+@@ -1,3 +1,26 @@
++1.6.0 - 15 March 2015
++ - fix lstat64 support when unavailable - separate patches supplied by
++ Ganael Laplanche and Peter Korsgaard
++ - (#1506) new option "-D" / "--delay-start" to only show bar after N
++ seconds (Damon Harper)
++ - new option "--fineta" / "-I" to show ETA as time of day rather than time
++ remaining - patch supplied by Erkki Seppälä (r147)
++ - (#1509) change ETA (--eta / -e) so that days are given if the hours
++ remaining are 24 or more (Jacek Wielemborek)
++ - (#1499) repeat read and write attempts on partial buffer fill/empty to
++ work around post-signal transfer rate drop reported by Ralf Ramsauer
++ - (#1507) do not try to calculate total size in line mode, due to bug
++ reported by Jacek Wielemborek and Michiel Van Herwegen
++ - cleanup: removed defunct RATS comments and unnecessary copyright notices
++ - clean up displayed lines when using --watchfd PID, when PID exits
++ - output errors on a new line to avoid overwriting transfer bar
++
++1.5.7 - 26 August 2014
++ - show KiB instead of incorrect kiB (Debian bug #706175)
++ - (#1284) do not gzip man page, for non-Linux OSes (Bob Friesenhahn)
++ - work around "awk" bug in tests/016-numeric-timer in decimal "," locales
++ - fix "make rpm" and "make srpm", extend "make release" to sign releases
++
+ 1.5.3 - 4 May 2014
+ - remove SPLICE_F_NONBLOCK to fix problem with slow splice() (Jan Seda)
+
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
index 333ecac7ed..fee5bee739 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb
@@ -3,7 +3,9 @@ LICENSE = "Artistic-2.0"
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \
- file://0001-Add-a-note-line-to-the-quick-reference.patch"
+ file://0001-Add-a-note-line-to-the-quick-reference.patch \
+ file://backported.patch \
+ "
UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
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 9d94f671db..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
@@ -3,11 +3,12 @@ LICENSE = "Artistic-2.0"
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \
- file://0001-Add-a-note-line-to-the-quick-reference.patch"
+ file://0001-Add-a-note-line-to-the-quick-reference.patch \
+ file://backported.patch \
+ "
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/license/incompatible-licenses.bb b/meta-selftest/recipes-test/license/incompatible-licenses.bb
new file mode 100644
index 0000000000..9c1545efba
--- /dev/null
+++ b/meta-selftest/recipes-test/license/incompatible-licenses.bb
@@ -0,0 +1,3 @@
+SUMMARY = "Recipe with multiple SPDX licenses"
+DESCRIPTION = "Is licensed with multiple SPDX licenses to be used for testing"
+LICENSE = "GPL-2.0 & GPL-3.0 & LGPL-3.0"
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/recipeutils/recipeutils-test_1.2.bb b/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
index 7c20d9a683..0cd0494da8 100644
--- a/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
+++ b/meta-selftest/recipes-test/recipeutils/recipeutils-test_1.2.bb
@@ -4,7 +4,7 @@ require recipeutils-test.inc
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://${WORKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e"
-DEPENDS += "virtual/libx11"
+DEPENDS += "zlib"
BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..7a580bd885
--- /dev/null
+++ b/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Baremetal examples to work with the several QEMU architectures supported on OpenEmbedded"
+HOMEPAGE = "https://github.com/aehs29/baremetal-helloqemu"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=39346640a23c701e4f459e05f56f4449"
+
+SRCREV = "99f4fa4a3b266b42b52af302610b0f4f429ba5e3"
+PV = "0.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/aehs29/baremetal-helloqemu.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+# 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
+# such as vexpress-a15 by overriding the setting on the machine.conf
+COMPATIBLE_MACHINE = "qemuarmv5|qemuarm|qemuarm64"
+
+BAREMETAL_QEMUARCH ?= ""
+BAREMETAL_QEMUARCH_qemuarmv5 = "versatile"
+BAREMETAL_QEMUARCH_qemuarm = "arm"
+BAREMETAL_QEMUARCH_qemuarm64 = "aarch64"
+
+EXTRA_OEMAKE_append = " QEMUARCH=${BAREMETAL_QEMUARCH} V=1"
+
+
+# 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} += " \
+ ${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin \
+ ${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf \
+"
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index 093e2d95af..598298ef6f 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -2,25 +2,42 @@
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# This bbclass is used for creating archive for:
-# 1) original (or unpacked) source: ARCHIVER_MODE[src] = "original"
-# 2) patched source: ARCHIVER_MODE[src] = "patched" (default)
-# 3) configured source: ARCHIVER_MODE[src] = "configured"
-# 4) The patches between do_unpack and do_patch:
-# ARCHIVER_MODE[diff] = "1"
-# And you can set the one that you'd like to exclude from the diff:
-# ARCHIVER_MODE[diff-exclude] ?= ".pc autom4te.cache patches"
-# 5) The environment data, similar to 'bitbake -e recipe':
-# ARCHIVER_MODE[dumpdata] = "1"
-# 6) The recipe (.bb and .inc): ARCHIVER_MODE[recipe] = "1"
-# 7) Whether output the .src.rpm package:
-# ARCHIVER_MODE[srpm] = "1"
-# 8) Filter the license, the recipe whose license in
-# COPYLEFT_LICENSE_INCLUDE will be included, and in
-# COPYLEFT_LICENSE_EXCLUDE will be excluded.
-# COPYLEFT_LICENSE_INCLUDE = 'GPL* LGPL*'
-# COPYLEFT_LICENSE_EXCLUDE = 'CLOSED Proprietary'
-# 9) The recipe type that will be archived:
-# COPYLEFT_RECIPE_TYPES = 'target'
+# 1) original (or unpacked) source: ARCHIVER_MODE[src] = "original"
+# 2) patched source: ARCHIVER_MODE[src] = "patched" (default)
+# 3) configured source: ARCHIVER_MODE[src] = "configured"
+# 4) source mirror: ARCHIVE_MODE[src] = "mirror"
+# 5) The patches between do_unpack and do_patch:
+# ARCHIVER_MODE[diff] = "1"
+# And you can set the one that you'd like to exclude from the diff:
+# ARCHIVER_MODE[diff-exclude] ?= ".pc autom4te.cache patches"
+# 6) The environment data, similar to 'bitbake -e recipe':
+# ARCHIVER_MODE[dumpdata] = "1"
+# 7) The recipe (.bb and .inc): ARCHIVER_MODE[recipe] = "1"
+# 8) Whether output the .src.rpm package:
+# ARCHIVER_MODE[srpm] = "1"
+# 9) Filter the license, the recipe whose license in
+# COPYLEFT_LICENSE_INCLUDE will be included, and in
+# COPYLEFT_LICENSE_EXCLUDE will be excluded.
+# COPYLEFT_LICENSE_INCLUDE = 'GPL* LGPL*'
+# COPYLEFT_LICENSE_EXCLUDE = 'CLOSED Proprietary'
+# 10) The recipe type that will be archived:
+# COPYLEFT_RECIPE_TYPES = 'target'
+# 11) The source mirror mode:
+# ARCHIVER_MODE[mirror] = "split" (default): Sources are split into
+# per-recipe directories in a similar way to other archiver modes.
+# Post-processing may be required to produce a single mirror directory.
+# This does however allow inspection of duplicate sources and more
+# intelligent handling.
+# ARCHIVER_MODE[mirror] = "combined": All sources are placed into a single
+# directory suitable for direct use as a mirror. Duplicate sources are
+# ignored.
+# 12) Source mirror exclusions:
+# 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
+# local files (with the prefix 'file://') if these will be provided as part
+# of an archive of the layers themselves.
#
# Create archive for all the recipe types
@@ -33,14 +50,19 @@ ARCHIVER_MODE[diff] ?= "0"
ARCHIVER_MODE[diff-exclude] ?= ".pc autom4te.cache patches"
ARCHIVER_MODE[dumpdata] ?= "0"
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}/"
ARCHIVER_WORKDIR = "${WORKDIR}/archiver-work/"
+# When producing a combined mirror directory, allow duplicates for the case
+# where multiple recipes use the same SRC_URI.
+ARCHIVER_COMBINED_MIRRORDIR = "${ARCHIVER_TOPDIR}/mirror"
+SSTATE_DUPWHITELIST += "${DEPLOY_DIR_SRC}/mirror"
do_dumpdata[dirs] = "${ARCHIVER_OUTDIR}"
do_ar_recipe[dirs] = "${ARCHIVER_OUTDIR}"
@@ -106,6 +128,8 @@ python () {
elif hasTask("do_configure"):
d.appendVarFlag('do_ar_configured', 'depends', ' %s:do_configure' % pn)
d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_ar_configured' % pn)
+ elif ar_src == "mirror":
+ d.appendVarFlag('do_deploy_archives', 'depends', '%s:do_ar_mirror' % pn)
elif ar_src:
bb.fatal("Invalid ARCHIVER_MODE[src]: %s" % ar_src)
@@ -169,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("/");
@@ -281,6 +311,78 @@ python do_ar_configured() {
create_tarball(d, srcdir, 'configured', ar_outdir)
}
+python do_ar_mirror() {
+ import subprocess
+
+ src_uri = (d.getVar('SRC_URI') or '').split()
+ if len(src_uri) == 0:
+ return
+
+ dl_dir = d.getVar('DL_DIR')
+ mirror_exclusions = (d.getVar('ARCHIVER_MIRROR_EXCLUDE') or '').split()
+ mirror_mode = d.getVarFlag('ARCHIVER_MODE', 'mirror')
+ have_mirror_tarballs = d.getVar('BB_GENERATE_MIRROR_TARBALLS')
+
+ if mirror_mode == 'combined':
+ destdir = d.getVar('ARCHIVER_COMBINED_MIRRORDIR')
+ elif mirror_mode == 'split':
+ destdir = d.getVar('ARCHIVER_OUTDIR')
+ else:
+ bb.fatal('Invalid ARCHIVER_MODE[mirror]: %s' % (mirror_mode))
+
+ if not have_mirror_tarballs:
+ bb.fatal('Using `ARCHIVER_MODE[src] = "mirror"` depends on setting `BB_GENERATE_MIRROR_TARBALLS = "1"`')
+
+ def is_excluded(url):
+ for prefix in mirror_exclusions:
+ if url.startswith(prefix):
+ return True
+ return False
+
+ bb.note('Archiving the source as a mirror...')
+
+ bb.utils.mkdirhier(destdir)
+
+ fetcher = bb.fetch2.Fetch(src_uri, d)
+
+ 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' % (ud.url))
+ ud.setup_localpath(d)
+ localpath = None
+
+ # Check for mirror tarballs first. We will archive the first mirror
+ # tarball that we find as it's assumed that we just need one.
+ for mirror_fname in ud.mirrortarballs:
+ mirror_path = os.path.join(dl_dir, mirror_fname)
+ if os.path.exists(mirror_path):
+ bb.note('Found mirror tarball: %s' % (mirror_path))
+ localpath = mirror_path
+ break
+
+ if len(ud.mirrortarballs) and not localpath:
+ bb.warn('Mirror tarballs are listed for a source but none are present. ' \
+ 'Falling back to original download.\n' \
+ 'SRC_URI = %s' % (ud.url))
+
+ # Check original download
+ if not localpath:
+ bb.note('Using original download: %s' % (ud.localpath))
+ localpath = ud.localpath
+
+ if not localpath or not os.path.exists(localpath):
+ bb.fatal('Original download is missing for a source.\n' \
+ 'SRC_URI = %s' % (ud.url))
+
+ # We now have an appropriate localpath
+ bb.note('Copying source mirror')
+ cmd = 'cp -fpPRH %s %s' % (localpath, destdir)
+ subprocess.check_call(cmd, shell=True)
+}
+
def exclude_useless_paths(tarinfo):
if tarinfo.isdir():
if tarinfo.name.endswith('/temp') or tarinfo.name.endswith('/patches') or tarinfo.name.endswith('/.pc'):
@@ -441,9 +543,10 @@ python do_ar_recipe () {
incfile = include_re.match(line).group(1)
if incfile:
incfile = d.expand(incfile)
+ if incfile:
incfile = bb.utils.which(bbpath, incfile)
- if incfile:
- shutil.copy(incfile, outdir)
+ if incfile:
+ shutil.copy(incfile, outdir)
create_tarball(d, outdir, 'recipe', d.getVar('ARCHIVER_OUTDIR'))
bb.utils.remove(outdir, recurse=True)
@@ -479,12 +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 3d22ad0255..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} $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 d3184ecf7b..5a0b0c6b3e 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -127,6 +127,9 @@ def setup_hosttools_dir(dest, toolsvar, d, fatal=True):
for tool in tools:
desttool = os.path.join(dest, tool)
if not os.path.exists(desttool):
+ # clean up dead symlink
+ if os.path.islink(desttool):
+ os.unlink(desttool)
srctool = bb.utils.which(path, tool, executable=True)
# gcc/g++ may link to ccache on some hosts, e.g.,
# /usr/local/bin/ccache/gcc -> /usr/bin/ccache, then which(gcc)
@@ -138,11 +141,6 @@ def setup_hosttools_dir(dest, toolsvar, d, fatal=True):
os.symlink(srctool, desttool)
else:
notfound.append(tool)
- # Force "python" -> "python2"
- desttool = os.path.join(dest, "python")
- if not os.path.exists(desttool):
- srctool = "python2"
- os.symlink(srctool, desttool)
if notfound and fatal:
bb.fatal("The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:\n %s" % " ".join(notfound))
@@ -390,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()
@@ -442,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:
@@ -457,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)
@@ -482,6 +504,7 @@ python () {
# If we're building a target package we need to use fakeroot (pseudo)
# in order to capture permissions, owners, groups and special files
if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
+ d.appendVarFlag('do_prepare_recipe_sysroot', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
d.setVarFlag('do_unpack', 'umask', '022')
d.setVarFlag('do_configure', 'umask', '022')
d.setVarFlag('do_compile', 'umask', '022')
@@ -497,7 +520,7 @@ python () {
d.appendVarFlag('do_devshell', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
need_machine = d.getVar('COMPATIBLE_MACHINE')
- if need_machine:
+ if need_machine and not d.getVar('PARSE_ALL_RECIPES', False):
import re
compat_machines = (d.getVar('MACHINEOVERRIDES') or "").split(":")
for m in compat_machines:
@@ -506,7 +529,7 @@ python () {
else:
raise bb.parse.SkipRecipe("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % d.getVar('MACHINE'))
- source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False)
+ source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False) or d.getVar('PARSE_ALL_RECIPES', False)
if not source_mirror_fetch:
need_host = d.getVar('COMPATIBLE_HOST')
if need_host:
@@ -530,58 +553,45 @@ python () {
bad_licenses = expand_wildcard_licenses(d, bad_licenses)
whitelist = []
- incompatwl = []
for lic in bad_licenses:
spdx_license = return_spdx(d, lic)
whitelist.extend((d.getVar("WHITELIST_" + lic) or "").split())
if spdx_license:
whitelist.extend((d.getVar("WHITELIST_" + spdx_license) or "").split())
+
+ if pn in whitelist:
'''
We need to track what we are whitelisting and why. If pn is
incompatible we need to be able to note that the image that
is created may infact contain incompatible licenses despite
INCOMPATIBLE_LICENSE being set.
'''
- incompatwl.extend((d.getVar("WHITELIST_" + lic) or "").split())
- if spdx_license:
- incompatwl.extend((d.getVar("WHITELIST_" + spdx_license) or "").split())
-
- if not pn in whitelist:
+ bb.note("Including %s as buildable despite it having an incompatible license because it has been whitelisted" % pn)
+ else:
pkgs = d.getVar('PACKAGES').split()
- skipped_pkgs = []
+ skipped_pkgs = {}
unskipped_pkgs = []
for pkg in pkgs:
- if incompatible_license(d, bad_licenses, pkg):
- skipped_pkgs.append(pkg)
+ incompatible_lic = incompatible_license(d, bad_licenses, pkg)
+ if incompatible_lic:
+ skipped_pkgs[pkg] = incompatible_lic
else:
unskipped_pkgs.append(pkg)
- all_skipped = skipped_pkgs and not unskipped_pkgs
if unskipped_pkgs:
for pkg in skipped_pkgs:
- bb.debug(1, "SKIPPING the package " + pkg + " at do_rootfs because it's " + license)
- mlprefix = d.getVar('MLPREFIX')
- d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, 1)
+ bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (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 " + pkg)
- elif all_skipped or incompatible_license(d, bad_licenses):
- bb.debug(1, "SKIPPING recipe %s because it's %s" % (pn, license))
- raise bb.parse.SkipRecipe("it has an incompatible license: %s" % license)
- elif pn in whitelist:
- if pn in incompatwl:
- bb.note("INCLUDING " + pn + " as buildable despite INCOMPATIBLE_LICENSE because it has been whitelisted")
-
- # 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)))
+ bb.debug(1, "Including the package %s" % pkg)
+ else:
+ incompatible_lic = incompatible_license(d, bad_licenses)
+ for pkg in skipped_pkgs:
+ incompatible_lic += skipped_pkgs[pkg]
+ incompatible_lic = sorted(list(set(incompatible_lic)))
+
+ if incompatible_lic:
+ 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))
needsrcrev = False
srcuri = d.getVar('SRC_URI')
@@ -605,6 +615,7 @@ python () {
# Mercurial packages should DEPEND on mercurial-native
elif scheme == "hg":
needsrcrev = True
+ d.appendVar("EXTRANATIVEPATH", ' python3-native ')
d.appendVarFlag('do_fetch', 'depends', ' mercurial-native:do_populate_sysroot')
# Perforce packages support SRCREV = "${AUTOREV}"
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index f986f7c794..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}"
@@ -40,6 +42,7 @@ BUILDHISTORY_SDK_FILES ?= "conf/local.conf conf/bblayers.conf conf/auto.conf con
BUILDHISTORY_COMMIT ?= "1"
BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>"
BUILDHISTORY_PUSH_REPO ?= ""
+BUILDHISTORY_TAG ?= "build"
SSTATEPOSTINSTFUNCS_append = " buildhistory_emit_pkghistory"
# We want to avoid influencing the signatures of sstate tasks - first the function itself:
@@ -87,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():
@@ -112,6 +114,8 @@ python buildhistory_emit_pkghistory() {
self.packages = ""
self.srcrev = ""
self.layer = ""
+ self.config = ""
+ self.src_uri = ""
class PackageInfo:
@@ -224,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
@@ -253,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
@@ -280,36 +282,36 @@ python buildhistory_emit_pkghistory() {
last_pkgr = lastversion.pkgr
r = bb.utils.vercmp((pkge, pkgv, pkgr), (last_pkge, last_pkgv, last_pkgr))
if r < 0:
- msg = "Package version for package %s went backwards which would break package feeds from (%s:%s-%s to %s:%s-%s)" % (pkg, last_pkge, last_pkgv, last_pkgr, pkge, pkgv, pkgr)
+ msg = "Package version for package %s went backwards which would break package feeds (from %s:%s-%s to %s:%s-%s)" % (pkg, last_pkge, last_pkgv, last_pkgr, pkge, pkgv, pkgr)
package_qa_handle_error("version-going-backwards", msg, d)
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)
@@ -367,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)
@@ -425,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)
@@ -456,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
@@ -467,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.
@@ -824,9 +829,9 @@ END
if [ ! -e .git ] ; then
git init -q
else
- git tag -f build-minus-3 build-minus-2 > /dev/null 2>&1 || true
- git tag -f build-minus-2 build-minus-1 > /dev/null 2>&1 || true
- git tag -f build-minus-1 > /dev/null 2>&1 || true
+ git tag -f ${BUILDHISTORY_TAG}-minus-3 ${BUILDHISTORY_TAG}-minus-2 > /dev/null 2>&1 || true
+ git tag -f ${BUILDHISTORY_TAG}-minus-2 ${BUILDHISTORY_TAG}-minus-1 > /dev/null 2>&1 || true
+ git tag -f ${BUILDHISTORY_TAG}-minus-1 > /dev/null 2>&1 || true
fi
check_git_config
diff --git a/meta/classes/buildstats.bbclass b/meta/classes/buildstats.bbclass
index 960653c704..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:
@@ -100,7 +98,7 @@ def write_task_data(status, logfile, e, d):
f.write("rusage %s: %s\n" % (i, getattr(resources, i)))
for i in rusages:
f.write("Child rusage %s: %s\n" % (i, getattr(childres, i)))
- if status is "passed":
+ if status == "passed":
f.write("Status: PASSED \n")
else:
f.write("Status: FAILED \n")
@@ -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/chrpath.bbclass b/meta/classes/chrpath.bbclass
index 2870c10d51..26b984c4db 100644
--- a/meta/classes/chrpath.bbclass
+++ b/meta/classes/chrpath.bbclass
@@ -2,15 +2,18 @@ CHRPATH_BIN ?= "chrpath"
PREPROCESS_RELOCATE_DIRS ?= ""
def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = False):
- import subprocess as sub
+ import subprocess, oe.qa
- p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE)
- out, err = p.communicate()
- # If returned successfully, process stdout for results
- if p.returncode != 0:
- return
+ with oe.qa.ELFFile(fpath) as elf:
+ try:
+ elf.open()
+ except oe.qa.NotELFFileError:
+ return
- out = out.decode('utf-8')
+ try:
+ out = subprocess.check_output([cmd, "-l", fpath], universal_newlines=True)
+ except subprocess.CalledProcessError:
+ return
# Handle RUNPATH as well as RPATH
out = out.replace("RUNPATH=","RPATH=")
@@ -44,10 +47,11 @@ def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlin
args = ":".join(new_rpaths)
#bb.note("Setting rpath for %s to %s" %(fpath, args))
- p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE)
- out, err = p.communicate()
- if p.returncode != 0:
- bb.fatal("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN'), p.returncode, out, err))
+ try:
+ subprocess.check_output([cmd, "-r", args, fpath],
+ stderr=subprocess.PIPE, universal_newlines=True)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("chrpath command failed with exit code %d:\n%s\n%s" % (e.returncode, e.stdout, e.stderr))
def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = False):
import subprocess as sub
@@ -72,6 +76,10 @@ def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardli
out, err = p.communicate()
def process_dir(rootdir, directory, d, break_hardlinks = False):
+ bb.debug(2, "Checking %s for binaries to process" % directory)
+ if not os.path.exists(directory):
+ return
+
import stat
rootdir = os.path.normpath(rootdir)
@@ -80,10 +88,6 @@ def process_dir(rootdir, directory, d, break_hardlinks = False):
baseprefix = os.path.normpath(d.expand('${base_prefix}'))
hostos = d.getVar("HOST_OS")
- #bb.debug("Checking %s for binaries to process" % directory)
- if not os.path.exists(directory):
- return
-
if "linux" in hostos:
process_file = process_file_linux
elif "darwin" in hostos:
diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
index 2b317c832f..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 ??= ""
@@ -63,21 +61,29 @@ OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-native = "BOTH"
EXTRA_OECMAKE_append = " ${PACKAGECONFIG_CONFARGS}"
-EXTRA_OECMAKE_BUILD_prepend_task-compile = "${PARALLEL_MAKE} "
-EXTRA_OECMAKE_BUILD_prepend_task-install = "${PARALLEL_MAKEINST} "
+export CMAKE_BUILD_PARALLEL_LEVEL
+CMAKE_BUILD_PARALLEL_LEVEL_task-compile = "${@oe.utils.parallel_make(d, False)}"
+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
@@ -87,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} )
@@ -106,11 +112,12 @@ set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" CACHE STRING "LDFLAGS" )
# only search in the paths provided so cmake doesnt pick
# up libraries and tools from the native build machine
-set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN})
+set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN} ${HOSTTOOLS_DIR})
set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM} )
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
+set( CMAKE_PROGRAM_PATH "/" )
# Use qt.conf settings
set( ENV{QT_CONF_PATH} ${WORKDIR}/qt.conf )
@@ -119,6 +126,9 @@ set( ENV{QT_CONF_PATH} ${WORKDIR}/qt.conf )
# directory as rpath by default
set( CMAKE_INSTALL_RPATH ${OECMAKE_RPATH} )
+# Use RPATHs relative to build directory for reproducibility
+set( CMAKE_BUILD_RPATH_USE_ORIGIN ON )
+
# Use our cmake modules
list(APPEND CMAKE_MODULE_PATH "${STAGING_DATADIR}/cmake/Modules/")
@@ -170,6 +180,10 @@ 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 \
-DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \
@@ -177,9 +191,18 @@ cmake_do_configure() {
-Wno-dev
}
+# To disable verbose cmake logs for a given recipe or globally config metadata e.g. local.conf
+# add following
+#
+# CMAKE_VERBOSE = ""
+#
+
+CMAKE_VERBOSE ??= "VERBOSE=1"
+
+# Then run do_compile again
cmake_runcmake_build() {
- bbnote ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '${B}' "$@" -- ${EXTRA_OECMAKE_BUILD}
- eval ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '${B}' "$@" -- ${EXTRA_OECMAKE_BUILD}
+ bbnote ${DESTDIR:+DESTDIR=${DESTDIR} }${CMAKE_VERBOSE} cmake --build '${B}' "$@" -- ${EXTRA_OECMAKE_BUILD}
+ eval ${DESTDIR:+DESTDIR=${DESTDIR} }${CMAKE_VERBOSE} cmake --build '${B}' "$@" -- ${EXTRA_OECMAKE_BUILD}
}
cmake_do_compile() {
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/cross.bbclass b/meta/classes/cross.bbclass
index f832561daf..bfec91d043 100644
--- a/meta/classes/cross.bbclass
+++ b/meta/classes/cross.bbclass
@@ -70,7 +70,6 @@ libdir = "${exec_prefix}/lib/${CROSS_TARGET_SYS_DIR}"
libexecdir = "${exec_prefix}/libexec/${CROSS_TARGET_SYS_DIR}"
do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}/"
-do_populate_sysroot[stamp-extra-info] = ""
do_packagedata[stamp-extra-info] = ""
do_install () {
@@ -97,3 +96,4 @@ python do_addto_recipe_sysroot () {
bb.build.exec_func("extend_recipe_sysroot", d)
}
addtask addto_recipe_sysroot after do_populate_sysroot
+do_addto_recipe_sysroot[deptask] = "do_populate_sysroot"
diff --git a/meta/classes/crosssdk.bbclass b/meta/classes/crosssdk.bbclass
index c0c0bfee16..04aecb694e 100644
--- a/meta/classes/crosssdk.bbclass
+++ b/meta/classes/crosssdk.bbclass
@@ -5,9 +5,15 @@ NATIVESDKLIBC ?= "libc-glibc"
LIBCOVERRIDE = ":${NATIVESDKLIBC}"
MACHINEOVERRIDES = ""
PACKAGE_ARCH = "${SDK_ARCH}"
+
python () {
# set TUNE_PKGARCH to SDK_ARCH
d.setVar('TUNE_PKGARCH', d.getVar('SDK_ARCH'))
+ # Set features here to prevent appends and distro features backfill
+ # from modifying nativesdk distro features
+ features = set(d.getVar("DISTRO_FEATURES_NATIVESDK").split())
+ filtered = set(bb.utils.filter("DISTRO_FEATURES", d.getVar("DISTRO_FEATURES_FILTER_NATIVESDK"), d).split())
+ d.setVar("DISTRO_FEATURES", " ".join(sorted(features | filtered)))
}
STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
@@ -37,7 +43,6 @@ target_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
target_exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
baselib = "lib"
-do_populate_sysroot[stamp-extra-info] = ""
do_packagedata[stamp-extra-info] = ""
# Need to force this to ensure consitency across architectures
diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass
index c00d2910be..25cefda92e 100644
--- a/meta/classes/cve-check.bbclass
+++ b/meta/classes/cve-check.bbclass
@@ -26,51 +26,87 @@ CVE_PRODUCT ??= "${BPN}"
CVE_VERSION ??= "${PV}"
CVE_CHECK_DB_DIR ?= "${DL_DIR}/CVE_CHECK"
-CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_1.0.db"
+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
"""
if os.path.exists(d.getVar("CVE_CHECK_DB_FILE")):
- patched_cves = get_patches_cves(d)
- patched, unpatched = check_cves(d, patched_cves)
+ try:
+ patched_cves = get_patches_cves(d)
+ except FileNotFoundError:
+ bb.fatal("Failure in searching patches")
+ 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 after do_unpack 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 () {
"""
Delete the file used to gather all the CVE information.
"""
-
bb.utils.remove(e.data.getVar("CVE_CHECK_TMP_FILE"))
}
@@ -85,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)
@@ -130,6 +166,10 @@ def get_patches_cves(d):
for url in src_patches(d):
patch_file = bb.fetch.decodeurl(url)[2]
+ if not os.path.isfile(patch_file):
+ bb.error("File Not found: %s" % patch_file)
+ raise FileNotFoundError
+
# Check patch file name for CVE ID
fname_match = cve_file_name_match.search(patch_file)
if fname_match:
@@ -166,7 +206,6 @@ def check_cves(d, patched_cves):
"""
Connect to the NVD database and find unpatched cves.
"""
- import ast, csv, tempfile, subprocess, io
from distutils.version import LooseVersion
cves_unpatched = []
@@ -174,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:
@@ -188,98 +227,101 @@ def check_cves(d, patched_cves):
cve_whitelist = d.getVar("CVE_CHECK_WHITELIST").split()
import sqlite3
- db_file = d.getVar("CVE_CHECK_DB_FILE")
- conn = sqlite3.connect(db_file)
+ db_file = d.expand("file:${CVE_CHECK_DB_FILE}?mode=ro")
+ conn = sqlite3.connect(db_file, uri=True)
+ # For each of the known product names (e.g. curl has CPEs using curl and libcurl)...
for product in products:
- c = conn.cursor()
if ":" in product:
vendor, product = product.split(":", 1)
- c.execute("SELECT * FROM PRODUCTS WHERE PRODUCT IS ? AND VENDOR IS ?", (product, vendor))
else:
- c.execute("SELECT * FROM PRODUCTS WHERE PRODUCT IS ?", (product,))
+ vendor = "%"
- for row in c:
- cve = row[0]
- version_start = row[3]
- operator_start = row[4]
- version_end = row[5]
- operator_end = row[6]
+ # Find all relevant CVE IDs.
+ for cverow in conn.execute("SELECT DISTINCT ID FROM PRODUCTS WHERE PRODUCT IS ? AND VENDOR LIKE ?", (product, vendor)):
+ cve = cverow[0]
if cve in cve_whitelist:
bb.note("%s-%s has been whitelisted for %s" % (product, pv, cve))
+ # TODO: this should be in the report as 'whitelisted'
+ patched_cves.add(cve)
+ continue
elif cve in patched_cves:
bb.note("%s has been patched" % (cve))
- else:
- to_append = False
- if (operator_start == '=' and pv == version_start):
- cves_unpatched.append(cve)
+ continue
+
+ vulnerable = False
+ for row in conn.execute("SELECT * FROM PRODUCTS WHERE ID IS ? AND PRODUCT IS ? AND VENDOR LIKE ?", (cve, product, vendor)):
+ (_, _, _, version_start, operator_start, version_end, operator_end) = row
+ #bb.debug(2, "Evaluating row " + str(row))
+
+ if (operator_start == '=' and pv == version_start) or version_start == '-':
+ vulnerable = True
else:
if operator_start:
try:
- to_append_start = (operator_start == '>=' and LooseVersion(pv) >= LooseVersion(version_start))
- to_append_start |= (operator_start == '>' and LooseVersion(pv) > LooseVersion(version_start))
+ vulnerable_start = (operator_start == '>=' and LooseVersion(pv) >= LooseVersion(version_start))
+ vulnerable_start |= (operator_start == '>' and LooseVersion(pv) > LooseVersion(version_start))
except:
- bb.note("%s: Failed to compare %s %s %s for %s" %
+ bb.warn("%s: Failed to compare %s %s %s for %s" %
(product, pv, operator_start, version_start, cve))
- to_append_start = False
+ vulnerable_start = False
else:
- to_append_start = False
+ vulnerable_start = False
if operator_end:
try:
- to_append_end = (operator_end == '<=' and LooseVersion(pv) <= LooseVersion(version_end))
- to_append_end |= (operator_end == '<' and LooseVersion(pv) < LooseVersion(version_end))
+ vulnerable_end = (operator_end == '<=' and LooseVersion(pv) <= LooseVersion(version_end))
+ vulnerable_end |= (operator_end == '<' and LooseVersion(pv) < LooseVersion(version_end))
except:
- bb.note("%s: Failed to compare %s %s %s for %s" %
+ bb.warn("%s: Failed to compare %s %s %s for %s" %
(product, pv, operator_end, version_end, cve))
- to_append_end = False
+ vulnerable_end = False
else:
- to_append_end = False
+ vulnerable_end = False
if operator_start and operator_end:
- to_append = to_append_start and to_append_end
+ vulnerable = vulnerable_start and vulnerable_end
else:
- to_append = to_append_start or to_append_end
+ vulnerable = vulnerable_start or vulnerable_end
- if to_append:
+ if vulnerable:
+ bb.note("%s-%s is vulnerable to %s" % (product, pv, cve))
cves_unpatched.append(cve)
- bb.debug(2, "%s-%s is not patched for %s" % (product, pv, cve))
+ break
+
+ if not vulnerable:
+ bb.note("%s-%s is not vulnerable to %s" % (product, pv, cve))
+ # TODO: not patched but not vulnerable
+ patched_cves.add(cve)
+
conn.close()
- return (list(patched_cves), cves_unpatched)
+ return (list(cve_whitelist), list(patched_cves), cves_unpatched)
def get_cve_info(d, cves):
"""
Get CVE information from the database.
-
- Unfortunately the only way to get CVE info is set the output to
- html (hard to parse) or query directly the database.
"""
- try:
- import sqlite3
- except ImportError:
- from pysqlite2 import dbapi2 as sqlite3
+ import sqlite3
cve_data = {}
- db_file = d.getVar("CVE_CHECK_DB_FILE")
- placeholder = ",".join("?" * len(cves))
- query = "SELECT * FROM NVD WHERE id IN (%s)" % placeholder
- conn = sqlite3.connect(db_file)
- cur = conn.cursor()
- for row in cur.execute(query, tuple(cves)):
- cve_data[row[0]] = {}
- cve_data[row[0]]["summary"] = row[1]
- cve_data[row[0]]["scorev2"] = row[2]
- cve_data[row[0]]["scorev3"] = row[3]
- cve_data[row[0]]["modified"] = row[4]
- cve_data[row[0]]["vector"] = row[5]
- conn.close()
+ conn = sqlite3.connect(d.getVar("CVE_CHECK_DB_FILE"))
+
+ for cve in cves:
+ for row in conn.execute("SELECT * FROM NVD WHERE ID IS ?", (cve,)):
+ cve_data[row[0]] = {}
+ cve_data[row[0]]["summary"] = row[1]
+ cve_data[row[0]]["scorev2"] = row[2]
+ cve_data[row[0]]["scorev3"] = row[3]
+ cve_data[row[0]]["modified"] = row[4]
+ cve_data[row[0]]["vector"] = row[5]
+ 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.
@@ -292,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)
@@ -309,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/devicetree.bbclass b/meta/classes/devicetree.bbclass
index d8779c7943..c772ab2ab9 100644
--- a/meta/classes/devicetree.bbclass
+++ b/meta/classes/devicetree.bbclass
@@ -59,7 +59,7 @@ DT_BOOT_CPU ??= "0"
DTC_FLAGS ?= "-R ${DT_RESERVED_MAP} -b ${DT_BOOT_CPU}"
DTC_PPFLAGS ?= "-nostdinc -undef -D__DTS__ -x assembler-with-cpp"
-DTC_BFLAGS ?= "-p ${DT_PADDING_SIZE}"
+DTC_BFLAGS ?= "-p ${DT_PADDING_SIZE} -@"
DTC_OFLAGS ?= "-p 0 -@ -H epapr"
python () {
diff --git a/meta/classes/devtool-source.bbclass b/meta/classes/devtool-source.bbclass
index a8110006fb..41900e651f 100644
--- a/meta/classes/devtool-source.bbclass
+++ b/meta/classes/devtool-source.bbclass
@@ -97,17 +97,15 @@ python devtool_post_unpack() {
local_files = oe.recipeutils.get_recipe_local_files(d)
if is_kernel_yocto:
- for key in local_files.copy():
- if key.endswith('scc'):
- sccfile = open(local_files[key], 'r')
+ for key in [f for f in local_files if f.endswith('scc')]:
+ with open(local_files[key], 'r') as sccfile:
for l in sccfile:
line = l.split()
if line and line[0] in ('kconf', 'patch'):
cfg = os.path.join(os.path.dirname(local_files[key]), line[-1])
- if not cfg in local_files.values():
+ if cfg not in local_files.values():
local_files[line[-1]] = cfg
shutil.copy2(cfg, workdir)
- sccfile.close()
# Ignore local files with subdir={BP}
srcabspath = os.path.abspath(srcsubdir)
@@ -201,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
@@ -218,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/distro_features_check.bbclass b/meta/classes/distro_features_check.bbclass
index eeaa3b44cb..8124a8ca27 100644
--- a/meta/classes/distro_features_check.bbclass
+++ b/meta/classes/distro_features_check.bbclass
@@ -1,32 +1,7 @@
-# Allow checking of required and conflicting DISTRO_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.
-#
-# Copyright 2013 (C) O.S. Systems Software LTDA.
+# Temporarily provide fallback to the old name of the class
-python () {
- # 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)))
+python __anonymous() {
+ bb.warn("distro_features_check.bbclass is deprecated, please use features_check.bbclass instead")
}
+
+inherit features_check
diff --git a/meta/classes/distutils-base.bbclass b/meta/classes/distutils-base.bbclass
deleted file mode 100644
index 9f398d7051..0000000000
--- a/meta/classes/distutils-base.bbclass
+++ /dev/null
@@ -1,4 +0,0 @@
-DEPENDS += "${@["${PYTHON_PN}-native ${PYTHON_PN}", ""][(d.getVar('PACKAGES') == '')]}"
-RDEPENDS_${PN} += "${@['', '${PYTHON_PN}-core']['${CLASSOVERRIDE}' == 'class-target']}"
-
-inherit distutils-common-base pythonnative
diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass
deleted file mode 100644
index 3759b58263..0000000000
--- a/meta/classes/distutils.bbclass
+++ /dev/null
@@ -1,87 +0,0 @@
-inherit distutils-base
-
-DISTUTILS_BUILD_ARGS ?= ""
-DISTUTILS_STAGE_HEADERS_ARGS ?= "--install-dir=${STAGING_INCDIR}/${PYTHON_DIR}"
-DISTUTILS_STAGE_ALL_ARGS ?= "--prefix=${STAGING_DIR_HOST}${prefix} \
- --install-data=${STAGING_DATADIR}"
-DISTUTILS_INSTALL_ARGS ?= "--root=${D} \
- --prefix=${prefix} \
- --install-lib=${PYTHON_SITEPACKAGES_DIR} \
- --install-data=${datadir}"
-
-DISTUTILS_PYTHON = "python"
-DISTUTILS_PYTHON_class-native = "nativepython"
-
-distutils_do_configure() {
- if [ "${CLEANBROKEN}" != "1" ] ; then
- NO_FETCH_BUILD=1 \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py clean ${DISTUTILS_BUILD_ARGS}
- fi
-}
-
-distutils_do_compile() {
- NO_FETCH_BUILD=1 \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS} || \
- bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed."
-}
-
-distutils_stage_headers() {
- install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
- bbfatal_log "'${PYTHON_PN} setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS}' execution for stage_headers failed."
-}
-
-distutils_stage_all() {
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
- PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
- bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_STAGE_ALL_ARGS}' execution for stage_all failed."
-}
-
-distutils_do_install() {
- install -d ${D}${PYTHON_SITEPACKAGES_DIR}
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS} || \
- bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed."
-
- # support filenames with *spaces*
- # only modify file if it contains path and recompile it
- find ${D} -name "*.py" -exec grep -q ${D} {} \; \
- -exec sed -i -e s:${D}::g {} \; \
- -exec ${STAGING_BINDIR_NATIVE}/python-native/python -mcompileall {} \;
-
- for i in ${D}${bindir}/* ${D}${sbindir}/*; do
- if [ -f "$i" ]; then
- sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${DISTUTILS_PYTHON}:g $i
- sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
- fi
- done
-
- rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth
- rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.py*
-
- #
- # FIXME: Bandaid against wrong datadir computation
- #
- if [ -e ${D}${datadir}/share ]; then
- mv -f ${D}${datadir}/share/* ${D}${datadir}/
- rmdir ${D}${datadir}/share
- fi
-
- # Fix backport modules
- if [ -e ${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/backports/__init__.py ] &&
- [ -e ${D}${PYTHON_SITEPACKAGES_DIR}/backports/__init__.py ]; then
- rm ${D}${PYTHON_SITEPACKAGES_DIR}/backports/__init__.py;
- rm ${D}${PYTHON_SITEPACKAGES_DIR}/backports/__init__.pyc;
- fi
-}
-
-EXPORT_FUNCTIONS do_configure do_compile do_install
-
-export LDSHARED="${CCLD} -shared"
diff --git a/meta/classes/distutils3.bbclass b/meta/classes/distutils3.bbclass
index 05a24bfe26..7356b5245a 100644
--- a/meta/classes/distutils3.bbclass
+++ b/meta/classes/distutils3.bbclass
@@ -1,10 +1,9 @@
inherit distutils3-base
+B = "${WORKDIR}/build"
+distutils_do_configure[cleandirs] = "${B}"
+
DISTUTILS_BUILD_ARGS ?= ""
-DISTUTILS_BUILD_EXT_ARGS ?= ""
-DISTUTILS_STAGE_HEADERS_ARGS ?= "--install-dir=${STAGING_INCDIR}/${PYTHON_DIR}"
-DISTUTILS_STAGE_ALL_ARGS ?= "--prefix=${STAGING_DIR_HOST}${prefix} \
- --install-data=${STAGING_DATADIR}"
DISTUTILS_INSTALL_ARGS ?= "--root=${D} \
--prefix=${prefix} \
--install-lib=${PYTHON_SITEPACKAGES_DIR} \
@@ -14,45 +13,28 @@ DISTUTILS_PYTHON = "python3"
DISTUTILS_PYTHON_class-native = "nativepython3"
distutils3_do_configure() {
- if [ "${CLEANBROKEN}" != "1" ] ; then
- NO_FETCH_BUILD=1 \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py clean ${DISTUTILS_BUILD_ARGS}
- fi
+ :
}
distutils3_do_compile() {
+ cd ${S}
NO_FETCH_BUILD=1 \
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
- build ${DISTUTILS_BUILD_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} ${S}/setup.py \
+ build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \
bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed."
}
distutils3_do_compile[vardepsexclude] = "MACHINE"
-distutils3_stage_headers() {
- install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
- bbfatal_log "'${PYTHON_PN} setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS}' execution for stage_headers failed."
-}
-distutils3_stage_headers[vardepsexclude] = "MACHINE"
-
-distutils3_stage_all() {
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
- PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
- bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_STAGE_ALL_ARGS}' execution for stage_all failed."
-}
-distutils3_stage_all[vardepsexclude] = "MACHINE"
-
distutils3_do_install() {
+ cd ${S}
install -d ${D}${PYTHON_SITEPACKAGES_DIR}
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS} || \
+ ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} ${S}/setup.py \
+ build --build-base=${B} install --skip-build ${DISTUTILS_INSTALL_ARGS} || \
bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed."
# support filenames with *spaces*
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass
index ea59d02ed9..dd09395788 100644
--- a/meta/classes/externalsrc.bbclass
+++ b/meta/classes/externalsrc.bbclass
@@ -73,9 +73,8 @@ python () {
d.setVar('SRC_URI', ' '.join(local_srcuri))
- if '{SRCPV}' in d.getVar('PV', False):
- # Dummy value because the default function can't be called with blank SRC_URI
- d.setVar('SRCPV', '999')
+ # Dummy value because the default function can't be called with blank SRC_URI
+ d.setVar('SRCPV', '999')
if d.getVar('CONFIGUREOPT_DEPTRACK') == '--disable-dependency-tracking':
d.setVar('CONFIGUREOPT_DEPTRACK', '')
@@ -86,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
new file mode 100644
index 0000000000..b3c8047861
--- /dev/null
+++ b/meta/classes/features_check.bbclass
@@ -0,0 +1,57 @@
+# Allow checking of required and conflicting 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.
+
+python () {
+ if d.getVar('PARSE_ALL_RECIPES', False):
+ return
+
+ 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 13f9df1592..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,
@@ -20,7 +20,7 @@ if [ -n "$D" ] ; then
$INTERCEPT_DIR/postinst_intercept update_font_cache ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} \
'bindir="${bindir}"' \
'libdir="${libdir}"' \
- 'libexecdir="${libexecdir}"' \
+ 'libexecdir="${libexecdir}"' \
'base_libdir="${base_libdir}"' \
'fontconfigcachedir="${FONTCONFIG_CACHE_DIR}"' \
'fontconfigcacheparams="${FONTCONFIG_CACHE_PARAMS}"' \
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 e40e55689d..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 ?= ""
@@ -53,6 +53,7 @@ GOTOOLDIR_class-native = "${STAGING_LIBDIR_NATIVE}/go/pkg/tool/${BUILD_GOTUPLE}"
export GOTOOLDIR
export CGO_ENABLED ?= "1"
+export CGO_ENABLED_riscv64 = "0"
export CGO_CFLAGS ?= "${CFLAGS}"
export CGO_CPPFLAGS ?= "${CPPFLAGS}"
export CGO_CXXFLAGS ?= "${CXXFLAGS}"
@@ -147,7 +148,7 @@ INSANE_SKIP_${PN} += "ldflags"
# doesn't support -buildmode=pie, so skip the QA checking for mips and its
# variants.
python() {
- if 'mips' in d.getVar('TARGET_ARCH'):
+ if 'mips' in d.getVar('TARGET_ARCH') or 'riscv' in d.getVar('TARGET_ARCH'):
d.appendVar('INSANE_SKIP_%s' % d.getVar('PN'), " textrel")
else:
d.appendVar('GOBUILDFLAGS', ' -buildmode=pie')
diff --git a/meta/classes/goarch.bbclass b/meta/classes/goarch.bbclass
index 166dea9dc6..1099b95769 100644
--- a/meta/classes/goarch.bbclass
+++ b/meta/classes/goarch.bbclass
@@ -6,12 +6,18 @@ HOST_GOARCH = "${@go_map_arch(d.getVar('HOST_ARCH'), d)}"
HOST_GOARM = "${@go_map_arm(d.getVar('HOST_ARCH'), d)}"
HOST_GO386 = "${@go_map_386(d.getVar('HOST_ARCH'), d.getVar('TUNE_FEATURES'), d)}"
HOST_GOMIPS = "${@go_map_mips(d.getVar('HOST_ARCH'), d.getVar('TUNE_FEATURES'), d)}"
+HOST_GOARM_class-native = "7"
+HOST_GO386_class-native = "sse2"
+HOST_GOMIPS_class-native = "hardfloat"
HOST_GOTUPLE = "${HOST_GOOS}_${HOST_GOARCH}"
TARGET_GOOS = "${@go_map_os(d.getVar('TARGET_OS'), d)}"
TARGET_GOARCH = "${@go_map_arch(d.getVar('TARGET_ARCH'), d)}"
TARGET_GOARM = "${@go_map_arm(d.getVar('TARGET_ARCH'), d)}"
TARGET_GO386 = "${@go_map_386(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'), d)}"
TARGET_GOMIPS = "${@go_map_mips(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'), d)}"
+TARGET_GOARM_class-native = "7"
+TARGET_GO386_class-native = "sse2"
+TARGET_GOMIPS_class-native = "hardfloat"
TARGET_GOTUPLE = "${TARGET_GOOS}_${TARGET_GOARCH}"
GO_BUILD_BINDIR = "${@['bin/${HOST_GOTUPLE}','bin'][d.getVar('BUILD_GOTUPLE') == d.getVar('HOST_GOTUPLE')]}"
@@ -31,6 +37,7 @@ GO_DYNLINK_aarch64 = "1"
GO_DYNLINK_x86 = "1"
GO_DYNLINK_x86-64 = "1"
GO_DYNLINK_powerpc64 = "1"
+GO_DYNLINK_powerpc64le = "1"
GO_DYNLINK_class-native = ""
GO_DYNLINK_class-nativesdk = ""
@@ -40,6 +47,7 @@ COMPATIBLE_HOST_linux-gnux32 = "null"
COMPATIBLE_HOST_linux-muslx32 = "null"
COMPATIBLE_HOST_powerpc = "null"
COMPATIBLE_HOST_powerpc64 = "null"
+COMPATIBLE_HOST_powerpc64le = "null"
COMPATIBLE_HOST_mipsarchn32 = "null"
ARM_INSTRUCTION_SET_armv4 = "arm"
@@ -47,7 +55,6 @@ ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv6 = "arm"
TUNE_CCARGS_remove = "-march=mips32r2"
-SECURITY_CFLAGS_mipsarch = "${SECURITY_NOPIE_CFLAGS}"
SECURITY_NOPIE_CFLAGS ??= ""
# go can't be built with ccache:
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/icecc.bbclass b/meta/classes/icecc.bbclass
index 4376aa37dc..d095305ed8 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -105,7 +105,7 @@ def icecc_dep_prepend(d):
return "icecc-create-env-native"
return ""
-DEPENDS_prepend += "${@icecc_dep_prepend(d)} "
+DEPENDS_prepend = "${@icecc_dep_prepend(d)} "
get_cross_kernel_cc[vardepsexclude] += "KERNEL_CC"
def get_cross_kernel_cc(bb,d):
@@ -356,17 +356,6 @@ set_icecc_env() {
return
fi
- # Create symlinks to icecc in the recipe-sysroot directory
- mkdir -p ${ICE_PATH}
- if [ -n "${KERNEL_CC}" ]; then
- compilers="${@get_cross_kernel_cc(bb,d)}"
- else
- compilers="${HOST_PREFIX}gcc ${HOST_PREFIX}g++"
- fi
- for compiler in $compilers; do
- ln -sf ${ICECC_BIN} ${ICE_PATH}/$compiler
- done
-
ICECC_CC="${@icecc_get_and_check_tool(bb, d, "gcc")}"
ICECC_CXX="${@icecc_get_and_check_tool(bb, d, "g++")}"
# cannot use icecc_get_and_check_tool here because it assumes as without target_sys prefix
@@ -385,6 +374,26 @@ set_icecc_env() {
return
fi
+ # Create symlinks to icecc and wrapper-scripts in the recipe-sysroot directory
+ mkdir -p $ICE_PATH/symlinks
+ if [ -n "${KERNEL_CC}" ]; then
+ compilers="${@get_cross_kernel_cc(bb,d)}"
+ else
+ compilers="${HOST_PREFIX}gcc ${HOST_PREFIX}g++"
+ fi
+ for compiler in $compilers; do
+ ln -sf $ICECC_BIN $ICE_PATH/symlinks/$compiler
+ rm -f $ICE_PATH/$compiler
+ cat <<-__EOF__ > $ICE_PATH/$compiler
+ #!/bin/sh -e
+ export ICECC_VERSION=$ICECC_VERSION
+ export ICECC_CC=$ICECC_CC
+ export ICECC_CXX=$ICECC_CXX
+ $ICE_PATH/symlinks/$compiler "\$@"
+ __EOF__
+ chmod 775 $ICE_PATH/$compiler
+ done
+
ICECC_AS="`${ICECC_CC} -print-prog-name=as`"
# for target recipes should return something like:
# /OE/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm920tt-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.8.2/as
@@ -417,7 +426,6 @@ set_icecc_env() {
export CCACHE_PATH="$PATH"
export CCACHE_DISABLE="1"
- export ICECC_VERSION ICECC_CC ICECC_CXX
export PATH="$ICE_PATH:$PATH"
bbnote "Using icecc path: $ICE_PATH"
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 f4633da3d5..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_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")
@@ -609,6 +609,7 @@ do_patch[noexec] = "1"
do_configure[noexec] = "1"
do_compile[noexec] = "1"
do_install[noexec] = "1"
+deltask do_populate_lic
deltask do_populate_sysroot
do_package[noexec] = "1"
deltask do_package_qa
@@ -653,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 2eeffbb366..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).
@@ -59,6 +53,8 @@ XZ_INTEGRITY_CHECK ?= "crc32"
ZIP_COMPRESSION_LEVEL ?= "-9"
+ZSTD_COMPRESSION_LEVEL ?= "-3"
+
JFFS2_SUM_EXTRA_ARGS ?= ""
IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime --output=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.jffs2 ${EXTRA_IMAGECMD}"
@@ -128,7 +124,7 @@ IMAGE_CMD_tar = "${IMAGE_CMD_TAR} --numeric-owner -cf ${IMGDEPLOYDIR}/${IMAGE_NA
do_image_cpio[cleandirs] += "${WORKDIR}/cpio_append"
IMAGE_CMD_cpio () {
- (cd ${IMAGE_ROOTFS} && find . | cpio -o -H newc >${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
+ (cd ${IMAGE_ROOTFS} && find . | sort | cpio --reproducible -o -H newc >${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
# We only need the /init symlink if we're building the real
# image. The -dbg image doesn't need it! By being clever
# about this we also avoid 'touch' below failing, as it
@@ -229,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"
@@ -269,9 +266,9 @@ IMAGE_TYPES = " \
hddimg \
squashfs squashfs-xz squashfs-lzo squashfs-lz4 \
ubi ubifs multiubi \
- tar tar.gz tar.bz2 tar.xz tar.lz4 \
+ 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 \
"
@@ -282,7 +279,7 @@ IMAGE_TYPES = " \
# CONVERSION_CMD/DEPENDS.
COMPRESSIONTYPES ?= ""
-CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot vmdk vdi qcow2 base64 ${COMPRESSIONTYPES}"
+CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip zst sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot vmdk vdi qcow2 base64 ${COMPRESSIONTYPES}"
CONVERSION_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_gz = "gzip -f -9 -n -c --rsyncable ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
CONVERSION_CMD_bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
@@ -290,6 +287,7 @@ CONVERSION_CMD_xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_DEFAULTS} --check=
CONVERSION_CMD_lz4 = "lz4 -9 -z -l ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
CONVERSION_CMD_lzo = "lzop -9 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_zip = "zip ${ZIP_COMPRESSION_LEVEL} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.zip ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
+CONVERSION_CMD_zst = "zstd -f -k -T0 -c ${ZSTD_COMPRESSION_LEVEL} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.zst"
CONVERSION_CMD_sum = "sumtool -i ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sum ${JFFS2_SUM_EXTRA_ARGS}"
CONVERSION_CMD_md5sum = "md5sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.md5sum"
CONVERSION_CMD_sha1sum = "sha1sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha1sum"
@@ -310,6 +308,7 @@ CONVERSION_DEPENDS_xz = "xz-native"
CONVERSION_DEPENDS_lz4 = "lz4-native"
CONVERSION_DEPENDS_lzo = "lzop-native"
CONVERSION_DEPENDS_zip = "zip-native"
+CONVERSION_DEPENDS_zst = "zstd-native"
CONVERSION_DEPENDS_sum = "mtd-utils-native"
CONVERSION_DEPENDS_bmap = "bmap-tools-native"
CONVERSION_DEPENDS_u-boot = "u-boot-tools-native"
diff --git a/meta/classes/image_types_wic.bbclass b/meta/classes/image_types_wic.bbclass
index f350dc2723..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"
+ 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)}
@@ -27,16 +28,18 @@ WIC_CREATE_EXTRA_ARGS ?= ""
IMAGE_CMD_wic () {
out="${IMGDEPLOYDIR}/${IMAGE_NAME}"
+ build_wic="${WORKDIR}/build-wic"
wks="${WKS_FULL_PATH}"
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 "$out/" ${WIC_CREATE_EXTRA_ARGS}
- mv "$out/$(basename "${wks%.wks}")"*.direct "$out${IMAGE_NAME_SUFFIX}.wic"
- rm -rf "$out/"
+ 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)}"
@@ -46,6 +49,7 @@ do_image_wic[depends] += "${@' '.join('%s-native:do_populate_sysroot' % r for r
# We ensure all artfacts are deployed (e.g virtual/bootloader)
do_image_wic[recrdeptask] += "do_deploy"
+do_image_wic[deptask] += "do_image_complete"
WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [ 'x86_64', 'i686' ], "syslinux-native", "",d)}'
WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native"
@@ -84,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)
@@ -137,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 9605ac2bae..c6dff9659c 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -22,19 +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 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)}"
@@ -82,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):
@@ -181,10 +207,50 @@ def package_qa_check_staticdev(path, name, d, elf, messages):
libgcc.a, libgcov.a will be skipped in their packages
"""
- if not name.endswith("-pic") and not name.endswith("-staticdev") and not name.endswith("-ptest") and path.endswith(".a") and not path.endswith("_nonshared.a"):
+ if not name.endswith("-pic") and not name.endswith("-staticdev") and not name.endswith("-ptest") and path.endswith(".a") and not path.endswith("_nonshared.a") and not '/usr/lib/debug-static/' in path and not '/.debug-static/' in path:
package_qa_add_message(messages, "staticdev", "non -staticdev package contains static .a library: %s path '%s'" % \
(name, package_qa_clean_path(path,d)))
+QAPATHTEST[mime] = "package_qa_check_mime"
+def package_qa_check_mime(path, name, d, elf, messages):
+ """
+ Check if package installs mime types to /usr/share/mime/packages
+ while no inheriting mime.bbclass
+ """
+
+ if d.getVar("datadir") + "/mime/packages" in path and path.endswith('.xml') and not bb.data.inherits_class("mime", d):
+ package_qa_add_message(messages, "mime", "package contains mime types but does not inherit mime: %s path '%s'" % \
+ (name, package_qa_clean_path(path,d)))
+
+QAPATHTEST[mime-xdg] = "package_qa_check_mime_xdg"
+def package_qa_check_mime_xdg(path, name, d, elf, messages):
+ """
+ Check if package installs desktop file containing MimeType and requires
+ mime-types.bbclass to create /usr/share/applications/mimeinfo.cache
+ """
+
+ if d.getVar("datadir") + "/applications" in path and path.endswith('.desktop') and not bb.data.inherits_class("mime-xdg", d):
+ mime_type_found = False
+ try:
+ with open(path, 'r') as f:
+ for line in f.read().split('\n'):
+ if 'MimeType' in line:
+ mime_type_found = True
+ break;
+ except:
+ # At least libreoffice installs symlinks with absolute paths that are dangling here.
+ # We could implement some magic but for few (one) recipes it is not worth the effort so just warn:
+ wstr = "%s cannot open %s - is it a symlink with absolute path?\n" % (name, package_qa_clean_path(path,d))
+ wstr += "Please check if (linked) file contains key 'MimeType'.\n"
+ pkgname = name
+ if name == d.getVar('PN'):
+ pkgname = '${PN}'
+ wstr += "If yes: add \'inhert mime-xdg\' and \'MIME_XDG_PACKAGES += \"%s\"\' / if no add \'INSANE_SKIP_%s += \"mime-xdg\"\' to recipe." % (pkgname, pkgname)
+ package_qa_add_message(messages, "mime-xdg", wstr)
+ if mime_type_found:
+ package_qa_add_message(messages, "mime-xdg", "package contains desktop file with key 'MimeType' but does not inhert mime-xdg: %s path '%s'" % \
+ (name, package_qa_clean_path(path,d)))
+
def package_qa_check_libdir(d):
"""
Check for wrong library installation paths. For instance, catch
@@ -299,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):
@@ -340,9 +406,11 @@ def package_qa_textrel(path, name, d, elf, messages):
for line in phdrs.split("\n"):
if textrel_re.match(line):
sane = False
+ break
if not sane:
- package_qa_add_message(messages, "textrel", "ELF binary '%s' has relocations in .text" % path)
+ path = package_qa_clean_path(path, d, name)
+ package_qa_add_message(messages, "textrel", "%s: ELF binary %s has relocations in .text" % (name, path))
QAPATHTEST[ldflags] = "package_qa_hash_style"
def package_qa_hash_style(path, name, d, elf, messages):
@@ -371,13 +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" in line:
+ if "GNU_HASH" in line or "DT_MIPS_XHASH" in line:
sane = True
- if "[mips32]" in line or "[mips64]" in line:
+ 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"
@@ -393,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()
@@ -646,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:
@@ -832,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
@@ -891,10 +975,28 @@ def package_qa_check_src_uri(pn, d, messages):
if "${PN}" in d.getVar("SRC_URI", False):
package_qa_handle_error("src-uri-bad", "%s: SRC_URI uses PN not BPN" % pn, d)
- pn = d.getVar("SRC_URI")
- if re.search(r"github\.com/.+/.+/archive/.+", pn):
- package_qa_handle_error("src-uri-bad", "%s: SRC_URI uses unstable GitHub archives" % pn, d)
-
+ for url in d.getVar("SRC_URI").split():
+ 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 () {
@@ -935,14 +1037,20 @@ python do_package_qa () {
pkgdest = d.getVar('PKGDEST')
packages = set((d.getVar('PACKAGES') or '').split())
- cpath = oe.cachedpath.CachedPath()
global pkgfiles
pkgfiles = {}
for pkg in packages:
pkgfiles[pkg] = []
- for walkroot, dirs, files in cpath.walk(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(walkroot + os.sep + file)
+ pkgfiles[pkg].append(os.path.join(walkroot, file))
# no packages should be scanned
if not packages:
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 8a81c850fd..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
}
@@ -71,23 +71,23 @@ do_deploy_append() {
dtb=`normalize_dtb "$dtbf"`
dtb_ext=${dtb##*.}
dtb_base_name=`basename $dtb .$dtb_ext`
- install -d ${DEPLOYDIR}
- install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
- ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name.$dtb_ext
- ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
+ install -d $deployDir
+ install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
+ ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name.$dtb_ext
+ ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
cat ${D}/${KERNEL_IMAGEDEST}/$type \
- ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
- > ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
+ $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
+ > $deployDir/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
- ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
+ $deployDir/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
cat ${KERNEL_OUTPUT_DIR}/${type}.initramfs \
- ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
- > ${DEPLOYDIR}/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
+ $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
+ > $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
- ${DEPLOYDIR}/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
+ $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
fi
fi
done
diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
index 1bcb09c598..bb2f3c4ccc 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -53,6 +53,25 @@ UBOOT_MKIMAGE_DTCOPTS ??= ""
# fitImage Hash Algo
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
#
@@ -246,6 +265,7 @@ EOF
fitimage_emit_section_config() {
conf_csum="${FIT_HASH_ALG}"
+ conf_sign_algo="${FIT_SIGN_ALG}"
if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then
conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
fi
@@ -253,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=", "
@@ -283,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}
@@ -327,7 +362,7 @@ EOF
cat << EOF >> ${1}
signature@1 {
- algo = "${conf_csum},rsa2048";
+ algo = "${conf_csum},${conf_sign_algo}";
key-name-hint = "${conf_sign_keyname}";
${sign_line}
};
@@ -387,11 +422,10 @@ fitimage_assemble() {
if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ]; then
dtbcount=1
- for DTBFILE in ${EXTERNAL_KERNEL_DEVICETREE}/*.dtb; do
- DTB=`basename ${DTBFILE}`
+ for DTB in $(find "${EXTERNAL_KERNEL_DEVICETREE}" \( -name '*.dtb' -o -name '*.dtbo' \) -printf '%P\n' | sort); do
DTB=$(echo "${DTB}" | tr '/' '_')
DTBS="${DTBS} ${DTB}"
- fitimage_emit_section_dtb ${1} ${DTB} ${DTBFILE}
+ fitimage_emit_section_dtb ${1} ${DTB} "${EXTERNAL_KERNEL_DEVICETREE}/${DTB}"
done
fi
@@ -431,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
@@ -442,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
@@ -494,33 +538,61 @@ 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() {
# Update deploy directory
if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
echo "Copying fit-image.its source file..."
- install -m 0644 ${B}/fit-image.its ${DEPLOYDIR}/fitImage-its-${KERNEL_FIT_NAME}.its
- ln -snf fitImage-its-${KERNEL_FIT_NAME}.its ${DEPLOYDIR}/fitImage-its-${KERNEL_FIT_LINK_NAME}
+ install -m 0644 ${B}/fit-image.its "$deployDir/fitImage-its-${KERNEL_FIT_NAME}.its"
+ ln -snf fitImage-its-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${KERNEL_FIT_LINK_NAME}"
echo "Copying linux.bin file..."
- install -m 0644 ${B}/linux.bin ${DEPLOYDIR}/fitImage-linux.bin-${KERNEL_FIT_NAME}.bin
- ln -snf fitImage-linux.bin-${KERNEL_FIT_NAME}.bin ${DEPLOYDIR}/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}
+ install -m 0644 ${B}/linux.bin $deployDir/fitImage-linux.bin-${KERNEL_FIT_NAME}.bin
+ ln -snf fitImage-linux.bin-${KERNEL_FIT_NAME}.bin "$deployDir/fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}"
if [ -n "${INITRAMFS_IMAGE}" ]; then
echo "Copying fit-image-${INITRAMFS_IMAGE}.its source file..."
- install -m 0644 ${B}/fit-image-${INITRAMFS_IMAGE}.its ${DEPLOYDIR}/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its
- ln -snf fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its ${DEPLOYDIR}/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}
+ install -m 0644 ${B}/fit-image-${INITRAMFS_IMAGE}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its"
+ ln -snf fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.its "$deployDir/fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
echo "Copying fitImage-${INITRAMFS_IMAGE} file..."
- install -m 0644 ${B}/arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} ${DEPLOYDIR}/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin
- ln -snf fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin ${DEPLOYDIR}/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}
+ install -m 0644 ${B}/arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin"
+ ln -snf fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_NAME}.bin "$deployDir/fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}"
fi
if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ] ; then
# UBOOT_DTB_IMAGE is a realfile, but we can't use
# ${UBOOT_DTB_IMAGE} since it contains ${PV} which is aimed
# for u-boot, but we are in kernel env now.
- install -m 0644 ${B}/u-boot-${MACHINE}*.dtb ${DEPLOYDIR}/
+ install -m 0644 ${B}/u-boot-${MACHINE}*.dtb "$deployDir/"
fi
fi
}
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index ed9bcfa57c..35587dd564 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -1,8 +1,25 @@
# 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"
+# The distro or local.conf should set this, but if nobody cares...
+LINUX_KERNEL_TYPE ??= "standard"
+
+# KMETA ?= ""
+KBRANCH ?= "master"
+KMACHINE ?= "${MACHINE}"
+SRCREV_FORMAT ?= "meta_machine"
+
+# LEVELS:
+# 0: no reporting
+# 1: report options that are specified, but not in the final config
+# 2: report options that are not hardware related, but set by a BSP
+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
def find_patches(d,subdir):
@@ -31,7 +48,7 @@ def find_sccs(d):
base, ext = os.path.splitext(os.path.basename(s))
if ext and ext in [".scc", ".cfg"]:
sources_list.append(s)
- elif base and base in 'defconfig':
+ elif base and 'defconfig' in base:
sources_list.append(s)
return sources_list
@@ -69,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}
@@ -83,13 +122,6 @@ do_kernel_metadata() {
fi
fi
- machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}"
- machine_srcrev="${SRCREV_machine}"
- if [ -z "${machine_srcrev}" ]; then
- # fallback to SRCREV if a non machine_meta tree is being built
- machine_srcrev="${SRCREV}"
- fi
-
# In a similar manner to the kernel itself:
#
# defconfig: $(obj)/conf
@@ -111,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
@@ -178,29 +222,72 @@ 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.
+ grep -q KMETA_EXTERNAL_BSP $bsp_definition
+ if [ $? -eq 0 ]; then
+ KMETA_EXTERNAL_BSPS="t"
+ fi
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
- # 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 KMETA_EXTERNAL_BSPS has been set, or it has been detected from
+ # the bsp definition, then we inject the bsp_definition into the
+ # patch phase below. we'll piggy back on the sccs variable.
+ if [ -n "${KMETA_EXTERNAL_BSPS}" ]; then
+ sccs="${bsp_definition} ${sccs}"
+ fi
+
+ 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
}
@@ -293,17 +380,19 @@ 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() {
- set +e
+ do_kernel_metadata config
# translate the kconfig_mode into something that merge_config.sh
# understands
@@ -330,16 +419,84 @@ do_kernel_configme() {
bbfatal_log "Could not find configuration queue (${meta_dir}/config.queue)"
fi
- CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" CC="${KERNEL_CC}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1
- if [ $? -ne 0 ]; then
- bbfatal_log "Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}"
+ CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1
+ if [ $? -ne 0 -o ! -f ${B}/.config ]; then
+ bberror "Could not generate a .config for ${KMACHINE}-${LINUX_KERNEL_TYPE}"
+ if [ ${KCONF_AUDIT_LEVEL} -gt 1 ]; then
+ bbfatal_log "`cat ${meta_dir}/cfg/merge_config_build.log`"
+ else
+ bbfatal_log "Details can be found at: ${S}/${meta_dir}/cfg/merge_config_build.log"
+ fi
fi
- echo "# Global settings from linux recipe" >> ${B}/.config
- echo "CONFIG_LOCALVERSION="\"${LINUX_VERSION_EXTENSION}\" >> ${B}/.config
+ if [ ! -z "${LINUX_VERSION_EXTENSION}" ]; then
+ echo "# Global settings from linux recipe" >> ${B}/.config
+ echo "CONFIG_LOCALVERSION="\"${LINUX_VERSION_EXTENSION}\" >> ${B}/.config
+ fi
}
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
@@ -349,58 +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'] = 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 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:
- 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 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
@@ -458,4 +656,15 @@ 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
+addtask kernel_version_sanity_check after do_kernel_metadata do_kernel_checkout before do_compile
+addtask validate_branches before do_patch after do_kernel_checkout
+addtask kernel_configcheck after do_configure before do_compile
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index ebcb79a528..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
@@ -508,7 +541,7 @@ sysroot_stage_all () {
:
}
-KERNEL_CONFIG_COMMAND ?= "oe_runmake_call -C ${S} CC="${KERNEL_CC}" O=${B} olddefconfig || oe_runmake -C ${S} O=${B} CC="${KERNEL_CC}" oldnoconfig"
+KERNEL_CONFIG_COMMAND ?= "oe_runmake_call -C ${S} CC="${KERNEL_CC}" LD="${KERNEL_LD}" O=${B} olddefconfig || oe_runmake -C ${S} O=${B} CC="${KERNEL_CC}" LD="${KERNEL_LD}" oldnoconfig"
python check_oldest_kernel() {
oldest_kernel = d.getVar('OLDEST_KERNEL')
@@ -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"
@@ -613,6 +646,9 @@ do_kernel_link_images() {
if [ -f ../../../vmlinuz.bin ]; then
ln -sf ../../../vmlinuz.bin
fi
+ if [ -f ../../../vmlinux.64 ]; then
+ ln -sf ../../../vmlinux.64
+ fi
}
addtask kernel_link_images after do_compile before do_strip
@@ -683,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
@@ -701,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/libc-common.bbclass b/meta/classes/libc-common.bbclass
deleted file mode 100644
index 0e351b6746..0000000000
--- a/meta/classes/libc-common.bbclass
+++ /dev/null
@@ -1,37 +0,0 @@
-do_install() {
- oe_runmake install_root=${D} install
- install -Dm 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ld.so.conf
- install -d ${D}${localedir}
- make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
- # get rid of some broken files...
- for i in ${GLIBC_BROKEN_LOCALES}; do
- sed -i "/$i/d" ${WORKDIR}/SUPPORTED
- done
- rm -f ${D}${sysconfdir}/rpc
- rm -rf ${D}${datadir}/zoneinfo
- rm -rf ${D}${libexecdir}/getconf
-}
-
-def get_libc_fpu_setting(bb, d):
- if d.getVar('TARGET_FPU') in [ 'soft', 'ppc-efd' ]:
- return "--without-fp"
- return ""
-
-python populate_packages_prepend () {
- if d.getVar('DEBIAN_NAMES'):
- pkgs = d.getVar('PACKAGES').split()
- bpn = d.getVar('BPN')
- prefix = d.getVar('MLPREFIX') or ""
- # Set the base package...
- d.setVar('PKG_' + prefix + bpn, prefix + 'libc6')
- libcprefix = prefix + bpn + '-'
- for p in pkgs:
- # And all the subpackages.
- if p.startswith(libcprefix):
- renamed = p.replace(bpn, 'libc6', 1)
- d.setVar('PKG_' + p, renamed)
- # For backward compatibility with old -dbg package
- d.appendVar('RPROVIDES_' + libcprefix + 'dbg', ' ' + prefix + 'libc-dbg')
- d.appendVar('RCONFLICTS_' + libcprefix + 'dbg', ' ' + prefix + 'libc-dbg')
- d.appendVar('RREPLACES_' + libcprefix + 'dbg', ' ' + prefix + 'libc-dbg')
-}
diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
index a66e540884..de3b4250c7 100644
--- a/meta/classes/libc-package.bbclass
+++ b/meta/classes/libc-package.bbclass
@@ -248,6 +248,7 @@ python package_do_split_gconvs () {
"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 ", \
@@ -346,14 +347,13 @@ python package_do_split_gconvs () {
if use_bin == "compile":
makefile = oe.path.join(d.getVar("WORKDIR"), "locale-tree", "Makefile")
- m = open(makefile, "w")
- m.write("all: %s\n\n" % " ".join(commands.keys()))
- total = len(commands)
- for i, cmd in enumerate(commands):
- m.write(cmd + ":\n")
- m.write("\t@echo 'Progress %d/%d'\n" % (i, total))
- m.write("\t" + commands[cmd] + "\n\n")
- m.close()
+ with open(makefile, "w") as m:
+ m.write("all: %s\n\n" % " ".join(commands.keys()))
+ total = len(commands)
+ for i, (maketarget, makerecipe) in enumerate(commands.items()):
+ m.write(maketarget + ":\n")
+ m.write("\t@echo 'Progress %d/%d'\n" % (i, total))
+ m.write("\t" + makerecipe + "\n\n")
d.setVar("EXTRA_OEMAKE", "-C %s ${PARALLEL_MAKE}" % (os.path.dirname(makefile)))
d.setVarFlag("oe_runmake", "progress", "outof:Progress\s(\d+)/(\d+)")
bb.note("Executing binary locale generation makefile")
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index adca881c85..f90176d6c0 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -252,7 +252,7 @@ def canonical_license(d, license):
"""
Return the canonical (SPDX) form of the license if available (so GPLv3
becomes GPL-3.0), for the license named 'X+', return canonical form of
- 'X' if availabel and the tailing '+' (so GPLv3+ becomes GPL-3.0+),
+ 'X' if available and the tailing '+' (so GPLv3+ becomes GPL-3.0+),
or the passed license if there is no canonical form.
"""
lic = d.getVarFlag('SPDXLICENSEMAP', license) or ""
@@ -262,10 +262,29 @@ def canonical_license(d, license):
lic += '+'
return lic or license
+def available_licenses(d):
+ """
+ Return the available licenses by searching the directories specified by
+ COMMON_LICENSE_DIR and LICENSE_PATH.
+ """
+ lic_dirs = ((d.getVar('COMMON_LICENSE_DIR') or '') + ' ' +
+ (d.getVar('LICENSE_PATH') or '')).split()
+
+ licenses = []
+ for lic_dir in lic_dirs:
+ licenses += os.listdir(lic_dir)
+
+ licenses = sorted(licenses)
+ return licenses
+
+# Only determine the list of all available licenses once. This assumes that any
+# additions to LICENSE_PATH have been done before this file is parsed.
+AVAILABLE_LICENSES := "${@' '.join(available_licenses(d))}"
+
def expand_wildcard_licenses(d, wildcard_licenses):
"""
- Return actual spdx format license names if wildcard used. We expand
- wildcards from SPDXLICENSEMAP flags and SRC_DISTRIBUTE_LICENSES values.
+ Return actual spdx format license names if wildcards are used. We expand
+ wildcards from SPDXLICENSEMAP flags and AVAILABLE_LICENSES.
"""
import fnmatch
licenses = wildcard_licenses[:]
@@ -274,7 +293,7 @@ def expand_wildcard_licenses(d, wildcard_licenses):
spdxflags = fnmatch.filter(spdxmapkeys, wld_lic)
licenses += [d.getVarFlag('SPDXLICENSEMAP', flag) for flag in spdxflags]
- spdx_lics = (d.getVar('SRC_DISTRIBUTE_LICENSES', False) or '').split()
+ spdx_lics = d.getVar('AVAILABLE_LICENSES').split()
for wld_lic in wildcard_licenses:
licenses += fnmatch.filter(spdx_lics, wld_lic)
@@ -287,6 +306,26 @@ def incompatible_license_contains(license, truevalue, falsevalue, d):
bad_licenses = expand_wildcard_licenses(d, bad_licenses)
return truevalue if license in bad_licenses else falsevalue
+def incompatible_pkg_license(d, dont_want_licenses, license):
+ # Handles an "or" or two license sets provided by
+ # flattened_licenses(), pick one that works if possible.
+ def choose_lic_set(a, b):
+ return a if all(oe.license.license_ok(canonical_license(d, lic),
+ dont_want_licenses) for lic in a) else b
+
+ try:
+ licenses = oe.license.flattened_licenses(license, choose_lic_set)
+ except oe.license.LicenseError as exc:
+ bb.fatal('%s: %s' % (d.getVar('P'), exc))
+
+ incompatible_lic = []
+ for l in licenses:
+ license = canonical_license(d, l)
+ if not oe.license.license_ok(license, dont_want_licenses):
+ incompatible_lic.append(license)
+
+ return sorted(incompatible_lic)
+
def incompatible_license(d, dont_want_licenses, package=None):
"""
This function checks if a recipe has only incompatible licenses. It also
@@ -298,18 +337,7 @@ def incompatible_license(d, dont_want_licenses, package=None):
if not license:
license = d.getVar('LICENSE')
- # Handles an "or" or two license sets provided by
- # flattened_licenses(), pick one that works if possible.
- def choose_lic_set(a, b):
- return a if all(oe.license.license_ok(canonical_license(d, lic),
- dont_want_licenses) for lic in a) else b
-
- try:
- licenses = oe.license.flattened_licenses(license, choose_lic_set)
- except oe.license.LicenseError as exc:
- bb.fatal('%s: %s' % (d.getVar('P'), exc))
- return any(not oe.license.license_ok(canonical_license(d, l), \
- dont_want_licenses) for l in licenses)
+ return incompatible_pkg_license(d, dont_want_licenses, license)
def check_license_flags(d):
"""
diff --git a/meta/classes/license_image.bbclass b/meta/classes/license_image.bbclass
index 3f102d0fbc..702e9f9c55 100644
--- a/meta/classes/license_image.bbclass
+++ b/meta/classes/license_image.bbclass
@@ -43,10 +43,17 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
bad_licenses = [canonical_license(d, l) for l in bad_licenses]
bad_licenses = expand_wildcard_licenses(d, bad_licenses)
+ whitelist = []
+ for lic in bad_licenses:
+ whitelist.extend((d.getVar("WHITELIST_" + lic) or "").split())
+
with open(license_manifest, "w") as license_file:
for pkg in sorted(pkg_dic):
- if bad_licenses:
+ if bad_licenses and pkg not in whitelist:
try:
+ licenses = incompatible_pkg_license(d, bad_licenses, pkg_dic[pkg]["LICENSE"])
+ if licenses:
+ bb.fatal("Package %s cannot be installed into the image because it has incompatible license(s): %s" %(pkg, ' '.join(licenses)))
(pkg_dic[pkg]["LICENSE"], pkg_dic[pkg]["LICENSES"]) = \
oe.license.manifest_licenses(pkg_dic[pkg]["LICENSE"],
bad_licenses, canonical_license, d)
@@ -56,6 +63,8 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
pkg_dic[pkg]["LICENSES"] = re.sub(r'[|&()*]', ' ', pkg_dic[pkg]["LICENSE"])
pkg_dic[pkg]["LICENSES"] = re.sub(r' *', ' ', pkg_dic[pkg]["LICENSES"])
pkg_dic[pkg]["LICENSES"] = pkg_dic[pkg]["LICENSES"].split()
+ if pkg in whitelist:
+ bb.warn("Including %s with an incompatible license %s into the image, because it has been whitelisted." %(pkg, pkg_dic[pkg]["LICENSE"]))
if not "IMAGE_MANIFEST" in pkg_dic[pkg]:
# Rootfs manifest
@@ -191,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 c0fbf26836..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
@@ -41,7 +47,7 @@ def get_glibc_loader(d):
elif re.search("i.86", targetarch):
dynamic_loader = "${base_libdir}/ld-linux.so.2"
elif targetarch == "arm":
- dynamic_loader = "${base_libdir}/ld-linux.so.3"
+ dynamic_loader = "${base_libdir}/ld-linux${@['-armhf', ''][d.getVar('TARGET_FPU') == 'soft']}.so.3"
elif targetarch.startswith("aarch64"):
dynamic_loader = "${base_libdir}/ld-linux-aarch64${ARMPKGSFX_ENDIAN_64}.so.1"
elif targetarch.startswith("riscv64"):
@@ -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/manpages.bbclass b/meta/classes/manpages.bbclass
index 50c254763e..1e66780646 100644
--- a/meta/classes/manpages.bbclass
+++ b/meta/classes/manpages.bbclass
@@ -18,8 +18,15 @@ pkg_postinst_append_${MAN_PKG} () {
if test -n "$D"; then
if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true','false', d)}; then
sed "s:\(\s\)/:\1$D/:g" $D${sysconfdir}/man_db.conf | ${@qemu_run_binary(d, '$D', '${bindir}/mandb')} -C - -u -q $D${mandir}
+ chown -R root:root $D${mandir}
mkdir -p $D${localstatedir}/cache/man
- mv $D${mandir}/index.db $D${localstatedir}/cache/man
+ cd $D${mandir}
+ find . -name index.db | while read index; do
+ mkdir -p $D${localstatedir}/cache/man/$(dirname ${index})
+ mv ${index} $D${localstatedir}/cache/man/${index}
+ chown man:man $D${localstatedir}/cache/man/${index}
+ done
+ cd -
else
$INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
fi
diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
index efa6234078..83aa854b7e 100644
--- a/meta/classes/meson.bbclass
+++ b/meta/classes/meson.bbclass
@@ -12,8 +12,9 @@ MESON_SOURCEPATH = "${S}"
def noprefix(var, d):
return d.getVar(var).replace(d.getVar('prefix') + '/', '', 1)
+MESON_BUILDTYPE ?= "plain"
MESONOPTS = " --prefix ${prefix} \
- --buildtype plain \
+ --buildtype ${MESON_BUILDTYPE} \
--bindir ${@noprefix('bindir', d)} \
--sbindir ${@noprefix('sbindir', d)} \
--datadir ${@noprefix('datadir', d)} \
@@ -24,7 +25,8 @@ MESONOPTS = " --prefix ${prefix} \
--infodir ${@noprefix('infodir', d)} \
--sysconfdir ${sysconfdir} \
--localstatedir ${localstatedir} \
- --sharedstatedir ${sharedstatedir} "
+ --sharedstatedir ${sharedstatedir} \
+ --wrap-mode nodownload"
EXTRA_OEMESON_append = " ${PACKAGECONFIG_CONFARGS}"
@@ -43,7 +45,7 @@ def meson_cpu_family(var, d):
arch = d.getVar(var)
if arch == 'powerpc':
return 'ppc'
- elif arch == 'powerpc64':
+ elif arch == 'powerpc64' or arch == 'powerpc64le':
return 'ppc64'
elif arch == 'armeb':
return 'arm'
@@ -55,11 +57,23 @@ def meson_cpu_family(var, d):
return 'mips64'
elif re.match(r"i[3-6]86", arch):
return "x86"
- elif arch == "microblazeel" or arch == "microblazeeb":
+ elif arch == "microblazeel":
return "microblaze"
else:
return arch
+# Map our OS values to what Meson expects:
+# https://mesonbuild.com/Reference-tables.html#operating-system-names
+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
+
def meson_endian(prefix, d):
arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
sitedata = siteinfo_data_for_machine(arch, os, d)
@@ -80,11 +94,11 @@ c = ${@meson_array('CC', d)}
cpp = ${@meson_array('CXX', d)}
ar = ${@meson_array('AR', d)}
nm = ${@meson_array('NM', d)}
-ld = ${@meson_array('LD', d)}
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
@@ -95,13 +109,13 @@ cpp_link_args = ${@meson_array('LDFLAGS', d)}
gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper'
[host_machine]
-system = '${HOST_OS}'
+system = '${@meson_operating_system('HOST_OS', d)}'
cpu_family = '${@meson_cpu_family('HOST_ARCH', d)}'
cpu = '${HOST_ARCH}'
endian = '${@meson_endian('HOST', d)}'
[target_machine]
-system = '${TARGET_OS}'
+system = '${@meson_operating_system('TARGET_OS', d)}'
cpu_family = '${@meson_cpu_family('TARGET_ARCH', d)}'
cpu = '${TARGET_ARCH}'
endian = '${@meson_endian('TARGET', d)}'
@@ -111,6 +125,10 @@ EOF
CONFIGURE_FILES = "meson.build"
meson_do_configure() {
+ # Meson requires this to be 'bfd, 'lld' or 'gold' from 0.53 onwards
+ # https://github.com/mesonbuild/meson/commit/ef9aeb188ea2bc7353e59916c18901cde90fa2b3
+ unset LD
+
# Work around "Meson fails if /tmp is mounted with noexec #2972"
mkdir -p "${B}/meson-private/tmp"
export TMPDIR="${B}/meson-private/tmp"
@@ -147,6 +165,16 @@ meson_do_configure_prepend_class-native() {
export PKG_CONFIG="pkg-config-native"
}
+python meson_do_qa_configure() {
+ import re
+ warn_re = re.compile(r"^WARNING: Cross property (.+) is using default value (.+)$", re.MULTILINE)
+ 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))
+}
+do_configure[postfuncs] += "meson_do_qa_configure"
+
do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
meson_do_compile() {
ninja -v ${PARALLEL_MAKE}
diff --git a/meta/classes/mime-xdg.bbclass b/meta/classes/mime-xdg.bbclass
new file mode 100644
index 0000000000..642a5b7595
--- /dev/null
+++ b/meta/classes/mime-xdg.bbclass
@@ -0,0 +1,74 @@
+#
+# This class creates mime <-> application associations based on entry
+# 'MimeType' in *.desktop files
+#
+
+DEPENDS += "desktop-file-utils"
+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 "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
+MIME_XDG_PACKAGES ?= ""
+
+mime_xdg_postinst() {
+if [ "x$D" != "x" ]; then
+ $INTERCEPT_DIR/postinst_intercept update_desktop_database ${PKG} \
+ mlprefix=${MLPREFIX} \
+ desktop_dir=${DESKTOPDIR}
+else
+ update-desktop-database $D${DESKTOPDIR}
+fi
+}
+
+mime_xdg_postrm() {
+if [ "x$D" != "x" ]; then
+ $INTERCEPT_DIR/postinst_intercept update_desktop_database ${PKG} \
+ mlprefix=${MLPREFIX} \
+ desktop_dir=${DESKTOPDIR}
+else
+ update-desktop-database $D${DESKTOPDIR}
+fi
+}
+
+python populate_packages_append () {
+ packages = d.getVar('PACKAGES').split()
+ pkgdest = d.getVar('PKGDEST')
+ desktop_base = d.getVar('DESKTOPDIR')
+ forced_mime_xdg_pkgs = (d.getVar('MIME_XDG_PACKAGES') or '').split()
+
+ for pkg in packages:
+ desktops_with_mime_found = pkg in forced_mime_xdg_pkgs
+ if d.getVar('MIME_XDG_PACKAGES') == '':
+ desktop_dir = '%s/%s%s' % (pkgdest, pkg, desktop_base)
+ if os.path.exists(desktop_dir):
+ for df in os.listdir(desktop_dir):
+ if df.endswith('.desktop'):
+ try:
+ with open(desktop_dir + '/'+ df, 'r') as f:
+ for line in f.read().split('\n'):
+ if 'MimeType' in line:
+ desktops_with_mime_found = True
+ break;
+ except:
+ bb.warn('Could not open %s. Set MIME_XDG_PACKAGES in recipe or add mime-xdg to INSANE_SKIP.' % desktop_dir + '/'+ df)
+ if desktops_with_mime_found:
+ break
+ if desktops_with_mime_found:
+ bb.note("adding mime-xdg postinst and postrm scripts to %s" % pkg)
+ postinst = d.getVar('pkg_postinst_%s' % pkg)
+ if not postinst:
+ postinst = '#!/bin/sh\n'
+ postinst += d.getVar('mime_xdg_postinst')
+ d.setVar('pkg_postinst_%s' % pkg, postinst)
+ postrm = d.getVar('pkg_postrm_%s' % pkg)
+ if not postrm:
+ postrm = '#!/bin/sh\n'
+ postrm += d.getVar('mime_xdg_postrm')
+ d.setVar('pkg_postrm_%s' % pkg, postrm)
+ bb.note("adding desktop-file-utils dependency to %s" % pkg)
+ d.appendVar('RDEPENDS_' + pkg, " " + d.getVar('MLPREFIX')+"desktop-file-utils")
+}
diff --git a/meta/classes/mime.bbclass b/meta/classes/mime.bbclass
index 6c7b868f79..bb99bc35cb 100644
--- a/meta/classes/mime.bbclass
+++ b/meta/classes/mime.bbclass
@@ -1,46 +1,58 @@
-DEPENDS += "shared-mime-info"
+#
+# This class is used by recipes installing mime types
+#
+
+DEPENDS += "${@bb.utils.contains('BPN', 'shared-mime-info', '', 'shared-mime-info', d)}"
PACKAGE_WRITE_DEPS += "shared-mime-info-native"
+MIMEDIR = "${datadir}/mime"
mime_postinst() {
-if [ "$1" = configure ]; then
- UPDATEMIMEDB=`which update-mime-database`
- if [ -x "$UPDATEMIMEDB" ] ; then
- echo "Updating MIME database... this may take a while."
- $UPDATEMIMEDB $D${datadir}/mime
- else
- echo "Missing update-mime-database, update of mime database failed!"
- exit 1
- fi
+if [ "x$D" != "x" ]; then
+ $INTERCEPT_DIR/postinst_intercept update_mime_database ${PKG} \
+ mlprefix=${MLPREFIX} \
+ mimedir=${MIMEDIR}
+else
+ echo "Updating MIME database... this may take a while."
+ update-mime-database $D${MIMEDIR}
fi
}
mime_postrm() {
-if [ "$1" = remove ] || [ "$1" = upgrade ]; then
- UPDATEMIMEDB=`which update-mime-database`
- if [ -x "$UPDATEMIMEDB" ] ; then
- echo "Updating MIME database... this may take a while."
- $UPDATEMIMEDB $D${datadir}/mime
+if [ "x$D" != "x" ]; then
+ $INTERCEPT_DIR/postinst_intercept update_mime_database ${PKG} \
+ mlprefix=${MLPREFIX} \
+ mimedir=${MIMEDIR}
+else
+ echo "Updating MIME database... this may take a while."
+ # $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
- echo "Missing update-mime-database, update of mime database failed!"
- exit 1
- fi
+ update-mime-database $D${MIMEDIR}
+fi
fi
}
python populate_packages_append () {
- import re
packages = d.getVar('PACKAGES').split()
pkgdest = d.getVar('PKGDEST')
+ mimedir = d.getVar('MIMEDIR')
for pkg in packages:
- mime_dir = '%s/%s/usr/share/mime/packages' % (pkgdest, pkg)
- mimes = []
- mime_re = re.compile(".*\.xml$")
- if os.path.exists(mime_dir):
- for f in os.listdir(mime_dir):
- if mime_re.match(f):
- mimes.append(f)
- if mimes:
+ mime_packages_dir = '%s/%s%s/packages' % (pkgdest, pkg, mimedir)
+ mimes_types_found = False
+ if os.path.exists(mime_packages_dir):
+ for f in os.listdir(mime_packages_dir):
+ if f.endswith('.xml'):
+ mimes_types_found = True
+ break
+ if mimes_types_found:
bb.note("adding mime postinst and postrm scripts to %s" % pkg)
postinst = d.getVar('pkg_postinst_%s' % pkg)
if not postinst:
@@ -52,6 +64,7 @@ python populate_packages_append () {
postrm = '#!/bin/sh\n'
postrm += d.getVar('mime_postrm')
d.setVar('pkg_postrm_%s' % pkg, postrm)
- bb.note("adding shared-mime-info-data dependency to %s" % pkg)
- d.appendVar('RDEPENDS_' + pkg, " " + d.getVar('MLPREFIX')+"shared-mime-info-data")
+ if pkg != 'shared-mime-info-data':
+ bb.note("adding shared-mime-info-data dependency to %s" % pkg)
+ d.appendVar('RDEPENDS_' + pkg, " " + d.getVar('MLPREFIX')+"shared-mime-info-data")
}
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index 1a9295d36f..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
@@ -184,11 +202,12 @@ python do_package_qa_multilib() {
for i in values:
if i.startswith('virtual/'):
i = i[len('virtual/'):]
- if (not i.startswith('kernel-module')) and (not i.startswith(mlprefix)) and \
- (not 'cross-canadian' in i) and (not i.startswith("nativesdk-")) and \
- (not i.startswith("rtld")) and (not i.startswith('kernel-vmlinux')) \
- and (not i.startswith("kernel-image")) and (not i.startswith("/")):
+
+ if (not (i.startswith(mlprefix) or i.startswith("kernel-") \
+ or ('cross-canadian' in i) or i.startswith("nativesdk-") \
+ or i.startswith("rtld") or i.startswith("/"))):
candidates.append(i)
+
if len(candidates) > 0:
msg = "%s package %s - suspicious values '%s' in %s" \
% (d.getVar('PN'), pkg, ' '.join(candidates), var)
diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index d5b6f6af8b..08106e345c 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -186,11 +186,11 @@ python do_addto_recipe_sysroot () {
bb.build.exec_func("extend_recipe_sysroot", d)
}
addtask addto_recipe_sysroot after do_populate_sysroot
+do_addto_recipe_sysroot[deptask] = "do_populate_sysroot"
inherit nopackages
do_packagedata[stamp-extra-info] = ""
-do_populate_sysroot[stamp-extra-info] = ""
USE_NLS = "no"
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
index 03135acedc..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
@@ -107,7 +108,6 @@ python () {
addhandler nativesdk_virtclass_handler
nativesdk_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise"
-do_populate_sysroot[stamp-extra-info] = ""
do_packagedata[stamp-extra-info] = ""
USE_NLS = "${SDKUSE_NLS}"
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/npm.bbclass b/meta/classes/npm.bbclass
index 4b1f0a39f0..068032a1e5 100644
--- a/meta/classes/npm.bbclass
+++ b/meta/classes/npm.bbclass
@@ -1,94 +1,307 @@
+# Copyright (C) 2020 Savoir-Faire Linux
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# This bbclass builds and installs an npm package to the target. The package
+# sources files should be fetched in the calling recipe by using the SRC_URI
+# variable. The ${S} variable should be updated depending of your fetcher.
+#
+# Usage:
+# SRC_URI = "..."
+# inherit npm
+#
+# Optional variables:
+# NPM_ARCH:
+# Override the auto generated npm architecture.
+#
+# NPM_INSTALL_DEV:
+# Set to 1 to also install devDependencies.
+
DEPENDS_prepend = "nodejs-native "
RDEPENDS_${PN}_prepend = "nodejs "
-S = "${WORKDIR}/npmpkg"
-def node_pkgname(d):
- bpn = d.getVar('BPN')
- if bpn.startswith("node-"):
- return bpn[5:]
- return bpn
+NPM_INSTALL_DEV ?= "0"
+
+def npm_target_arch_map(target_arch):
+ """Maps arch names to npm arch names"""
+ import re
+ if re.match("p(pc|owerpc)(|64)", target_arch):
+ return "ppc"
+ elif re.match("i.86$", target_arch):
+ return "ia32"
+ elif re.match("x86_64$", target_arch):
+ return "x64"
+ elif re.match("arm64$", target_arch):
+ return "arm"
+ return target_arch
+
+NPM_ARCH ?= "${@npm_target_arch_map(d.getVar("TARGET_ARCH"))}"
+
+NPM_PACKAGE = "${WORKDIR}/npm-package"
+NPM_CACHE = "${WORKDIR}/npm-cache"
+NPM_BUILD = "${WORKDIR}/npm-build"
-NPMPN ?= "${@node_pkgname(d)}"
+def npm_global_configs(d):
+ """Get the npm global configuration"""
+ configs = []
+ # Ensure no network access is done
+ configs.append(("offline", "true"))
+ configs.append(("proxy", "http://invalid"))
+ # Configure the cache directory
+ configs.append(("cache", d.getVar("NPM_CACHE")))
+ return configs
-NPM_INSTALLDIR = "${libdir}/node_modules/${NPMPN}"
+def npm_pack(env, srcdir, workdir):
+ """Run 'npm pack' on a specified directory"""
+ import shlex
+ cmd = "npm pack %s" % shlex.quote(srcdir)
+ configs = [("ignore-scripts", "true")]
+ tarball = env.run(cmd, configs=configs, workdir=workdir).strip("\n")
+ return os.path.join(workdir, tarball)
-# function maps arch names to npm arch names
-def npm_oe_arch_map(target_arch, d):
+python npm_do_configure() {
+ """
+ Step one: configure the npm cache and the main npm package
+
+ Every dependencies have been fetched and patched in the source directory.
+ They have to be packed (this remove unneeded files) and added to the npm
+ cache to be available for the next step.
+
+ The main package and its associated manifest file and shrinkwrap file have
+ to be configured to take into account these cached dependencies.
+ """
+ import base64
+ import copy
+ import json
import re
- if re.match('p(pc|owerpc)(|64)', target_arch): return 'ppc'
- elif re.match('i.86$', target_arch): return 'ia32'
- elif re.match('x86_64$', target_arch): return 'x64'
- elif re.match('arm64$', target_arch): return 'arm'
- return target_arch
+ import shlex
+ import tempfile
+ from bb.fetch2.npm import NpmEnvironment
+ from bb.fetch2.npm import npm_unpack
+ from bb.fetch2.npmsw import foreach_dependencies
+ from bb.progress import OutOfProgressHandler
-NPM_ARCH ?= "${@npm_oe_arch_map(d.getVar('TARGET_ARCH'), d)}"
-NPM_INSTALL_DEV ?= "0"
+ bb.utils.remove(d.getVar("NPM_CACHE"), recurse=True)
+ bb.utils.remove(d.getVar("NPM_PACKAGE"), recurse=True)
+
+ env = NpmEnvironment(d, configs=npm_global_configs(d))
+
+ def _npm_cache_add(tarball):
+ """Run 'npm cache add' for a specified tarball"""
+ cmd = "npm cache add %s" % shlex.quote(tarball)
+ env.run(cmd)
+
+ def _npm_integrity(tarball):
+ """Return the npm integrity of a specified tarball"""
+ sha512 = bb.utils.sha512_file(tarball)
+ return "sha512-" + base64.b64encode(bytes.fromhex(sha512)).decode()
+
+ def _npm_version(tarball):
+ """Return the version of a specified tarball"""
+ regex = r"-(\d+\.\d+\.\d+(-.*)?(\+.*)?)\.tgz"
+ return re.search(regex, tarball).group(1)
+
+ def _npmsw_dependency_dict(orig, deptree):
+ """
+ Return the sub dictionary in the 'orig' dictionary corresponding to the
+ 'deptree' dependency tree. This function follows the shrinkwrap file
+ format.
+ """
+ ptr = orig
+ for dep in deptree:
+ if "dependencies" not in ptr:
+ ptr["dependencies"] = {}
+ ptr = ptr["dependencies"]
+ if dep not in ptr:
+ ptr[dep] = {}
+ ptr = ptr[dep]
+ return ptr
+
+ # Manage the manifest file and shrinkwrap files
+ orig_manifest_file = d.expand("${S}/package.json")
+ orig_shrinkwrap_file = d.expand("${S}/npm-shrinkwrap.json")
+ cached_manifest_file = d.expand("${NPM_PACKAGE}/package.json")
+ cached_shrinkwrap_file = d.expand("${NPM_PACKAGE}/npm-shrinkwrap.json")
+
+ with open(orig_manifest_file, "r") as f:
+ orig_manifest = json.load(f)
+
+ cached_manifest = copy.deepcopy(orig_manifest)
+ cached_manifest.pop("dependencies", None)
+ cached_manifest.pop("devDependencies", None)
+
+ with open(orig_shrinkwrap_file, "r") as f:
+ orig_shrinkwrap = json.load(f)
+
+ cached_shrinkwrap = copy.deepcopy(orig_shrinkwrap)
+ cached_shrinkwrap.pop("dependencies", None)
+
+ # Manage the dependencies
+ progress = OutOfProgressHandler(d, r"^(\d+)/(\d+)$")
+ progress_total = 1 # also count the main package
+ progress_done = 0
+
+ def _count_dependency(name, params, deptree):
+ nonlocal progress_total
+ progress_total += 1
+
+ def _cache_dependency(name, params, deptree):
+ destsubdirs = [os.path.join("node_modules", dep) for dep in deptree]
+ destsuffix = os.path.join(*destsubdirs)
+ with tempfile.TemporaryDirectory() as tmpdir:
+ # Add the dependency to the npm cache
+ destdir = os.path.join(d.getVar("S"), destsuffix)
+ tarball = npm_pack(env, destdir, tmpdir)
+ _npm_cache_add(tarball)
+ # Add its signature to the cached shrinkwrap
+ dep = _npmsw_dependency_dict(cached_shrinkwrap, deptree)
+ dep["version"] = _npm_version(tarball)
+ dep["integrity"] = _npm_integrity(tarball)
+ if params.get("dev", False):
+ dep["dev"] = True
+ # Display progress
+ nonlocal progress_done
+ progress_done += 1
+ progress.write("%d/%d" % (progress_done, progress_total))
+
+ dev = bb.utils.to_boolean(d.getVar("NPM_INSTALL_DEV"), False)
+ foreach_dependencies(orig_shrinkwrap, _count_dependency, dev)
+ foreach_dependencies(orig_shrinkwrap, _cache_dependency, dev)
+
+ # Configure the main package
+ with tempfile.TemporaryDirectory() as tmpdir:
+ tarball = npm_pack(env, d.getVar("S"), tmpdir)
+ npm_unpack(tarball, d.getVar("NPM_PACKAGE"), d)
+
+ # Configure the cached manifest file and cached shrinkwrap file
+ def _update_manifest(depkey):
+ for name in orig_manifest.get(depkey, {}):
+ version = cached_shrinkwrap["dependencies"][name]["version"]
+ if depkey not in cached_manifest:
+ cached_manifest[depkey] = {}
+ cached_manifest[depkey][name] = version
-npm_do_compile() {
- # Copy in any additionally fetched modules
- if [ -d ${WORKDIR}/node_modules ] ; then
- cp -a ${WORKDIR}/node_modules ${S}/
- fi
- # changing the home directory to the working directory, the .npmrc will
- # be created in this directory
- export HOME=${WORKDIR}
- if [ "${NPM_INSTALL_DEV}" = "1" ]; then
- npm config set dev true
- else
- npm config set dev false
- fi
- npm set cache ${WORKDIR}/npm_cache
- # clear cache before every build
- npm cache clear --force
- # Install pkg into ${S} without going to the registry
- if [ "${NPM_INSTALL_DEV}" = "1" ]; then
- npm --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --no-registry install
- else
- npm --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry install
- fi
+ _update_manifest("dependencies")
+
+ if dev:
+ _update_manifest("devDependencies")
+
+ with open(cached_manifest_file, "w") as f:
+ json.dump(cached_manifest, f, indent=2)
+
+ with open(cached_shrinkwrap_file, "w") as f:
+ json.dump(cached_shrinkwrap, f, indent=2)
}
-npm_do_install() {
- # changing the home directory to the working directory, the .npmrc will
- # be created in this directory
- export HOME=${WORKDIR}
- mkdir -p ${D}${libdir}/node_modules
- local NPM_PACKFILE=$(npm pack .)
- npm install --prefix ${D}${prefix} -g --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry ${NPM_PACKFILE}
- ln -fs node_modules ${D}${libdir}/node
- find ${D}${NPM_INSTALLDIR} -type f \( -name "*.a" -o -name "*.d" -o -name "*.o" \) -delete
- if [ -d ${D}${prefix}/etc ] ; then
- # This will be empty
- rmdir ${D}${prefix}/etc
- fi
+python npm_do_compile() {
+ """
+ Step two: install the npm package
+
+ Use the configured main package and the cached dependencies to run the
+ installation process. The installation is done in a directory which is
+ not the destination directory yet.
+
+ A combination of 'npm pack' and 'npm install' is used to ensure that the
+ installed files are actual copies instead of symbolic links (which is the
+ default npm behavior).
+ """
+ import shlex
+ import tempfile
+ from bb.fetch2.npm import NpmEnvironment
+
+ bb.utils.remove(d.getVar("NPM_BUILD"), recurse=True)
+
+ env = NpmEnvironment(d, configs=npm_global_configs(d))
+
+ dev = bb.utils.to_boolean(d.getVar("NPM_INSTALL_DEV"), False)
+
+ with tempfile.TemporaryDirectory() as tmpdir:
+ args = []
+ configs = []
+
+ if dev:
+ configs.append(("also", "development"))
+ else:
+ configs.append(("only", "production"))
+
+ # Report as many logs as possible for debugging purpose
+ configs.append(("loglevel", "silly"))
+
+ # Configure the installation to be done globally in the build directory
+ configs.append(("global", "true"))
+ configs.append(("prefix", d.getVar("NPM_BUILD")))
+
+ # Add node-gyp configuration
+ configs.append(("arch", d.getVar("NPM_ARCH")))
+ configs.append(("release", "true"))
+ sysroot = d.getVar("RECIPE_SYSROOT_NATIVE")
+ nodedir = os.path.join(sysroot, d.getVar("prefix_native").strip("/"))
+ configs.append(("nodedir", nodedir))
+ bindir = os.path.join(sysroot, d.getVar("bindir_native").strip("/"))
+ pythondir = os.path.join(bindir, "python-native", "python")
+ configs.append(("python", pythondir))
+
+ # Add node-pre-gyp configuration
+ args.append(("target_arch", d.getVar("NPM_ARCH")))
+ args.append(("build-from-source", "true"))
+
+ # Pack and install the main package
+ tarball = npm_pack(env, d.getVar("NPM_PACKAGE"), tmpdir)
+ env.run("npm install %s" % shlex.quote(tarball), args=args, configs=configs)
}
-python populate_packages_prepend () {
- instdir = d.expand('${D}${NPM_INSTALLDIR}')
- extrapackages = oe.package.npm_split_package_dirs(instdir)
- pkgnames = extrapackages.keys()
- d.prependVar('PACKAGES', '%s ' % ' '.join(pkgnames))
- for pkgname in pkgnames:
- pkgrelpath, pdata = extrapackages[pkgname]
- pkgpath = '${NPM_INSTALLDIR}/' + pkgrelpath
- # package names can't have underscores but npm packages sometimes use them
- oe_pkg_name = pkgname.replace('_', '-')
- expanded_pkgname = d.expand(oe_pkg_name)
- d.setVar('FILES_%s' % expanded_pkgname, pkgpath)
- if pdata:
- version = pdata.get('version', None)
- if version:
- d.setVar('PKGV_%s' % expanded_pkgname, version)
- description = pdata.get('description', None)
- if description:
- d.setVar('SUMMARY_%s' % expanded_pkgname, description.replace(u"\u2018", "'").replace(u"\u2019", "'"))
- d.appendVar('RDEPENDS_%s' % d.getVar('PN'), ' %s' % ' '.join(pkgnames).replace('_', '-'))
+npm_do_install() {
+ # Step three: final install
+ #
+ # The previous installation have to be filtered to remove some extra files.
+
+ rm -rf ${D}
+
+ # Copy the entire lib and bin directories
+ install -d ${D}/${nonarch_libdir}
+ cp --no-preserve=ownership --recursive ${NPM_BUILD}/lib/. ${D}/${nonarch_libdir}
+
+ if [ -d "${NPM_BUILD}/bin" ]
+ then
+ install -d ${D}/${bindir}
+ cp --no-preserve=ownership --recursive ${NPM_BUILD}/bin/. ${D}/${bindir}
+ fi
+
+ # If the package (or its dependencies) uses node-gyp to build native addons,
+ # object files, static libraries or other temporary files can be hidden in
+ # the lib directory. To reduce the package size and to avoid QA issues
+ # (staticdev with static library files) these files must be removed.
+ local GYP_REGEX=".*/build/Release/[^/]*.node"
+
+ # Remove any node-gyp directory in ${D} to remove temporary build files
+ for GYP_D_FILE in $(find ${D} -regex "${GYP_REGEX}")
+ do
+ local GYP_D_DIR=${GYP_D_FILE%/Release/*}
+
+ rm --recursive --force ${GYP_D_DIR}
+ done
+
+ # Copy only the node-gyp release files
+ for GYP_B_FILE in $(find ${NPM_BUILD} -regex "${GYP_REGEX}")
+ do
+ local GYP_D_FILE=${D}/${prefix}/${GYP_B_FILE#${NPM_BUILD}}
+
+ install -d ${GYP_D_FILE%/*}
+ install -m 755 ${GYP_B_FILE} ${GYP_D_FILE}
+ done
+
+ # Remove the shrinkwrap file which does not need to be packed
+ rm -f ${D}/${nonarch_libdir}/node_modules/*/npm-shrinkwrap.json
+ rm -f ${D}/${nonarch_libdir}/node_modules/@*/*/npm-shrinkwrap.json
+
+ # node(1) is using /usr/lib/node as default include directory and npm(1) is
+ # using /usr/lib/node_modules as install directory. Let's make both happy.
+ ln -fs node_modules ${D}/${nonarch_libdir}/node
}
FILES_${PN} += " \
${bindir} \
- ${libdir}/node \
- ${NPM_INSTALLDIR} \
+ ${nonarch_libdir} \
"
-EXPORT_FUNCTIONS do_compile do_install
+EXPORT_FUNCTIONS do_configure do_compile do_install
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index d8bef3afb0..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
@@ -416,6 +418,126 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir,
return (file, sources)
+def splitstaticdebuginfo(file, dvar, debugstaticdir, debugstaticlibdir, debugstaticappend, debugsrcdir, d):
+ # Unlike the function above, there is no way to split a static library
+ # two components. So to get similar results we will copy the unmodified
+ # static library (containing the debug symbols) into a new directory.
+ # We will then strip (preserving symbols) the static library in the
+ # typical location.
+ #
+ # return a mapping of files:debugsources
+
+ import stat
+ import shutil
+
+ src = file[len(dvar):]
+ dest = debugstaticlibdir + os.path.dirname(src) + debugstaticdir + "/" + os.path.basename(src) + debugstaticappend
+ debugfile = dvar + dest
+ sources = []
+
+ # Copy the file...
+ bb.utils.mkdirhier(os.path.dirname(debugfile))
+ #bb.note("Copy %s -> %s" % (file, debugfile))
+
+ dvar = d.getVar('PKGD')
+
+ newmode = None
+ if not os.access(file, os.W_OK) or os.access(file, os.R_OK):
+ origmode = os.stat(file)[stat.ST_MODE]
+ newmode = origmode | stat.S_IWRITE | stat.S_IREAD
+ os.chmod(file, newmode)
+
+ # We need to extract the debug src information here...
+ if debugsrcdir:
+ sources = source_info(file, d)
+
+ bb.utils.mkdirhier(os.path.dirname(debugfile))
+
+ # Copy the unmodified item to the debug directory
+ shutil.copy2(file, debugfile)
+
+ if newmode:
+ os.chmod(file, origmode)
+
+ 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.
@@ -492,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)
@@ -503,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
@@ -523,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))
@@ -532,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')
@@ -549,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
@@ -575,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:
@@ -585,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() {
@@ -826,8 +989,9 @@ python fixup_perms () {
# Now we actually load from the configuration files
for conf in get_fs_perms_list(d).split():
- if os.path.exists(conf):
- f = open(conf)
+ if not os.path.exists(conf):
+ continue
+ with open(conf) as f:
for line in f:
if line.startswith('#'):
continue
@@ -848,7 +1012,6 @@ python fixup_perms () {
fs_perms_table[entry.path] = entry
if entry.path in fs_link_table:
fs_link_table.pop(entry.path)
- f.close()
# Debug -- list out in-memory table
#for dir in fs_perms_table:
@@ -907,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)
@@ -916,25 +1079,37 @@ python split_and_strip_files () {
if d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-file-directory':
# Single debug-file-directory style debug info
debugappend = ".debug"
+ debugstaticappend = ""
debugdir = ""
+ debugstaticdir = ""
debuglibdir = "/usr/lib/debug"
+ debugstaticlibdir = "/usr/lib/debug-static"
debugsrcdir = "/usr/src/debug"
elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-without-src':
# Original OE-core, a.k.a. ".debug", style debug info, but without sources in /usr/src/debug
debugappend = ""
+ debugstaticappend = ""
debugdir = "/.debug"
+ debugstaticdir = "/.debug-static"
debuglibdir = ""
+ debugstaticlibdir = ""
debugsrcdir = ""
elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg':
debugappend = ""
+ debugstaticappend = ""
debugdir = "/.debug"
+ debugstaticdir = "/.debug-static"
debuglibdir = ""
+ debugstaticlibdir = ""
debugsrcdir = "/usr/src/debug"
else:
# Original OE-core, a.k.a. ".debug", style debug info
debugappend = ""
+ debugstaticappend = ""
debugdir = "/.debug"
+ debugstaticdir = "/.debug-static"
debuglibdir = ""
+ debugstaticlibdir = ""
debugsrcdir = "/usr/src/debug"
#
@@ -955,12 +1130,6 @@ python split_and_strip_files () {
for root, dirs, files in cpath.walk(dvar):
for f in files:
file = os.path.join(root, f)
- if file.endswith(".ko") and file.find("/lib/modules/") != -1:
- kernmods.append(file)
- continue
- if oe.package.is_static_lib(file):
- staticlibs.append(file)
- continue
# Skip debug files
if debugappend and file.endswith(debugappend):
@@ -971,6 +1140,13 @@ python split_and_strip_files () {
if file in skipfiles:
continue
+ if file.endswith(".ko") and file.find("/lib/modules/") != -1:
+ kernmods.append(file)
+ continue
+ if oe.package.is_static_lib(file):
+ staticlibs.append(file)
+ continue
+
try:
ltarget = cpath.realpath(file, dvar, False)
s = cpath.lstat(ltarget)
@@ -1049,9 +1225,12 @@ 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"):
- for file in staticlibs:
- results.extend(source_info(file, d, fatal=False))
+ 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:
+ for file in staticlibs:
+ results.append( (file,source_info(file, d)) )
sources = set()
for r in results:
@@ -1120,9 +1299,17 @@ python split_and_strip_files () {
sfiles.append((file, elf_file, strip))
for f in kernmods:
sfiles.append((f, 16, strip))
+ if (d.getVar('PACKAGE_STRIP_STATIC') == '1' or d.getVar('PACKAGE_DEBUG_STATIC_SPLIT') == '1'):
+ for f in staticlibs:
+ sfiles.append((f, 16, strip))
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
#
@@ -1187,7 +1374,7 @@ python populate_packages () {
dir = os.sep
for f in (files + dirs):
path = "." + os.path.join(dir, f)
- if "/.debug/" in path or path.endswith("/.debug"):
+ if "/.debug/" in path or "/.debug-static/" in path or path.endswith("/.debug"):
debug.append(path)
for pkg in packages:
@@ -1263,8 +1450,9 @@ python populate_packages () {
# Handle LICENSE_EXCLUSION
package_list = []
for pkg in packages:
- if d.getVar('LICENSE_EXCLUSION-' + pkg):
- msg = "%s has an incompatible license. Excluding from packaging." % pkg
+ licenses = d.getVar('LICENSE_EXCLUSION-' + pkg)
+ if licenses:
+ msg = "Excluding %s from packaging as it has incompatible license(s): %s" % (pkg, licenses)
package_qa_handle_error("incompatible-license", msg, d)
else:
package_list.append(pkg)
@@ -1351,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
@@ -1424,10 +1612,9 @@ fi
pkgdest = d.getVar('PKGDEST')
pkgdatadir = d.getVar('PKGDESTWORK')
- data_file = pkgdatadir + d.expand("/${PN}" )
- f = open(data_file, 'w')
- f.write("PACKAGES: %s\n" % packages)
- f.close()
+ data_file = pkgdatadir + d.expand("/${PN}")
+ with open(data_file, 'w') as fd:
+ fd.write("PACKAGES: %s\n" % packages)
pn = d.getVar('PN')
global_variants = (d.getVar('MULTILIB_GLOBAL_VARIANTS') or "").split()
@@ -1482,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)
@@ -1605,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')
@@ -1732,8 +1919,6 @@ python package_do_shlibs() {
else:
snap_symlinks = False
- use_ldconfig = bb.utils.contains('DISTRO_FEATURES', 'ldconfig', True, False, d)
-
needed = {}
shlib_provider = oe.package.read_shlib_providers(d)
@@ -1758,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)
@@ -1778,22 +1963,21 @@ python package_do_shlibs() {
bb.note("Renaming %s to %s" % (old, new))
os.rename(old, new)
pkgfiles[pkg].remove(old)
-
+
shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
if len(sonames):
- fd = open(shlibs_file, 'w')
- for s in 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:
- bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver))
- bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0]))
- fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n')
- if s[0] not in shlib_provider:
- shlib_provider[s[0]] = {}
- shlib_provider[s[0]][s[1]] = (pkg, pkgver)
- fd.close()
- if needs_ldconfig and use_ldconfig:
+ with open(shlibs_file, 'w') as fd:
+ 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:
+ bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver))
+ bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0]))
+ fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n')
+ if s[0] not in shlib_provider:
+ shlib_provider[s[0]] = {}
+ shlib_provider[s[0]][s[1]] = (pkg, pkgver)
+ if needs_ldconfig:
bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg)
postinst = d.getVar('pkg_postinst_%s' % pkg)
if not postinst:
@@ -1864,11 +2048,10 @@ python package_do_shlibs() {
deps_file = os.path.join(pkgdest, pkg + ".shlibdeps")
if os.path.exists(deps_file):
os.remove(deps_file)
- if len(deps):
- fd = open(deps_file, 'w')
- for dep in sorted(deps):
- fd.write(dep + '\n')
- fd.close()
+ if deps:
+ with open(deps_file, 'w') as fd:
+ for dep in sorted(deps):
+ fd.write(dep + '\n')
}
python package_do_pkgconfig () {
@@ -1898,9 +2081,8 @@ python package_do_pkgconfig () {
pkgconfig_provided[pkg].append(name)
if not os.access(file, os.R_OK):
continue
- f = open(file, 'r')
- lines = f.readlines()
- f.close()
+ with open(file, 'r') as f:
+ lines = f.readlines()
for l in lines:
m = var_re.match(l)
if m:
@@ -1918,10 +2100,9 @@ python package_do_pkgconfig () {
for pkg in packages.split():
pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")
if pkgconfig_provided[pkg] != []:
- f = open(pkgs_file, 'w')
- for p in pkgconfig_provided[pkg]:
- f.write('%s\n' % p)
- f.close()
+ with open(pkgs_file, 'w') as f:
+ for p in pkgconfig_provided[pkg]:
+ f.write('%s\n' % p)
# Go from least to most specific since the last one found wins
for dir in reversed(shlibs_dirs):
@@ -1931,9 +2112,8 @@ python package_do_pkgconfig () {
m = re.match(r'^(.*)\.pclist$', file)
if m:
pkg = m.group(1)
- fd = open(os.path.join(dir, file))
- lines = fd.readlines()
- fd.close()
+ with open(os.path.join(dir, file)) as fd:
+ lines = fd.readlines()
pkgconfig_provided[pkg] = []
for l in lines:
pkgconfig_provided[pkg].append(l.rstrip())
@@ -1951,10 +2131,9 @@ python package_do_pkgconfig () {
bb.note("couldn't find pkgconfig module '%s' in any package" % n)
deps_file = os.path.join(pkgdest, pkg + ".pcdeps")
if len(deps):
- fd = open(deps_file, 'w')
- for dep in deps:
- fd.write(dep + '\n')
- fd.close()
+ with open(deps_file, 'w') as fd:
+ for dep in deps:
+ fd.write(dep + '\n')
}
def read_libdep_files(d):
@@ -1965,9 +2144,8 @@ def read_libdep_files(d):
for extension in ".shlibdeps", ".pcdeps", ".clilibdeps":
depsfile = d.expand("${PKGDEST}/" + pkg + extension)
if os.access(depsfile, os.R_OK):
- fd = open(depsfile)
- lines = fd.readlines()
- fd.close()
+ with open(depsfile) as fd:
+ lines = fd.readlines()
for l in lines:
l.rstrip()
deps = bb.utils.explode_dep_versions2(l)
@@ -2116,12 +2294,14 @@ 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):
+def gen_packagevar(d, pkgvars="PACKAGEVARS"):
ret = []
pkgs = (d.getVar("PACKAGES") or "").split()
- vars = (d.getVar("PACKAGEVARS") or "").split()
+ vars = (d.getVar(pkgvars) or "").split()
+ for v in vars:
+ ret.append(v)
for p in pkgs:
for v in vars:
ret.append(v + "_" + p)
@@ -2186,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
@@ -2258,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 9f9da2f91d..79cb36c513 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -45,6 +45,7 @@ def ipk_write_pkg(pkg, d):
import subprocess
import textwrap
import collections
+ import glob
def cleanupcontrol(root):
for p in ['CONTROL', 'DEBIAN']:
@@ -101,8 +102,7 @@ def ipk_write_pkg(pkg, d):
bb.utils.mkdirhier(pkgoutdir)
os.chdir(root)
cleanupcontrol(root)
- from glob import glob
- g = glob('*')
+ g = glob.glob('*')
if not g and localdata.getVar('ALLOW_EMPTY', False) != "1":
bb.note("Not creating empty archive for %s-%s-%s" % (pkg, localdata.getVar('PKGV'), localdata.getVar('PKGR')))
return
@@ -154,7 +154,6 @@ def ipk_write_pkg(pkg, d):
ctrlfile.write('%s\n' % textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' '))
else:
ctrlfile.write(c % tuple(pullData(fs, localdata)))
- # more fields
custom_fields_chunk = get_package_additional_metadata("ipk", localdata)
if custom_fields_chunk is not None:
@@ -238,6 +237,10 @@ def ipk_write_pkg(pkg, d):
cleanupcontrol(root)
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 PACKAGE_ADD_METADATA_IPK"
+ipk_write_pkg[vardeps] += "${@gen_packagevar(d, 'IPKEXTRAVARS')}"
+
# Otherwise allarch packages may change depending on override configuration
ipk_write_pkg[vardepsexclude] = "OVERRIDES"
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/patch.bbclass b/meta/classes/patch.bbclass
index cd241f1c84..25ec089ae1 100644
--- a/meta/classes/patch.bbclass
+++ b/meta/classes/patch.bbclass
@@ -5,6 +5,13 @@ QUILTRCFILE ?= "${STAGING_ETCDIR_NATIVE}/quiltrc"
PATCHDEPENDENCY = "${PATCHTOOL}-native:do_populate_sysroot"
+# There is a bug in patch 2.7.3 and earlier where index lines
+# in patches can change file modes when they shouldn't:
+# http://git.savannah.gnu.org/cgit/patch.git/patch/?id=82b800c9552a088a241457948219d25ce0a407a4
+# This leaks into debug sources in particular. Add the dependency
+# to target recipes to avoid this problem until we can rely on 2.7.4 or later.
+PATCHDEPENDENCY_append_class-target = " patch-replacement-native:do_populate_sysroot"
+
PATCH_GIT_USER_NAME ?= "OpenEmbedded"
PATCH_GIT_USER_EMAIL ?= "oe.patch@oe"
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index d03465b6fc..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
@@ -21,6 +21,7 @@ def complementary_globs(featurevar, d):
SDKIMAGE_FEATURES ??= "dev-pkgs dbg-pkgs src-pkgs ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'doc-pkgs', '', d)}"
SDKIMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("SDKIMAGE_FEATURES", d)}'
+SDKIMAGE_INSTALL_COMPLEMENTARY[vardeps] += "SDKIMAGE_FEATURES"
PACKAGE_ARCHS_append_task-populate-sdk = " sdk-provides-dummy-target"
SDK_PACKAGE_ARCHS += "sdk-provides-dummy-${SDKPKGSUFFIX}"
@@ -48,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 () {
@@ -55,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}"
@@ -175,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}/
@@ -182,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 9fda1c9e78..6f35b612c2 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -21,6 +21,7 @@ SDK_EXT_TYPE ?= "full"
SDK_INCLUDE_PKGDATA ?= "0"
SDK_INCLUDE_TOOLCHAIN ?= "${@'1' if d.getVar('SDK_EXT_TYPE') == 'full' else '0'}"
SDK_INCLUDE_NATIVESDK ?= "0"
+SDK_INCLUDE_BUILDTOOLS ?= '1'
SDK_RECRDEP_TASKS ?= ""
@@ -94,6 +95,7 @@ python write_target_sdk_ext_manifest () {
real_target_multimach = d.getVar('REAL_MULTIMACH_TARGET_SYS')
pkgs = {}
+ os.makedirs(os.path.dirname(d.getVar('SDK_EXT_TARGET_MANIFEST')), exist_ok=True)
with open(d.getVar('SDK_EXT_TARGET_MANIFEST'), 'w') as f:
for fn in extra_info['filesizes']:
info = fn.split(':')
@@ -122,7 +124,7 @@ SDK_TITLE_task-populate-sdk-ext = "${@d.getVar('DISTRO_NAME') or d.getVar('DISTR
def clean_esdk_builddir(d, sdkbasepath):
"""Clean up traces of the fake build for create_filtered_tasklist()"""
import shutil
- cleanpaths = 'cache conf/sanity_info tmp'.split()
+ cleanpaths = ['cache', 'tmp']
for pth in cleanpaths:
fullpth = os.path.join(sdkbasepath, pth)
if os.path.isdir(fullpth):
@@ -177,7 +179,9 @@ def create_filtered_tasklist(d, sdkbasepath, tasklistfile, conf_initpath):
# will effectively do
clean_esdk_builddir(d, sdkbasepath)
finally:
- os.replace(sdkbasepath + '/conf/local.conf.bak', sdkbasepath + '/conf/local.conf')
+ localconf = sdkbasepath + '/conf/local.conf'
+ if os.path.exists(localconf + '.bak'):
+ os.replace(localconf + '.bak', localconf)
python copy_buildsystem () {
import re
@@ -306,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:
@@ -384,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
@@ -513,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)))
}
@@ -535,8 +550,12 @@ def get_sdk_required_utilities(buildtools_fn, d):
sanity_required_utilities = (d.getVar('SANITY_REQUIRED_UTILITIES') or '').split()
sanity_required_utilities.append(d.expand('${BUILD_PREFIX}gcc'))
sanity_required_utilities.append(d.expand('${BUILD_PREFIX}g++'))
- buildtools_installer = os.path.join(d.getVar('SDK_DEPLOY'), buildtools_fn)
- filelist, _ = bb.process.run('%s -l' % buildtools_installer)
+ if buildtools_fn:
+ buildtools_installer = os.path.join(d.getVar('SDK_DEPLOY'), buildtools_fn)
+ filelist, _ = bb.process.run('%s -l' % buildtools_installer)
+ else:
+ buildtools_installer = None
+ filelist = ""
localdata = bb.data.createCopy(d)
localdata.setVar('SDKPATH', '.')
sdkpathnative = localdata.getVar('SDKPATHNATIVE')
@@ -579,7 +598,9 @@ install_tools() {
touch ${SDK_OUTPUT}/${SDKPATH}/.devtoolbase
# find latest buildtools-tarball and install it
- install ${SDK_DEPLOY}/${SDK_BUILDTOOLS_INSTALLER} ${SDK_OUTPUT}/${SDKPATH}
+ if [ -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then
+ install ${SDK_DEPLOY}/${SDK_BUILDTOOLS_INSTALLER} ${SDK_OUTPUT}/${SDKPATH}
+ fi
install -m 0644 ${COREBASE}/meta/files/ext-sdk-prepare.py ${SDK_OUTPUT}/${SDKPATH}
}
@@ -603,8 +624,8 @@ sdk_ext_preinst() {
exit 1
fi
# The relocation script used by buildtools installer requires python
- if ! command -v python > /dev/null; then
- echo "ERROR: The installer requires python, please install it first"
+ if ! command -v python3 > /dev/null; then
+ echo "ERROR: The installer requires python3, please install it first"
exit 1
fi
missing_utils=""
@@ -629,16 +650,21 @@ sdk_ext_postinst() {
printf "\nExtracting buildtools...\n"
cd $target_sdk_dir
env_setup_script="$target_sdk_dir/environment-setup-${REAL_MULTIMACH_TARGET_SYS}"
- printf "buildtools\ny" | ./${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
-
- # Delete the buildtools tar file since it won't be used again
- rm -f ./${SDK_BUILDTOOLS_INSTALLER}
- # We don't need the log either since it succeeded
- rm -f buildtools.log
-
- # Make sure when the user sets up the environment, they also get
- # the buildtools-tarball tools in their path.
- echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script
+ if [ -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then
+ printf "buildtools\ny" | ./${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
+
+ # Delete the buildtools tar file since it won't be used again
+ rm -f ./${SDK_BUILDTOOLS_INSTALLER}
+ # We don't need the log either since it succeeded
+ rm -f buildtools.log
+
+ # 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.
echo "export OE_SKIP_SDK_CHECK=1" >> $env_setup_script
@@ -654,13 +680,13 @@ sdk_ext_postinst() {
# Warn if trying to use external bitbake and the ext SDK together
echo "(which bitbake > /dev/null 2>&1 && echo 'WARNING: attempting to use the extensible SDK in an environment set up to run bitbake - this may lead to unexpected results. Please source this script in a new shell session instead.') || true" >> $env_setup_script
- if [ "$prepare_buildsystem" != "no" ]; then
+ if [ "$prepare_buildsystem" != "no" -a -n "${SDK_BUILDTOOLS_INSTALLER}" ]; then
printf "Preparing build system...\n"
# dash which is /bin/sh on Ubuntu will not preserve the
# 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
@@ -680,7 +706,10 @@ fakeroot python do_populate_sdk_ext() {
bb.fatal('The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is set to %s (likely via setting SDKMACHINE) which is different from the architecture of the build machine (%s). Unable to continue.' % (d.getVar('SDK_ARCH'), d.getVar('BUILD_ARCH')))
d.setVar('SDK_INSTALL_TARGETS', get_sdk_install_targets(d))
- buildtools_fn = get_current_buildtools(d)
+ if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1':
+ buildtools_fn = get_current_buildtools(d)
+ else:
+ buildtools_fn = None
d.setVar('SDK_REQUIRED_UTILITIES', get_sdk_required_utilities(buildtools_fn, d))
d.setVar('SDK_BUILDTOOLS_INSTALLER', buildtools_fn)
d.setVar('SDKDEPLOYDIR', '${SDKEXTDEPLOYDIR}')
@@ -731,7 +760,7 @@ def get_sdk_ext_rdepends(d):
do_populate_sdk_ext[dirs] = "${@d.getVarFlag('do_populate_sdk', 'dirs', False)}"
do_populate_sdk_ext[depends] = "${@d.getVarFlag('do_populate_sdk', 'depends', False)} \
- buildtools-tarball:do_populate_sdk \
+ ${@'buildtools-tarball:do_populate_sdk' if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1' else ''} \
${@'meta-world-pkgdata:do_collect_packagedata' if d.getVar('SDK_INCLUDE_PKGDATA') == '1' else ''} \
${@'meta-extsdk-toolchain:do_locked_sigs' if d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1' else ''}"
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/python-dir.bbclass b/meta/classes/python-dir.bbclass
deleted file mode 100644
index a11dc350be..0000000000
--- a/meta/classes/python-dir.bbclass
+++ /dev/null
@@ -1,5 +0,0 @@
-PYTHON_BASEVERSION = "2.7"
-PYTHON_ABI = ""
-PYTHON_DIR = "python${PYTHON_BASEVERSION}"
-PYTHON_PN = "python"
-PYTHON_SITEPACKAGES_DIR = "${libdir}/${PYTHON_DIR}/site-packages"
diff --git a/meta/classes/python3-dir.bbclass b/meta/classes/python3-dir.bbclass
index 7dd130bad9..036d7140d9 100644
--- a/meta/classes/python3-dir.bbclass
+++ b/meta/classes/python3-dir.bbclass
@@ -1,5 +1,5 @@
-PYTHON_BASEVERSION = "3.7"
-PYTHON_ABI = "m"
+PYTHON_BASEVERSION = "3.8"
+PYTHON_ABI = ""
PYTHON_DIR = "python${PYTHON_BASEVERSION}"
PYTHON_PN = "python3"
PYTHON_SITEPACKAGES_DIR = "${libdir}/${PYTHON_DIR}/site-packages"
diff --git a/meta/classes/pythonnative.bbclass b/meta/classes/pythonnative.bbclass
deleted file mode 100644
index 0e9019d1e2..0000000000
--- a/meta/classes/pythonnative.bbclass
+++ /dev/null
@@ -1,27 +0,0 @@
-
-inherit python-dir
-
-PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python"
-# PYTHON_EXECUTABLE is used by cmake
-PYTHON_EXECUTABLE="${PYTHON}"
-EXTRANATIVEPATH += "python-native"
-DEPENDS_append = " python-native "
-
-# python-config and other scripts are using distutils modules
-# which we patch to access these variables
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-# Packages can use
-# find_package(PythonInterp REQUIRED)
-# find_package(PythonLibs REQUIRED)
-# which ends up using libs/includes from build host
-# Therefore pre-empt that effort
-export PYTHON_LIBRARY="${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so"
-export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
-
-# suppress host user's site-packages dirs.
-export PYTHONNOUSERSITE = "1"
-
-# autoconf macros will use their internal default preference otherwise
-export PYTHON
diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
index f5c5780125..55bdff816b 100644
--- a/meta/classes/qemu.bbclass
+++ b/meta/classes/qemu.bbclass
@@ -16,6 +16,8 @@ def qemu_target_binary(data):
target_arch = "ppc"
elif target_arch == "powerpc64":
target_arch = "ppc64"
+ elif target_arch == "powerpc64le":
+ target_arch = "ppc64le"
return "qemu-" + target_arch
@@ -62,3 +64,4 @@ QEMU_EXTRAOPTIONS_ppc64e5500 = " -cpu e500mc"
QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e500mc"
QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc"
QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400"
+QEMU_EXTRAOPTIONS_powerpc64le = " -cpu POWER8"
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/report-error.bbclass b/meta/classes/report-error.bbclass
index ea043b23e1..1a12db1206 100644
--- a/meta/classes/report-error.bbclass
+++ b/meta/classes/report-error.bbclass
@@ -78,19 +78,15 @@ python errorreport_handler () {
taskdata['task'] = task
if log:
try:
- logFile = codecs.open(log, 'r', 'utf-8')
- logdata = logFile.read()
-
+ with codecs.open(log, encoding='utf-8') as logFile:
+ logdata = logFile.read()
# Replace host-specific paths so the logs are cleaner
for d in ("TOPDIR", "TMPDIR"):
s = e.data.getVar(d)
if s:
logdata = logdata.replace(s, d)
-
- logFile.close()
except:
logdata = "Unable to read log file"
-
else:
logdata = "No Log"
diff --git a/meta/classes/reproducible_build.bbclass b/meta/classes/reproducible_build.bbclass
index 39b6e40cac..2f3bd90b07 100644
--- a/meta/classes/reproducible_build.bbclass
+++ b/meta/classes/reproducible_build.bbclass
@@ -44,10 +44,12 @@ SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch"
SSTATETASKS += "do_deploy_source_date_epoch"
do_deploy_source_date_epoch () {
- echo "Deploying SDE to ${SDE_DIR}."
mkdir -p ${SDE_DEPLOYDIR}
if [ -e ${SDE_FILE} ]; then
+ echo "Deploying SDE from ${SDE_FILE} -> ${SDE_DEPLOYDIR}."
cp -p ${SDE_FILE} ${SDE_DEPLOYDIR}/__source_date_epoch.txt
+ else
+ echo "${SDE_FILE} not found!"
fi
}
@@ -56,7 +58,11 @@ python do_deploy_source_date_epoch_setscene () {
bb.utils.mkdirhier(d.getVar('SDE_DIR'))
sde_file = os.path.join(d.getVar('SDE_DEPLOYDIR'), '__source_date_epoch.txt')
if os.path.exists(sde_file):
- os.rename(sde_file, d.getVar('SDE_FILE'))
+ target = d.getVar('SDE_FILE')
+ bb.debug(1, "Moving setscene SDE file %s -> %s" % (sde_file, target))
+ os.rename(sde_file, target)
+ else:
+ bb.debug(1, "%s not found!" % sde_file)
}
do_deploy_source_date_epoch[dirs] = "${SDE_DEPLOYDIR}"
@@ -64,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'))
@@ -164,16 +87,32 @@ python do_create_source_date_epoch_stamp() {
f.write(str(source_date_epoch))
}
+def get_source_date_epoch_value(d):
+ cached = d.getVar('__CACHED_SOURCE_DATE_EPOCH')
+ if cached:
+ return cached
+
+ epochfile = d.getVar('SDE_FILE')
+ source_date_epoch = 0
+ if os.path.isfile(epochfile):
+ with open(epochfile, 'r') as f:
+ s = f.read()
+ try:
+ source_date_epoch = int(s)
+ except ValueError:
+ bb.warn("SOURCE_DATE_EPOCH value '%s' is invalid. Reverting to 0" % s)
+ source_date_epoch = 0
+ bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch)
+ else:
+ bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch))
+
+ d.setVar('__CACHED_SOURCE_DATE_EPOCH', str(source_date_epoch))
+ return str(source_date_epoch)
+
+export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}"
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")
- epochfile = d.getVar('SDE_FILE')
- source_date_epoch = "0"
- if os.path.isfile(epochfile):
- with open(epochfile, 'r') as f:
- source_date_epoch = f.read()
- bb.debug(1, "SOURCE_DATE_EPOCH: %s" % source_date_epoch)
- d.setVar('SOURCE_DATE_EPOCH', source_date_epoch)
+ d.appendVarFlag("do_unpack", "postfuncs", " create_source_date_epoch_stamp")
}
diff --git a/meta/classes/reproducible_build_simple.bbclass b/meta/classes/reproducible_build_simple.bbclass
index 8a60deef3d..393372993d 100644
--- a/meta/classes/reproducible_build_simple.bbclass
+++ b/meta/classes/reproducible_build_simple.bbclass
@@ -7,4 +7,3 @@ export PERL_HASH_SEED = "0"
export SOURCE_DATE_EPOCH ??= "1520598896"
REPRODUCIBLE_TIMESTAMP_ROOTFS ??= "1520598896"
-
diff --git a/meta/classes/rm_work.bbclass b/meta/classes/rm_work.bbclass
index a6bd3f719f..01c2ab1c78 100644
--- a/meta/classes/rm_work.bbclass
+++ b/meta/classes/rm_work.bbclass
@@ -47,30 +47,26 @@ do_rm_work () {
cd `dirname ${STAMP}`
for i in `basename ${STAMP}`*
do
- # By default we'll delete the stamp, unless $i is changed by the inner loop
- # (i=dummy does this)
-
case $i in
*sigdata*|*sigbasedata*)
# Save/skip anything that looks like a signature data file.
- i=dummy
;;
- *do_image_complete_setscene*)
- # Ensure we don't 'stack' setscene extensions to this stamp with the section below
- i=dummy
+ *do_image_complete_setscene*|*do_image_qa_setscene*)
+ # Ensure we don't 'stack' setscene extensions to these stamps with the sections below
;;
*do_image_complete*)
# Promote do_image_complete stamps to setscene versions (ahead of *do_image* below)
mv $i `echo $i | sed -e "s#do_image_complete#do_image_complete_setscene#"`
- i=dummy
+ ;;
+ *do_image_qa*)
+ # Promote do_image_qa stamps to setscene versions (ahead of *do_image* below)
+ mv $i `echo $i | sed -e "s#do_image_qa#do_image_qa_setscene#"`
;;
*do_package_write*|*do_rootfs*|*do_image*|*do_bootimg*|*do_write_qemuboot_conf*|*do_build*)
- i=dummy
;;
*do_addto_recipe_sysroot*)
# Preserve recipe-sysroot-native if do_addto_recipe_sysroot has been used
excludes="$excludes recipe-sysroot-native"
- i=dummy
;;
*do_package|*do_package.*|*do_package_setscene.*)
# We remove do_package entirely, including any
@@ -78,30 +74,24 @@ do_rm_work () {
# such as 'packages' and 'packages-split' and these can be large. No end
# of chain tasks depend directly on do_package anymore.
rm -f $i;
- i=dummy
;;
*_setscene*)
# Skip stamps which are already setscene versions
- i=dummy
;;
+ *)
+ # For everything else: if suitable, promote the stamp to a setscene
+ # version, otherwise remove it
+ for j in ${SSTATETASKS} do_shared_workdir
+ do
+ case $i in
+ *$j|*$j.*)
+ mv $i `echo $i | sed -e "s#${j}#${j}_setscene#"`
+ break
+ ;;
+ esac
+ done
+ rm -f $i
esac
-
- for j in ${SSTATETASKS} do_shared_workdir
- do
- case $i in
- dummy)
- break
- ;;
- *$j|*$j.*)
- # Promote the stamp to a setscene version
- mv $i `echo $i | sed -e "s#${j}#${j}_setscene#"`
- i=dummy
- break
- ;;
- esac
- done
-
- rm -f $i
done
cd ${WORKDIR}
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 2d3f49eb1a..3262d08fbf 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -2,7 +2,7 @@
# Sanity check the users setup for common misconfigurations
#
-SANITY_REQUIRED_UTILITIES ?= "patch diffstat makeinfo git bzip2 tar \
+SANITY_REQUIRED_UTILITIES ?= "patch diffstat git bzip2 tar \
gzip gawk chrpath wget cpio perl file which"
def bblayers_conf_file(d):
@@ -511,18 +511,43 @@ 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
# but earlier versions do not; this needs to work properly for sstate
+# Version 1.28 is needed so opkg-build works correctly when reproducibile builds are enabled
def check_tar_version(sanity_data):
from distutils.version import LooseVersion
import subprocess
@@ -531,8 +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.\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 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
@@ -594,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))
@@ -622,14 +650,16 @@ def check_sanity_version_change(status, d):
# In other words, these tests run once in a given build directory and then
# never again until the sanity version or host distrubution id/version changes.
- # Check the python install is complete. glib-2.0-natives requries
- # xml.parsers.expat
+ # Check the python install is complete. Examples that are often removed in
+ # minimal installations: glib-2.0-natives requries # xml.parsers.expat and icu
+ # requires distutils.sysconfig.
try:
import xml.parsers.expat
- except ImportError:
- status.addresult('Your python is not a full install. Please install the module xml.parsers.expat (python-xml on openSUSE and SUSE Linux).\n')
- import stat
+ import distutils.sysconfig
+ 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))
@@ -664,6 +694,7 @@ def check_sanity_version_change(status, d):
status.addresult('Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf\n')
# Check that TMPDIR isn't on a filesystem with limited filename length (eg. eCryptFS)
+ import stat
tmpdir = d.getVar('TMPDIR')
status.addresult(check_create_long_filename(tmpdir, "TMPDIR"))
tmpdirmode = os.stat(tmpdir).st_mode
@@ -741,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
@@ -756,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')
@@ -798,6 +835,11 @@ def check_sanity_everybuild(status, d):
elif d.getVar('SDK_ARCH', False) == "${BUILD_ARCH}":
status.addresult('SDKMACHINE is set, but SDK_ARCH has not been changed as a result - SDKMACHINE may have been set too late (e.g. in the distro configuration)\n')
+ # 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; found '%s'\n" % sdkvendor)
+
check_supported_distro(d)
omask = os.umask(0o022)
@@ -919,7 +961,7 @@ def check_sanity(sanity_data):
last_tmpdir = ""
last_sstate_dir = ""
last_nativelsbstr = ""
- sanityverfile = sanity_data.expand("${TOPDIR}/conf/sanity_info")
+ sanityverfile = sanity_data.expand("${TOPDIR}/cache/sanity_info")
if os.path.exists(sanityverfile):
with open(sanityverfile, 'r') as f:
for line in f:
diff --git a/meta/classes/setuptools.bbclass b/meta/classes/setuptools.bbclass
deleted file mode 100644
index a923ea3c4a..0000000000
--- a/meta/classes/setuptools.bbclass
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit distutils
-
-DEPENDS += "python-setuptools-native"
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 411e70478e..0bd1f36805 100644
--- a/meta/classes/siteinfo.bbclass
+++ b/meta/classes/siteinfo.bbclass
@@ -35,7 +35,6 @@ def siteinfo_data_for_machine(arch, os, d):
"lm32": "endian-big bit-32",
"m68k": "endian-big bit-32",
"microblaze": "endian-big bit-32 microblaze-common",
- "microblazeeb": "endian-big bit-32 microblaze-common",
"microblazeel": "endian-little bit-32 microblaze-common",
"mips": "endian-big bit-32 mips-common",
"mips64": "endian-big bit-64 mips-common",
@@ -46,15 +45,19 @@ 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",
"ppc": "endian-big bit-32 powerpc-common",
"ppc64": "endian-big bit-64 powerpc-common",
"ppc64le" : "endian-little bit-64 powerpc-common",
"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
@@ -88,8 +91,6 @@ def siteinfo_data_for_machine(arch, os, d):
"arm-linux-musleabi": "arm-linux",
"armeb-linux-gnueabi": "armeb-linux",
"armeb-linux-musleabi": "armeb-linux",
- "microblazeeb-linux" : "microblaze-linux",
- "microblazeeb-linux-musl" : "microblaze-linux",
"microblazeel-linux" : "microblaze-linux",
"microblazeel-linux-musl" : "microblaze-linux",
"mips-linux-musl": "mips-linux",
@@ -102,12 +103,16 @@ 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",
"powerpc64-linux-muslspe": "powerpc-linux powerpc64-linux",
- "powerpc64-linux": "powerpc-linux",
- "powerpc64-linux-musl": "powerpc-linux",
+ "powerpc64-linux": "powerpc-linux powerpc64-linux",
+ "powerpc64-linux-musl": "powerpc-linux powerpc64-linux",
+ "powerpc64le-linux": "powerpc-linux powerpc64-linux",
+ "powerpc64le-linux-musl": "powerpc-linux powerpc64-linux",
"riscv32-linux": "riscv32-linux",
"riscv32-linux-musl": "riscv32-linux",
"riscv64-linux": "riscv64-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 b47b9c23bf..a8ae75101d 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -3,19 +3,41 @@ SSTATE_VERSION = "3"
SSTATE_MANIFESTS ?= "${TMPDIR}/sstate-control"
SSTATE_MANFILEPREFIX = "${SSTATE_MANIFESTS}/manifest-${SSTATE_MANMACH}-${PN}"
-def generate_sstatefn(spec, hash, d):
+def generate_sstatefn(spec, hash, taskname, siginfo, d):
+ if taskname is None:
+ return ""
+ extension = ".tgz"
+ # 8 chars reserved for siginfo
+ limit = 254 - 8
+ if siginfo:
+ limit = 254
+ extension = ".tgz.siginfo"
if not hash:
hash = "INVALID"
- return hash[:2] + "/" + spec + hash
+ fn = spec + hash + "_" + taskname + extension
+ # If the filename is too long, attempt to reduce it
+ if len(fn) > limit:
+ components = spec.split(":")
+ # Fields 0,5,6 are mandatory, 1 is most useful, 2,3,4 are just for information
+ # 7 is for the separators
+ avail = (254 - len(hash + "_" + taskname + extension) - len(components[0]) - len(components[1]) - len(components[5]) - len(components[6]) - 7) // 3
+ components[2] = components[2][:avail]
+ components[3] = components[3][:avail]
+ components[4] = components[4][:avail]
+ spec = ":".join(components)
+ fn = spec + hash + "_" + taskname + extension
+ if len(fn) > limit:
+ bb.fatal("Unable to reduce sstate name to less than 255 chararacters")
+ return hash[:2] + "/" + hash[2:4] + "/" + fn
SSTATE_PKGARCH = "${PACKAGE_ARCH}"
SSTATE_PKGSPEC = "sstate:${PN}:${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}:${PV}:${PR}:${SSTATE_PKGARCH}:${SSTATE_VERSION}:"
SSTATE_SWSPEC = "sstate:${PN}::${PV}:${PR}::${SSTATE_VERSION}:"
-SSTATE_PKGNAME = "${SSTATE_EXTRAPATH}${@generate_sstatefn(d.getVar('SSTATE_PKGSPEC'), d.getVar('BB_UNIHASH'), d)}"
+SSTATE_PKGNAME = "${SSTATE_EXTRAPATH}${@generate_sstatefn(d.getVar('SSTATE_PKGSPEC'), d.getVar('BB_UNIHASH'), d.getVar('SSTATE_CURRTASK'), False, d)}"
SSTATE_PKG = "${SSTATE_DIR}/${SSTATE_PKGNAME}"
SSTATE_EXTRAPATH = ""
SSTATE_EXTRAPATHWILDCARD = ""
-SSTATE_PATHSPEC = "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/${SSTATE_PKGSPEC}"
+SSTATE_PATHSPEC = "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/*/${SSTATE_PKGSPEC}*_${SSTATE_PATH_CURRTASK}.tgz*"
# explicitly make PV to depend on evaluated value of PV variable
PV[vardepvalue] = "${PV}"
@@ -317,8 +339,9 @@ def sstate_installpkg(ss, d):
from oe.gpg_sign import get_signer
sstateinst = d.expand("${WORKDIR}/sstate-install-%s/" % ss['task'])
- sstatefetch = d.getVar('SSTATE_PKGNAME') + '_' + ss['task'] + ".tgz"
- sstatepkg = d.getVar('SSTATE_PKG') + '_' + ss['task'] + ".tgz"
+ d.setVar("SSTATE_CURRTASK", ss['task'])
+ sstatefetch = d.getVar('SSTATE_PKGNAME')
+ sstatepkg = d.getVar('SSTATE_PKG')
if not os.path.exists(sstatepkg):
pstaging_fetch(sstatefetch, d)
@@ -330,9 +353,11 @@ def sstate_installpkg(ss, d):
sstate_clean(ss, d)
d.setVar('SSTATE_INSTDIR', sstateinst)
- d.setVar('SSTATE_PKG', sstatepkg)
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)
@@ -440,8 +465,9 @@ python sstate_hardcode_path_unpack () {
def sstate_clean_cachefile(ss, d):
import oe.path
- sstatepkgfile = d.getVar('SSTATE_PATHSPEC') + "*_" + ss['task'] + ".tgz*"
if d.getVarFlag('do_%s' % ss['task'], 'task'):
+ d.setVar("SSTATE_PATH_CURRTASK", ss['task'])
+ sstatepkgfile = d.getVar('SSTATE_PATHSPEC')
bb.note("Removing %s" % sstatepkgfile)
oe.path.remove(sstatepkgfile)
@@ -612,10 +638,9 @@ def sstate_package(ss, d):
tmpdir = d.getVar('TMPDIR')
sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task'])
- sstatepkg = d.getVar('SSTATE_PKG') + '_'+ ss['task'] + ".tgz"
+ d.setVar("SSTATE_CURRTASK", ss['task'])
bb.utils.remove(sstatebuild, recurse=True)
bb.utils.mkdirhier(sstatebuild)
- bb.utils.mkdirhier(os.path.dirname(sstatepkg))
for state in ss['dirs']:
if not os.path.exists(state[1]):
continue
@@ -648,7 +673,6 @@ def sstate_package(ss, d):
os.rename(plain, pdir)
d.setVar('SSTATE_BUILDDIR', sstatebuild)
- d.setVar('SSTATE_PKG', sstatepkg)
d.setVar('SSTATE_INSTDIR', sstatebuild)
if d.getVar('SSTATE_SKIP_CREATION') == '1':
@@ -664,7 +688,15 @@ def sstate_package(ss, d):
# All hooks should run in SSTATE_BUILDDIR.
bb.build.exec_func(f, d, (sstatebuild,))
- bb.siggen.dump_this_task(sstatepkg + ".siginfo", d)
+ # SSTATE_PKG may have been changed by sstate_report_unihash
+ siginfo = d.getVar('SSTATE_PKG') + ".siginfo"
+ if not os.path.exists(siginfo):
+ bb.siggen.dump_this_task(siginfo, d)
+ else:
+ try:
+ os.utime(siginfo, None)
+ except PermissionError:
+ pass
return
@@ -704,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)
@@ -748,18 +781,20 @@ sstate_task_postfunc[dirs] = "${WORKDIR}"
# set as SSTATE_BUILDDIR. Will be run from within SSTATE_BUILDDIR.
#
sstate_create_package () {
- TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
-
- # Exit earlu if it already exists
+ # Exit early if it already exists
if [ -e ${SSTATE_PKG} ]; then
+ [ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG}
return
fi
- # Use pigz if available
- OPT="-czS"
- if [ -x "$(command -v pigz)" ]; then
- OPT="-I pigz -cS"
- fi
+ mkdir --mode=0775 -p `dirname ${SSTATE_PKG}`
+ TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
+
+ # Use pigz if available
+ OPT="-czS"
+ if [ -x "$(command -v pigz)" ]; then
+ OPT="-I pigz -cS"
+ fi
# Need to handle empty directories
if [ "$(ls -A)" ]; then
@@ -776,10 +811,13 @@ sstate_create_package () {
chmod 0664 $TFILE
# Skip if it was already created by some other process
if [ ! -e ${SSTATE_PKG} ]; then
- mv -f $TFILE ${SSTATE_PKG}
+ # Move into place using ln to attempt an atomic op.
+ # Abort if it already exists
+ ln $TFILE ${SSTATE_PKG} && rm $TFILE
else
rm $TFILE
fi
+ [ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG}
}
python sstate_sign_package () {
@@ -809,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
@@ -818,12 +856,9 @@ sstate_unpack_package () {
BB_HASHCHECK_FUNCTION = "sstate_checkhashes"
-def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs):
+def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True, **kwargs):
found = set()
missed = set()
- extension = ".tgz"
- if siginfo:
- extension = extension + ".siginfo"
def gethash(task):
return sq_data['unihash'][task]
@@ -850,7 +885,7 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs):
spec, extrapath, tname = getpathcomponents(tid, d)
- sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + extension)
+ sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, gethash(tid), tname, siginfo, d))
if os.path.exists(sstatefile):
bb.debug(2, "SState: Found valid sstate file %s" % sstatefile)
@@ -906,19 +941,22 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs):
missed.add(tid)
bb.debug(2, "SState: Unsuccessful fetch test for %s" % srcuri)
pass
- bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) - thread_worker.tasks.qsize()), d)
+ if len(tasklist) >= min_tasks:
+ bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) - thread_worker.tasks.qsize()), d)
tasklist = []
+ min_tasks = 100
for tid in sq_data['hash']:
if tid in found:
continue
spec, extrapath, tname = getpathcomponents(tid, d)
- sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + extension)
+ sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, siginfo, d))
tasklist.append((tid, sstatefile))
if tasklist:
- msg = "Checking sstate mirror object availability"
- bb.event.fire(bb.event.ProcessStarted(msg, len(tasklist)), d)
+ if len(tasklist) >= min_tasks:
+ msg = "Checking sstate mirror object availability"
+ bb.event.fire(bb.event.ProcessStarted(msg, len(tasklist)), d)
import multiprocessing
nproc = min(multiprocessing.cpu_count(), len(tasklist))
@@ -932,35 +970,33 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, **kwargs):
pool.wait_completion()
bb.event.disable_threadlock()
- 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
+ if len(tasklist) >= min_tasks:
+ bb.event.fire(bb.event.ProcessFinished(msg), d)
inheritlist = d.getVar("INHERIT")
if "toaster" in inheritlist:
evdata = {'missed': [], 'found': []};
for tid in missed:
spec, extrapath, tname = getpathcomponents(tid, d)
- sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + ".tgz")
+ sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, False, d))
evdata['missed'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
for tid in found:
spec, extrapath, tname = getpathcomponents(tid, d)
- sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), d) + "_" + tname + ".tgz")
+ sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, False, d))
evdata['found'].append((bb.runqueue.fn_from_tid(tid), bb.runqueue.taskname_from_tid(tid), gethash(tid), sstatefile ) )
bb.event.fire(bb.event.MetadataEvent("MissedSstate", evdata), d)
- # Print some summary statistics about the current task completion and how much sstate
- # reuse there was. Avoid divide by zero errors.
- total = len(sq_data['hash'])
- complete = 0
- if currentcount:
- complete = (len(found) + currentcount) / (total + currentcount) * 100
- match = 0
- if total:
- match = len(found) / total * 100
- bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(found), len(missed), currentcount, match, complete))
+ if summary:
+ # Print some summary statistics about the current task completion and how much sstate
+ # reuse there was. Avoid divide by zero errors.
+ total = len(sq_data['hash'])
+ complete = 0
+ if currentcount:
+ complete = (len(found) + currentcount) / (total + currentcount) * 100
+ match = 0
+ if total:
+ match = len(found) / total * 100
+ bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(found), len(missed), currentcount, match, complete))
if hasattr(bb.parse.siggen, "checkhashes"):
bb.parse.siggen.checkhashes(sq_data, missed, found, d)
@@ -1080,17 +1116,24 @@ addhandler sstate_eventhandler
sstate_eventhandler[eventmask] = "bb.build.TaskSucceeded"
python sstate_eventhandler() {
d = e.data
- # When we write an sstate package we rewrite the SSTATE_PKG
- spkg = d.getVar('SSTATE_PKG')
- if not spkg.endswith(".tgz"):
+ writtensstate = d.getVar('SSTATE_CURRTASK')
+ if not writtensstate:
taskname = d.getVar("BB_RUNTASK")[3:]
spec = d.getVar('SSTATE_PKGSPEC')
swspec = d.getVar('SSTATE_SWSPEC')
if taskname in ["fetch", "unpack", "patch", "populate_lic", "preconfigure"] and swspec:
d.setVar("SSTATE_PKGSPEC", "${SSTATE_SWSPEC}")
d.setVar("SSTATE_EXTRAPATH", "")
- sstatepkg = d.getVar('SSTATE_PKG')
- bb.siggen.dump_this_task(sstatepkg + '_' + taskname + ".tgz" ".siginfo", d)
+ d.setVar("SSTATE_CURRTASK", taskname)
+ siginfo = d.getVar('SSTATE_PKG') + ".siginfo"
+ if not os.path.exists(siginfo):
+ bb.siggen.dump_this_task(siginfo, d)
+ else:
+ 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 55a9b52ed2..f0a619b35b 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -32,7 +32,7 @@ SYSROOT_DIRS_BLACKLIST = " \
${datadir}/gtk-doc/html \
${datadir}/locale \
${datadir}/pixmaps \
- ${libdir}/${PN}/ptest \
+ ${libdir}/${BPN}/ptest \
"
sysroot_stage_dir() {
@@ -75,8 +75,8 @@ python sysroot_strip () {
dstdir = d.getVar('SYSROOT_DESTDIR')
pn = d.getVar('PN')
- libdir = os.path.abspath(dstdir + os.sep + d.getVar("libdir"))
- base_libdir = os.path.abspath(dstdir + os.sep + d.getVar("base_libdir"))
+ libdir = d.getVar("libdir")
+ base_libdir = d.getVar("base_libdir")
qa_already_stripped = 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split()
strip_cmd = d.getVar("STRIP")
@@ -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)
@@ -449,6 +457,7 @@ python extend_recipe_sysroot() {
msg_exists = []
msg_adding = []
+ # Handle all removals first since files may move between recipes
for dep in configuredeps:
c = setscenedeps[dep][0]
if c not in installed:
@@ -459,7 +468,6 @@ python extend_recipe_sysroot() {
if os.path.exists(depdir + "/" + c):
lnk = os.readlink(depdir + "/" + c)
if lnk == c + "." + taskhash and os.path.exists(depdir + "/" + c + ".complete"):
- msg_exists.append(c)
continue
else:
bb.note("%s exists in sysroot, but is stale (%s vs. %s), removing." % (c, lnk, c + "." + taskhash))
@@ -470,6 +478,21 @@ python extend_recipe_sysroot() {
elif os.path.lexists(depdir + "/" + c):
os.unlink(depdir + "/" + c)
+ binfiles = {}
+ # Now handle installs
+ for dep in configuredeps:
+ c = setscenedeps[dep][0]
+ if c not in installed:
+ continue
+ taskhash = setscenedeps[dep][5]
+ taskmanifest = depdir + "/" + c + "." + taskhash
+
+ if os.path.exists(depdir + "/" + c):
+ lnk = os.readlink(depdir + "/" + c)
+ if lnk == c + "." + taskhash and os.path.exists(depdir + "/" + c + ".complete"):
+ msg_exists.append(c)
+ continue
+
msg_adding.append(c)
os.symlink(c + "." + taskhash, depdir + "/" + c)
@@ -548,7 +571,16 @@ python extend_recipe_sysroot() {
if l.endswith("/"):
staging_copydir(l, targetdir, dest, seendirs)
continue
- staging_copyfile(l, targetdir, dest, postinsts, seendirs)
+ if "/bin/" in l or "/sbin/" in l:
+ # defer /*bin/* files until last in case they need libs
+ binfiles[l] = (targetdir, dest)
+ else:
+ staging_copyfile(l, targetdir, dest, postinsts, seendirs)
+
+ # Handle deferred binfiles
+ for l in binfiles:
+ (targetdir, dest) = binfiles[l]
+ staging_copyfile(l, targetdir, dest, postinsts, seendirs)
bb.note("Installed into sysroot: %s" % str(msg_adding))
bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists))
@@ -564,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")
@@ -581,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/systemd.bbclass b/meta/classes/systemd.bbclass
index 1dca09964b..9e8a82c9f1 100644
--- a/meta/classes/systemd.bbclass
+++ b/meta/classes/systemd.bbclass
@@ -32,11 +32,7 @@ if type systemctl >/dev/null 2>/dev/null; then
if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then
for service in ${SYSTEMD_SERVICE_ESCAPED}; do
- case "${service}" in
- *@*)
- systemctl ${OPTS} enable "${service}"
- ;;
- esac
+ systemctl ${OPTS} enable "$service"
done
fi
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 525c5a6173..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,9 +33,21 @@ 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.
+# TESTIMAGE_BOOT_PATTERNS can be used to override certain patterns used to communicate with the target when booting,
+# if a pattern is not specifically present on this variable a default will be used when booting the target.
+# TESTIMAGE_BOOT_PATTERNS[<flag>] overrides the pattern used for that specific flag, where flag comes from a list of accepted flags
+# e.g. normally the system boots and waits for a login prompt (login:), after that it sends the command: "root\n" to log as the root user
+# if we wanted to log in as the hypothetical "webserver" user for example we could set the following:
+# TESTIMAGE_BOOT_PATTERNS = "send_login_user search_login_succeeded"
+# TESTIMAGE_BOOT_PATTERNS[send_login_user] = "webserver\n"
+# TESTIMAGE_BOOT_PATTERNS[search_login_succeeded] = "webserver@[a-zA-Z0-9\-]+:~#"
+# The accepted flags are the following: search_reached_prompt, send_login_user, search_login_succeeded, search_cmd_finished.
+# They are prefixed with either search/send, to differentiate if the pattern is meant to be sent or searched to/from the target terminal
+
TEST_LOG_DIR ?= "${WORKDIR}/testimage"
TEST_EXPORT_DIR ?= "${TMPDIR}/testimage/${PN}"
@@ -46,7 +60,7 @@ BASICTESTSUITE = "\
ping date df ssh scp python perl gi ptest parselogs \
logrotate connman systemd oe_syslog pam stap ldd xorg \
kernelmodule gcc buildcpio buildlzip buildgalculator \
- dnf rpm opkg apt"
+ dnf rpm opkg apt weston"
DEFAULT_TEST_SUITES = "${BASICTESTSUITE}"
@@ -64,10 +78,13 @@ 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 ?= ""
+TESTIMAGE_BOOT_PATTERNS ?= ""
+
TESTIMAGEDEPENDS = ""
TESTIMAGEDEPENDS_append_qemuall = " qemu-native:do_populate_sysroot qemu-helper-native:do_populate_sysroot qemu-helper-native:do_addto_recipe_sysroot"
TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
@@ -150,6 +167,29 @@ def get_testimage_json_result_dir(d):
def get_testimage_result_id(configuration):
return '%s_%s_%s_%s' % (configuration['TEST_TYPE'], configuration['IMAGE_BASENAME'], configuration['MACHINE'], configuration['STARTTIME'])
+def get_testimage_boot_patterns(d):
+ from collections import defaultdict
+ boot_patterns = defaultdict(str)
+ # Only accept certain values
+ accepted_patterns = ['search_reached_prompt', 'send_login_user', 'search_login_succeeded', 'search_cmd_finished']
+ # Not all patterns need to be overriden, e.g. perhaps we only want to change the user
+ boot_patterns_flags = d.getVarFlags('TESTIMAGE_BOOT_PATTERNS') or {}
+ if boot_patterns_flags:
+ patterns_set = [p for p in boot_patterns_flags.items() if p[0] in d.getVar('TESTIMAGE_BOOT_PATTERNS').split()]
+ for flag, flagval in patterns_set:
+ if flag not in accepted_patterns:
+ bb.fatal('Testimage: The only accepted boot patterns are: search_reached_prompt,send_login_user, \
+ search_login_succeeded,search_cmd_finished\n Make sure your TESTIMAGE_BOOT_PATTERNS=%s \
+ contains an accepted flag.' % d.getVar('TESTIMAGE_BOOT_PATTERNS'))
+ return
+ # We know boot prompt is searched through in binary format, others might be expressions
+ if flag == 'search_reached_prompt':
+ boot_patterns[flag] = flagval.encode()
+ else:
+ boot_patterns[flag] = flagval.encode().decode('unicode-escape')
+ return boot_patterns
+
+
def testimage_main(d):
import os
import json
@@ -168,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)
@@ -207,7 +251,7 @@ def testimage_main(d):
if d.getVar("TEST_TARGET") == "qemu":
fstypes = [fs for fs in fstypes if fs in supported_fstypes]
if not fstypes:
- bb.fatal('Unsupported image type built. Add a comptible image to '
+ bb.fatal('Unsupported image type built. Add a compatible image to '
'IMAGE_FSTYPES. Supported types: %s' %
', '.join(supported_fstypes))
qfstype = fstypes[0]
@@ -239,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,
@@ -256,12 +303,36 @@ def testimage_main(d):
'kvm' : kvm,
'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"):
+ target_kwargs['boot_patterns'] = get_testimage_boot_patterns(d)
+
# TODO: Currently BBPATH is needed for custom loading of targets.
# It would be better to find these modules using instrospection.
target_kwargs['target_modules_path'] = d.getVar('BBPATH')
+ # hardware controlled targets might need further access
+ target_kwargs['powercontrol_cmd'] = d.getVar("TEST_POWERCONTROL_CMD") or None
+ 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
+
+ variables = ['SSH_AGENT_PID', 'SSH_AUTH_SOCK']
+ for v in variables:
+ if v not in os.environ.keys():
+ val = d.getVar(v)
+ if val is not None:
+ os.environ[v] = val
+
+ export_ssh_agent(d)
+
# runtime use network for download projects for build
export_proxies(d)
@@ -301,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/texinfo.bbclass b/meta/classes/texinfo.bbclass
index 6b0def0eac..f46bacabd4 100644
--- a/meta/classes/texinfo.bbclass
+++ b/meta/classes/texinfo.bbclass
@@ -6,13 +6,13 @@
# Texinfo recipe, you can remove texinfo-native from ASSUME_PROVIDED and
# makeinfo from SANITY_REQUIRED_UTILITIES.
-TEXDEP = "texinfo-native"
+TEXDEP = "${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'texinfo-replacement-native', 'texinfo-dummy-native', d)}"
TEXDEP_class-native = "texinfo-dummy-native"
TEXDEP_class-cross = "texinfo-dummy-native"
+TEXDEP_class-crosssdk = "texinfo-dummy-native"
+TEXDEP_class-cross-canadian = "texinfo-dummy-native"
DEPENDS_append = " ${TEXDEP}"
-PATH_prepend_class-native = "${STAGING_BINDIR_NATIVE}/texinfo-dummy-native:"
-PATH_prepend_class-cross = "${STAGING_BINDIR_NATIVE}/texinfo-dummy-native:"
# libtool-cross doesn't inherit cross
TEXDEP_pn-libtool-cross = "texinfo-dummy-native"
-PATH_prepend_pn-libtool-cross = "${STAGING_BINDIR_NATIVE}/texinfo-dummy-native:"
+
diff --git a/meta/classes/tinderclient.bbclass b/meta/classes/tinderclient.bbclass
deleted file mode 100644
index 00f453cec1..0000000000
--- a/meta/classes/tinderclient.bbclass
+++ /dev/null
@@ -1,368 +0,0 @@
-def tinder_http_post(server, selector, content_type, body):
- import httplib
- # now post it
- for i in range(0,5):
- try:
- h = httplib.HTTP(server)
- h.putrequest('POST', selector)
- h.putheader('content-type', content_type)
- h.putheader('content-length', str(len(body)))
- h.endheaders()
- h.send(body)
- errcode, errmsg, headers = h.getreply()
- #print(errcode, errmsg, headers)
- return (errcode,errmsg, headers, h.file)
- except:
- print("Error sending the report!")
- # try again
- pass
-
- # return some garbage
- return (-1, "unknown", "unknown", None)
-
-def tinder_form_data(bound, dict, log):
- output = []
- # for each key in the dictionary
- for name in dict:
- assert dict[name]
- output.append( "--" + bound )
- output.append( 'Content-Disposition: form-data; name="%s"' % name )
- output.append( "" )
- output.append( dict[name] )
- if log:
- output.append( "--" + bound )
- output.append( 'Content-Disposition: form-data; name="log"; filename="log.txt"' )
- output.append( '' )
- output.append( log )
- output.append( '--' + bound + '--' )
- output.append( '' )
-
- return "\r\n".join(output)
-
-def tinder_time_string():
- """
- Return the time as GMT
- """
- return ""
-
-def tinder_format_http_post(d,status,log):
- """
- Format the Tinderbox HTTP post with the data needed
- for the tinderbox to be happy.
- """
-
- import random
-
- # the variables we will need to send on this form post
- variables = {
- "tree" : d.getVar('TINDER_TREE'),
- "machine_name" : d.getVar('TINDER_MACHINE'),
- "os" : os.uname()[0],
- "os_version" : os.uname()[2],
- "compiler" : "gcc",
- "clobber" : d.getVar('TINDER_CLOBBER') or "0",
- "srcdate" : d.getVar('SRCDATE'),
- "PN" : d.getVar('PN'),
- "PV" : d.getVar('PV'),
- "PR" : d.getVar('PR'),
- "FILE" : d.getVar('FILE') or "N/A",
- "TARGETARCH" : d.getVar('TARGET_ARCH'),
- "TARGETFPU" : d.getVar('TARGET_FPU') or "Unknown",
- "TARGETOS" : d.getVar('TARGET_OS') or "Unknown",
- "MACHINE" : d.getVar('MACHINE') or "Unknown",
- "DISTRO" : d.getVar('DISTRO') or "Unknown",
- "zecke-rocks" : "sure",
- }
-
- # optionally add the status
- if status:
- variables["status"] = str(status)
-
- # try to load the machine id
- # we only need on build_status.pl but sending it
- # always does not hurt
- try:
- f = open(d.getVar('TMPDIR')+'/tinder-machine.id', 'r')
- id = f.read()
- variables['machine_id'] = id
- except:
- pass
-
- # the boundary we will need
- boundary = "----------------------------------%d" % int(random.random()*1000000000000)
-
- # now format the body
- body = tinder_form_data( boundary, variables, log )
-
- return ("multipart/form-data; boundary=%s" % boundary),body
-
-
-def tinder_build_start(d):
- """
- Inform the tinderbox that a build is starting. We do this
- by posting our name and tree to the build_start.pl script
- on the server.
- """
-
- # get the body and type
- content_type, body = tinder_format_http_post(d,None,None)
- server = d.getVar('TINDER_HOST')
- url = d.getVar('TINDER_URL')
-
- selector = url + "/xml/build_start.pl"
-
- #print("selector %s and url %s" % (selector, url))
-
- # now post it
- errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body)
- #print(errcode, errmsg, headers)
- report = h_file.read()
-
- # now let us find the machine id that was assigned to us
- search = "<machine id='"
- report = report[report.find(search)+len(search):]
- report = report[0:report.find("'")]
-
- bb.note("Machine ID assigned by tinderbox: %s" % report )
-
- # now we will need to save the machine number
- # we will override any previous numbers
- f = open(d.getVar('TMPDIR')+"/tinder-machine.id", 'w')
- f.write(report)
-
-
-def tinder_send_http(d, status, _log):
- """
- Send this log as build status
- """
-
- # get the body and type
- server = d.getVar('TINDER_HOST')
- url = d.getVar('TINDER_URL')
-
- selector = url + "/xml/build_status.pl"
-
- # now post it - in chunks of 10.000 characters
- new_log = _log
- while len(new_log) > 0:
- content_type, body = tinder_format_http_post(d,status,new_log[0:18000])
- errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body)
- #print(errcode, errmsg, headers)
- #print(h.file.read())
- new_log = new_log[18000:]
-
-
-def tinder_print_info(d):
- """
- Print the TinderBox Info
- Including informations of the BaseSystem and the Tree
- we use.
- """
-
- # get the local vars
- time = tinder_time_string()
- ops = os.uname()[0]
- version = os.uname()[2]
- url = d.getVar('TINDER_URL')
- tree = d.getVar('TINDER_TREE')
- branch = d.getVar('TINDER_BRANCH')
- srcdate = d.getVar('SRCDATE')
- machine = d.getVar('MACHINE')
- distro = d.getVar('DISTRO')
- bbfiles = d.getVar('BBFILES')
- tarch = d.getVar('TARGET_ARCH')
- fpu = d.getVar('TARGET_FPU')
- oerev = d.getVar('OE_REVISION') or "unknown"
-
- # there is a bug with tipple quoted strings
- # i will work around but will fix the original
- # bug as well
- output = []
- output.append("== Tinderbox Info" )
- output.append("Time: %(time)s" )
- output.append("OS: %(ops)s" )
- output.append("%(version)s" )
- output.append("Compiler: gcc" )
- output.append("Tinderbox Client: 0.1" )
- output.append("Tinderbox Client Last Modified: yesterday" )
- output.append("Tinderbox Protocol: 0.1" )
- output.append("URL: %(url)s" )
- output.append("Tree: %(tree)s" )
- output.append("Config:" )
- output.append("branch = '%(branch)s'" )
- output.append("TARGET_ARCH = '%(tarch)s'" )
- output.append("TARGET_FPU = '%(fpu)s'" )
- output.append("SRCDATE = '%(srcdate)s'" )
- output.append("MACHINE = '%(machine)s'" )
- output.append("DISTRO = '%(distro)s'" )
- output.append("BBFILES = '%(bbfiles)s'" )
- output.append("OEREV = '%(oerev)s'" )
- output.append("== End Tinderbox Client Info" )
-
- # now create the real output
- return "\n".join(output) % vars()
-
-
-def tinder_print_env():
- """
- Print the environment variables of this build
- """
- time_start = tinder_time_string()
- time_end = tinder_time_string()
-
- # build the environment
- env = ""
- for var in os.environ:
- env += "%s=%s\n" % (var, os.environ[var])
-
- output = []
- output.append( "---> TINDERBOX RUNNING env %(time_start)s" )
- output.append( env )
- output.append( "<--- TINDERBOX FINISHED (SUCCESS) %(time_end)s" )
-
- return "\n".join(output) % vars()
-
-def tinder_tinder_start(d, event):
- """
- PRINT the configuration of this build
- """
-
- time_start = tinder_time_string()
- config = tinder_print_info(d)
- #env = tinder_print_env()
- time_end = tinder_time_string()
- packages = " ".join( event.getPkgs() )
-
- output = []
- output.append( "---> TINDERBOX PRINTING CONFIGURATION %(time_start)s" )
- output.append( config )
- #output.append( env )
- output.append( "<--- TINDERBOX FINISHED PRINTING CONFIGURATION %(time_end)s" )
- output.append( "---> TINDERBOX BUILDING '%(packages)s'" )
- output.append( "<--- TINDERBOX STARTING BUILD NOW" )
-
- output.append( "" )
-
- return "\n".join(output) % vars()
-
-def tinder_do_tinder_report(event):
- """
- Report to the tinderbox:
- On the BuildStart we will inform the box directly
- On the other events we will write to the TINDER_LOG and
- when the Task is finished we will send the report.
-
- The above is not yet fully implemented. Currently we send
- information immediately. The caching/queuing needs to be
- implemented. Also sending more or less information is not
- implemented yet.
-
- We have two temporary files stored in the TMP directory. One file
- contains the assigned machine id for the tinderclient. This id gets
- assigned when we connect the box and start the build process the second
- file is used to workaround an EventHandler limitation. If BitBake is ran
- with the continue option we want the Build to fail even if we get the
- BuildCompleted Event. In this case we have to look up the status and
- send it instead of 100/success.
- """
- import glob
-
- # variables
- name = bb.event.getName(event)
- log = ""
- status = 1
- # Check what we need to do Build* shows we start or are done
- if name == "BuildStarted":
- tinder_build_start(event.data)
- log = tinder_tinder_start(event.data,event)
-
- try:
- # truncate the tinder log file
- f = open(event.data.getVar('TINDER_LOG'), 'w')
- f.write("")
- f.close()
- except:
- pass
-
- try:
- # write a status to the file. This is needed for the -k option
- # of BitBake
- g = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w')
- g.write("")
- g.close()
- except IOError:
- pass
-
- # Append the Task-Log (compile,configure...) to the log file
- # we will send to the server
- if name == "TaskSucceeded" or name == "TaskFailed":
- log_file = glob.glob("%s/log.%s.*" % (event.data.getVar('T'), event.task))
-
- if len(log_file) != 0:
- to_file = event.data.getVar('TINDER_LOG')
- log += "".join(open(log_file[0], 'r').readlines())
-
- # set the right 'HEADER'/Summary for the TinderBox
- if name == "TaskStarted":
- log += "---> TINDERBOX Task %s started\n" % event.task
- elif name == "TaskSucceeded":
- log += "<--- TINDERBOX Task %s done (SUCCESS)\n" % event.task
- elif name == "TaskFailed":
- log += "<--- TINDERBOX Task %s failed (FAILURE)\n" % event.task
- elif name == "PkgStarted":
- log += "---> TINDERBOX Package %s started\n" % event.data.getVar('PF')
- elif name == "PkgSucceeded":
- log += "<--- TINDERBOX Package %s done (SUCCESS)\n" % event.data.getVar('PF')
- elif name == "PkgFailed":
- if not event.data.getVar('TINDER_AUTOBUILD') == "0":
- build.exec_task('do_clean', event.data)
- log += "<--- TINDERBOX Package %s failed (FAILURE)\n" % event.data.getVar('PF')
- status = 200
- # remember the failure for the -k case
- h = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w')
- h.write("200")
- elif name == "BuildCompleted":
- log += "Build Completed\n"
- status = 100
- # Check if we have a old status...
- try:
- h = open(event.data.getVar('TMPDIR')+'/tinder-status', 'r')
- status = int(h.read())
- except:
- pass
-
- elif name == "MultipleProviders":
- log += "---> TINDERBOX Multiple Providers\n"
- log += "multiple providers are available (%s);\n" % ", ".join(event.getCandidates())
- log += "consider defining PREFERRED_PROVIDER_%s\n" % event.getItem()
- log += "is runtime: %d\n" % event.isRuntime()
- log += "<--- TINDERBOX Multiple Providers\n"
- elif name == "NoProvider":
- log += "Error: No Provider for: %s\n" % event.getItem()
- log += "Error:Was Runtime: %d\n" % event.isRuntime()
- status = 200
- # remember the failure for the -k case
- h = open(event.data.getVar('TMPDIR')+"/tinder-status", 'w')
- h.write("200")
-
- # now post the log
- if len(log) == 0:
- return
-
- # for now we will use the http post method as it is the only one
- log_post_method = tinder_send_http
- log_post_method(event.data, status, log)
-
-
-# we want to be an event handler
-addhandler tinderclient_eventhandler
-python tinderclient_eventhandler() {
- if e.data is None or bb.event.getName(e) == "MsgNote":
- return
-
- do_tinder_report = e.data.getVar('TINDER_REPORT')
- if do_tinder_report and do_tinder_report == "1":
- tinder_do_tinder_report(e)
-
- return
-}
diff --git a/meta/classes/toaster.bbclass b/meta/classes/toaster.bbclass
index 6cef0b8f6e..9518ddf7a4 100644
--- a/meta/classes/toaster.bbclass
+++ b/meta/classes/toaster.bbclass
@@ -113,7 +113,7 @@ def _toaster_load_pkgdatafile(dirpath, filepath):
pass # ignore lines without valid key: value pairs
return pkgdata
-python toaster_package_dumpdata() {
+def _toaster_dumpdata(pkgdatadir, d):
"""
Dumps the data about the packages created by a recipe
"""
@@ -122,16 +122,24 @@ python toaster_package_dumpdata() {
if not d.getVar('PACKAGES'):
return
- pkgdatadir = d.getVar('PKGDESTWORK')
lpkgdata = {}
datadir = os.path.join(pkgdatadir, 'runtime')
# scan and send data for each generated package
- for datafile in os.listdir(datadir):
- if not datafile.endswith('.packaged'):
- lpkgdata = _toaster_load_pkgdatafile(datadir, datafile)
- # Fire an event containing the pkg data
- bb.event.fire(bb.event.MetadataEvent("SinglePackageInfo", lpkgdata), d)
+ if os.path.exists(datadir):
+ for datafile in os.listdir(datadir):
+ if not datafile.endswith('.packaged'):
+ lpkgdata = _toaster_load_pkgdatafile(datadir, datafile)
+ # Fire an event containing the pkg data
+ bb.event.fire(bb.event.MetadataEvent("SinglePackageInfo", lpkgdata), d)
+
+python toaster_package_dumpdata() {
+ _toaster_dumpdata(d.getVar('PKGDESTWORK'), d)
+}
+
+python toaster_packagedata_dumpdata() {
+ # This path needs to match do_packagedata[sstate-inputdirs]
+ _toaster_dumpdata(os.path.join(d.getVar('WORKDIR'), 'pkgdata-pdata-input'), d)
}
# 2. Dump output image files information
@@ -366,8 +374,8 @@ toaster_buildhistory_dump[eventmask] = "bb.event.BuildCompleted"
addhandler toaster_artifacts
toaster_artifacts[eventmask] = "bb.runqueue.runQueueTaskSkipped bb.runqueue.runQueueTaskCompleted"
-do_packagedata_setscene[postfuncs] += "toaster_package_dumpdata "
-do_packagedata_setscene[vardepsexclude] += "toaster_package_dumpdata "
+do_packagedata_setscene[postfuncs] += "toaster_packagedata_dumpdata "
+do_packagedata_setscene[vardepsexclude] += "toaster_packagedata_dumpdata "
do_package[postfuncs] += "toaster_package_dumpdata "
do_package[vardepsexclude] += "toaster_package_dumpdata "
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 3326c0db3d..1e19917a97 100644
--- a/meta/classes/uninative.bbclass
+++ b/meta/classes/uninative.bbclass
@@ -1,4 +1,4 @@
-UNINATIVE_LOADER ?= "${UNINATIVE_STAGING_DIR}-uninative/${BUILD_ARCH}-linux/lib/${@bb.utils.contains('BUILD_ARCH', 'x86_64', 'ld-linux-x86-64.so.2', '', d)}${@bb.utils.contains('BUILD_ARCH', 'i686', 'ld-linux.so.2', '', d)}${@bb.utils.contains('BUILD_ARCH', 'aarch64', 'ld-linux-aarch64.so.1', '', d)}"
+UNINATIVE_LOADER ?= "${UNINATIVE_STAGING_DIR}-uninative/${BUILD_ARCH}-linux/lib/${@bb.utils.contains('BUILD_ARCH', 'x86_64', 'ld-linux-x86-64.so.2', '', d)}${@bb.utils.contains('BUILD_ARCH', 'i686', 'ld-linux.so.2', '', d)}${@bb.utils.contains('BUILD_ARCH', 'aarch64', 'ld-linux-aarch64.so.1', '', d)}${@bb.utils.contains('BUILD_ARCH', 'ppc64le', 'ld64.so.2', '', d)}"
UNINATIVE_STAGING_DIR ?= "${STAGING_DIR}"
UNINATIVE_URL ?= "unset"
@@ -45,7 +45,7 @@ python uninative_event_fetchloader() {
tarballdir = os.path.join(d.getVar("UNINATIVE_DLDIR"), chksum)
tarballpath = os.path.join(tarballdir, tarball)
- if not os.path.exists(tarballpath):
+ if not os.path.exists(tarballpath + ".done"):
bb.utils.mkdirhier(tarballdir)
if d.getVar("UNINATIVE_URL") == "unset":
bb.fatal("Uninative selected but not configured, please set UNINATIVE_URL")
@@ -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 263d8aea4f..1b5cde2cbb 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -11,6 +11,7 @@ baselib = "${BASELIB}"
baselib[vardepvalue] = "${baselib}"
BASELIB = "lib"
BASELIB_powerpc64 = "lib64"
+BASELIB_powerpc64le = "lib64"
# Path prefixes
export base_prefix = ""
@@ -129,7 +130,7 @@ SDKUSE_NLS ??= "yes"
TARGET_ARCH = "${TUNE_ARCH}"
TARGET_OS = "linux${LIBCEXTENSION}${ABIEXTENSION}"
TARGET_VENDOR = "-oe"
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}${@['-' + d.getVar('TARGET_OS'), ''][d.getVar('TARGET_OS') == ('' or 'custom')]}"
+TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
TARGET_PREFIX = "${TARGET_SYS}-"
TARGET_CC_ARCH = "${TUNE_CCARGS}"
TARGET_LD_ARCH = "${TUNE_LDARGS}"
@@ -138,7 +139,7 @@ TARGET_AS_ARCH = "${TUNE_ASARGS}"
SDKMACHINE ??= "x86_64"
SDK_OS = "${BUILD_OS}"
SDK_VENDOR = "-oesdk"
-SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}${@['-' + d.getVar('SDK_OS'), ''][d.getVar('SDK_OS') == ('' or 'custom')]}"
+SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}"
SDK_PREFIX = "${SDK_SYS}-"
SDK_CC_ARCH = "${BUILD_CC_ARCH}"
SDKPKGSUFFIX = "nativesdk"
@@ -207,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}"
@@ -251,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"
@@ -266,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 = ""
@@ -324,7 +326,7 @@ FILES_${PN}-staticdev = "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a"
SECTION_${PN}-staticdev = "devel"
RDEPENDS_${PN}-staticdev = "${PN}-dev (= ${EXTENDPKGV})"
-FILES_${PN}-dbg = "/usr/lib/debug /usr/src/debug"
+FILES_${PN}-dbg = "/usr/lib/debug /usr/lib/debug-static /usr/src/debug"
SECTION_${PN}-dbg = "devel"
ALLOW_EMPTY_${PN}-dbg = "1"
@@ -355,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"
@@ -429,7 +434,8 @@ SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
OLDEST_KERNEL = "3.2.0"
OLDEST_KERNEL_aarch64 = "3.14"
OLDEST_KERNEL_nios2 = "3.19"
-OLDEST_KERNEL_riscv32 = "4.15"
+OLDEST_KERNEL_powerpc64le = "3.10.0"
+OLDEST_KERNEL_riscv32 = "5.4"
OLDEST_KERNEL_riscv64 = "4.15"
# SDK_OLDEST_KERNEL can't be set using overrides since there are
@@ -449,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.
@@ -481,14 +482,14 @@ export PATH
HOSTTOOLS_DIR = "${TMPDIR}/hosttools"
# Tools needed to run builds with OE-Core
-# python is special cased to point at python2
HOSTTOOLS += " \
[ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp comm cp cpio \
cpp cut date dd diff diffstat dirname du echo egrep env expand expr false \
fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \
- head hostname iconv id install ld ldd ln ls make makeinfo md5sum mkdir mknod \
- mktemp mv nm objcopy objdump od patch perl pod2man pr printf pwd python2 \
- python2.7 python3 ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh sha256sum \
+ 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 \
+ sha1sum sha224sum sha256sum sha384sum sha512sum \
sleep sort split stat strings strip tail tar tee test touch tr true uname \
uniq wc wget which xargs \
"
@@ -587,8 +588,6 @@ export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \
BUILDSDK_LDFLAGS = "-Wl,-O1"
LINKER_HASH_STYLE ??= "gnu"
-# mips does not support GNU hash style therefore we override
-LINKER_HASH_STYLE_mipsarch = "sysv"
TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_STYLE') != 'gnu']}"
@@ -596,6 +595,8 @@ ASNEEDED ?= "-Wl,--as-needed"
export LDFLAGS = "${TARGET_LDFLAGS}"
TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}"
+# mips does not support GNU hash style therefore we override
+LINKER_HASH_STYLE_mipsarch_libc-musl = "sysv"
# Pass parallel make options to the compile task
EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} "
@@ -684,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"
@@ -700,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"
@@ -716,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
###
@@ -793,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
@@ -824,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"
@@ -865,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 \
@@ -885,7 +896,7 @@ BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \
file-checksums python func task export unexport noexec nostamp dirs cleandirs \
sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask \
recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno \
- progress mcdepends"
+ progress mcdepends number_threads"
MLPREFIX ??= ""
MULTILIB_VARIANTS ??= ""
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/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc
index 10d86cf7b1..433d4b6651 100644
--- a/meta/conf/distro/include/default-distrovars.inc
+++ b/meta/conf/distro/include/default-distrovars.inc
@@ -10,7 +10,7 @@ LOCALE_UTF8_ONLY ?= "0"
LOCALE_UTF8_IS_DEFAULT ?= "1"
LOCALE_UTF8_IS_DEFAULT_class-nativesdk = "0"
-DISTRO_FEATURES_DEFAULT ?= "acl alsa argp bluetooth ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11"
+DISTRO_FEATURES_DEFAULT ?= "acl alsa argp bluetooth ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat"
DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
IMAGE_FEATURES ?= ""
diff --git a/meta/conf/distro/include/distro_alias.inc b/meta/conf/distro/include/distro_alias.inc
index e314642b9c..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-bjam = "OpenSuSE=boost-jam Debina=bjam"
+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"
@@ -130,7 +124,7 @@ DISTRO_PN_ALIAS_pn-initramfs-live-install = "OE-Core"
DISTRO_PN_ALIAS_pn-initramfs-live-install-efi = "OE-Core"
DISTRO_PN_ALIAS_pn-initramfs-live-install-efi-testfs = "OE-Core"
DISTRO_PN_ALIAS_pn-initramfs-live-install-testfs = "OE-Core"
-DISTRO_PN_ALIAS_pn-initscripts = "Fedora=initscripts Mandravia=initscripts"
+DISTRO_PN_ALIAS_pn-initscripts = "Fedora=initscripts Mandriva=initscripts"
DISTRO_PN_ALIAS_pn-iproute2 = "OSPDT"
DISTRO_PN_ALIAS_pn-jpeg = "OpenSuSE=libjpeg Ubuntu=libjpeg62"
DISTRO_PN_ALIAS_pn-kernel-devsrc = "Debian=linux-base Ubuntu=linux"
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index ab0c6c5541..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,35 +28,36 @@
# 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>"
RECIPE_MAINTAINER_pn-alsa-tools = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-alsa-topology-conf = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-alsa-ucm-conf = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-alsa-utils = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-alsa-utils-scripts = "Tanu Kaskinen <tanuk@iki.fi>"
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>"
@@ -69,19 +70,19 @@ 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>"
RECIPE_MAINTAINER_pn-buildtools-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-busybox = "Andrej Valek <andrej.valek@siemens.com>"
RECIPE_MAINTAINER_pn-busybox-inittab = "Denys Dmytriyenko <denys@ti.com>"
@@ -91,19 +92,16 @@ RECIPE_MAINTAINER_pn-cairo = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-cantarell-fonts = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-ccache = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-cdrtools-native = "Yi Zhao <yi.zhao@windriver.com>"
-RECIPE_MAINTAINER_pn-chkconfig = "Yi Zhao <yi.zhao@windriver.com>"
-RECIPE_MAINTAINER_pn-chkconfig-alternatives-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-console-tools = "Chen Qi <Qi.Chen@windriver.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,19 +132,19 @@ 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-check-tool = "Ross Burton <ross.burton@intel.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>"
RECIPE_MAINTAINER_pn-distcc = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -159,15 +157,15 @@ 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-enchant = "Anuj Mittal <anuj.mittal@intel.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>"
RECIPE_MAINTAINER_pn-ethtool = "Changhyeok Bae <changhyeok.bae@gmail.com>"
@@ -181,31 +179,26 @@ 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-foomatic-filters = "Chen Qi <Qi.Chen@windriver.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>"
RECIPE_MAINTAINER_pn-gcc-cross-${TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gcc-cross-initial-${TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gcc-crosssdk-initial-${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-8.3.0 = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gcc-source-9.2.0 = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gccmakedep = "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>"
@@ -220,13 +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-themes-standard = "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>"
@@ -257,22 +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+ = "Ross Burton <ross.burton@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-gtk-icon-utils-native = "Ross Burton <ross.burton@intel.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>"
@@ -286,12 +279,15 @@ 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>"
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>"
@@ -340,24 +336,23 @@ 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 = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-libnewt-python = "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>"
RECIPE_MAINTAINER_pn-libnsl2 = "Khem Raj <raj.khem@gmail.com>"
@@ -367,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>"
@@ -393,15 +388,20 @@ RECIPE_MAINTAINER_pn-libtirpc = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libtool = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libtool-cross = "Robert Yang <liezhi.yang@windriver.com>"
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>"
RECIPE_MAINTAINER_pn-libxau = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxcb = "Armin Kuster <akuster808@gmail.com>"
@@ -440,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>"
@@ -451,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>"
@@ -470,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>"
@@ -496,7 +497,6 @@ RECIPE_MAINTAINER_pn-meta-world-pkgdata = "Richard Purdie <richard.purdie@linuxf
RECIPE_MAINTAINER_pn-mingetty = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-mini-x-session = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-minicom = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-mkfontdir = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-mkfontscale = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-mklibs-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-mmc-utils = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -505,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>"
@@ -518,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>"
@@ -531,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>"
@@ -543,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>"
@@ -557,54 +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-perl-native = "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-python = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python-native = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python-setuptools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.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-file-utils = "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-native = "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>"
@@ -623,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>"
@@ -648,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>"
@@ -657,7 +660,6 @@ RECIPE_MAINTAINER_pn-swig = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-sysfsutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-sysklogd = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-syslinux = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-sysprof = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-sysstat = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-boot = "Chen Qi <Qi.Chen@windriver.com>"
@@ -670,15 +672,14 @@ 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>"
RECIPE_MAINTAINER_pn-tcl = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-tcp-wrappers = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-testexport-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER_pn-texi2html = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-texinfo = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-texinfo-dummy-native = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-tiff = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -687,14 +688,13 @@ RECIPE_MAINTAINER_pn-ttf-bitstream-vera = "Anuj Mittal <anuj.mittal@intel.com>"
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-fw-utils = "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>"
@@ -707,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>"
@@ -724,6 +724,7 @@ RECIPE_MAINTAINER_pn-which = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-wic-tools = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-wireless-regdb = "Adrian Bunk <bunk@kernel.org>"
RECIPE_MAINTAINER_pn-wpa-supplicant = "Changhyeok Bae <changhyeok.bae@gmail.com>"
+RECIPE_MAINTAINER_pn-wpebackend-fdo = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-x11perf = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-x264 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-xauth = "Armin Kuster <akuster808@gmail.com>"
@@ -750,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/no-static-libs.inc b/meta/conf/distro/include/no-static-libs.inc
index 4141ecb765..a3a865cac4 100644
--- a/meta/conf/distro/include/no-static-libs.inc
+++ b/meta/conf/distro/include/no-static-libs.inc
@@ -15,10 +15,6 @@ DISABLE_STATIC_pn-nativesdk-libcap = ""
DISABLE_STATIC_pn-libpcap = ""
# needed by gdb
DISABLE_STATIC_pn-readline = ""
-# needed by pseudo
-DISABLE_STATIC_pn-sqlite3 = ""
-DISABLE_STATIC_pn-sqlite3-native = ""
-DISABLE_STATIC_pn-nativesdk-sqlite3 = ""
# openjade/sgml-common have build issues without static libs
DISABLE_STATIC_pn-sgml-common-native = ""
DISABLE_STATIC_pn-openjade-native = ""
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index bb4724cf52..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,33 +43,40 @@ 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
-# mdadm-ptest \ # Timeout
# clutter-1.0-ptest \ # Doesn't build due to depends on cogl-1.0
+# lz4-ptest \ # Needs a rewrite
+# rt-tests-ptest \ # Needs to be checked whether it runs at all
+# bash-ptest \ # Test outcomes are non-deterministic by design
+# ifupdown-ptest \ # Tested separately in lib/oeqa/selftest/cases/imagefeatures.py
+# mdadm-ptest \ # Tests rely on non-deterministic sleep() amounts
#"
PTESTS_SLOW = "\
- bash-ptest \
+ 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 \
- mdadm-ptest \
openssh-ptest \
openssl-ptest \
perl-ptest \
- python-ptest \
python3-ptest \
strace-ptest \
tcl-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/tclibc-baremetal.inc b/meta/conf/distro/include/tclibc-baremetal.inc
index e04f8c8812..31d132e1d2 100644
--- a/meta/conf/distro/include/tclibc-baremetal.inc
+++ b/meta/conf/distro/include/tclibc-baremetal.inc
@@ -27,7 +27,7 @@ BASEDEPENDS_remove_class-target = "virtual/${TARGET_PREFIX}compilerlibs"
TARGET_OS = "elf"
TARGET_OS_arm = "eabi"
-TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE}"
+TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE} nativesdk-qemu"
TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
TOOLCHAIN_TARGET_TASK ?= "libgcc-dev"
TOOLCHAIN_NEED_CONFIGSITE_CACHE_remove = "virtual/${MLPREFIX}libc zlib ncurses"
diff --git a/meta/conf/distro/include/tclibc-newlib.inc b/meta/conf/distro/include/tclibc-newlib.inc
index 896c0b16d7..bf89b11288 100644
--- a/meta/conf/distro/include/tclibc-newlib.inc
+++ b/meta/conf/distro/include/tclibc-newlib.inc
@@ -25,12 +25,11 @@ LIBC_DEPENDENCIES = "\
libgloss-dbg \
libgcc-dev \
libgcc-dbg \
+ libstdc++-dev \
+ libstdc++-staticdev \
"
-# compilerlibs defaults to gcc-runtime, but we get runtime from libgloss
-# we set ASSUME_PROVIDED because we cant set PREFERRED_PROVIDER
-# for compilerlibs since its overridden by tcmode-default
-ASSUME_PROVIDED += "virtual/${TARGET_PREFIX}compilerlibs virtual/crypt"
+ASSUME_PROVIDED += "virtual/crypt"
# Its useful to be able to extend newlib, but we dont provide a native variant of libgloss
NEWLIB_EXTENDED ?= "libgloss libgcc"
@@ -39,7 +38,7 @@ BASE_DEFAULT_DEPS_append_class-target = " ${NEWLIB_EXTENDED}"
TARGET_OS = "elf"
TARGET_OS_arm = "eabi"
-TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE}"
+TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE} nativesdk-qemu"
TOOLCHAIN_TARGET_TASK ?= "${LIBC_DEPENDENCIES}"
TOOLCHAIN_NEED_CONFIGSITE_CACHE_remove = "zlib ncurses"
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index d8f434609b..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.32%"
-GDBVERSION ?= "8.3%"
-GLIBCVERSION ?= "2.30%"
-LINUXLIBCVERSION ?= "5.2%"
-QEMUVERSION ?= "4.1%"
-GOVERSION ?= "1.12%"
+BINUVERSION ?= "2.35%"
+GDBVERSION ?= "9.%"
+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 ?= "8.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 550df20b0f..eee3c43ff2 100644
--- a/meta/conf/documentation.conf
+++ b/meta/conf/documentation.conf
@@ -64,11 +64,15 @@ 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."
AUTO_SYSLINUXMENU[doc] = "Enables creating an automatic menu for the syslinux bootloader."
AUTOREV[doc] = "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
+AVAILABLE_LICENSES[doc] = "List of licenses found in the directories specified by COMMON_LICENSE_DIR and LICENSE_PATH."
#B
@@ -113,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 distro_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
@@ -177,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."
@@ -307,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."
@@ -346,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 distro_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."
@@ -392,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 7b01c57632..5b309eb385 100644
--- a/meta/conf/licenses.conf
+++ b/meta/conf/licenses.conf
@@ -1,48 +1,7 @@
-# These aren't actually used anywhere that I can tell
-# They may be in the future (or are used by someone else
-# For completion sake, I've updated them
-SRC_DISTRIBUTE_LICENSES += "AAL Adobe AFL-1.2 AFL-2.0 AFL-2.1 AFL-3.0"
-SRC_DISTRIBUTE_LICENSES += "AGPL-3.0 ANTLR-PD Apache-1.0 Apache-1.1 Apache-2.0"
-SRC_DISTRIBUTE_LICENSES += "APL-1.0 APSL-1.0 APSL-1.1 APSL-1.2 APSL-2.0"
-SRC_DISTRIBUTE_LICENSES += "Artistic-1.0 Artistic-2.0 BitstreamVera BSD"
-SRC_DISTRIBUTE_LICENSES += "BSD-2-Clause BSD-3-Clause BSD-4-Clause BSL-1.0"
-SRC_DISTRIBUTE_LICENSES += "CATOSL-1.1 CC0-1.0 CC-BY-1.0 CC-BY-2.0 CC-BY-2.5"
-SRC_DISTRIBUTE_LICENSES += "CC-BY-3.0 CC-BY-NC-1.0 CC-BY-NC-2.0 CC-BY-NC-2.5"
-SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-3.0 CC-BY-NC-ND-1.0 CC-BY-NC-ND-2.0"
-SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-ND-2.5 CC-BY-NC-ND-3.0 CC-BY-NC-SA-1.0"
-SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.5 CC-BY-NC-SA-3.0"
-SRC_DISTRIBUTE_LICENSES += "CC-BY-ND-1.0 CC-BY-ND-2.0 CC-BY-ND-2.5 CC-BY-ND-3.0"
-SRC_DISTRIBUTE_LICENSES += "CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0 CC-BY-SA-4.0"
-SRC_DISTRIBUTE_LICENSES += "CDDL-1.0 CECILL-1.0 CECILL-2.0 CECILL-B CECILL-C"
-SRC_DISTRIBUTE_LICENSES += "ClArtistic CPAL-1.0 CPL-1.0 CUA-OPL-1.0 DSSSL"
-SRC_DISTRIBUTE_LICENSES += "ECL-1.0 ECL-2.0 eCos-2.0 EDL-1.0 EFL-1.0 EFL-2.0"
-SRC_DISTRIBUTE_LICENSES += "Entessa EPL-1.0 EPL-2.0 ErlPL-1.1"
-SRC_DISTRIBUTE_LICENSES += "EUDatagrid EUPL-1.0 EUPL-1.1 Fair Frameworx-1.0"
-SRC_DISTRIBUTE_LICENSES += "FreeType GFDL-1.1 GFDL-1.2 GFDL-1.3 GPL-1.0"
-SRC_DISTRIBUTE_LICENSES += "GPL-2.0 GPL-2.0-with-autoconf-exception"
-SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-classpath-exception"
-SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-font-exception"
-SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-GCC-exception"
-SRC_DISTRIBUTE_LICENSES += "GPL-2-with-bison-exception GPL-3.0"
-SRC_DISTRIBUTE_LICENSES += "GPL-3.0-with-autoconf-exception"
-SRC_DISTRIBUTE_LICENSES += "GPL-3.0-with-GCC-exception"
-SRC_DISTRIBUTE_LICENSES += "gSOAP-1 gSOAP-1.3b HPND IPA IPL-1.0 ISC LGPL-2.0"
-SRC_DISTRIBUTE_LICENSES += "LGPL-2.1 LGPL-3.0 Libpng LPL-1.02 LPPL-1.0 LPPL-1.1"
-SRC_DISTRIBUTE_LICENSES += "LPPL-1.2 LPPL-1.3c MirOS MIT Motosoto MPL-1.0"
-SRC_DISTRIBUTE_LICENSES += "MPL-1.1 MS-PL MS-RL Multics NASA-1.3 Nauman NCSA"
-SRC_DISTRIBUTE_LICENSES += "NGPL Nokia NPOSL-3.0 NTP OASIS OCLC-2.0 ODbL-1.0"
-SRC_DISTRIBUTE_LICENSES += "OFL-1.1 OGTSL OLDAP-2.8 OpenSSL OSL-1.0 OSL-2.0"
-SRC_DISTRIBUTE_LICENSES += "OSL-3.0 PD PHP-3.0 PostgreSQL Proprietary"
-SRC_DISTRIBUTE_LICENSES += "Python-2.0 QPL-1.0 RHeCos-1 RHeCos-1.1 RPL-1.5"
-SRC_DISTRIBUTE_LICENSES += "RPSL-1.0 RSCPL Ruby SAX-PD SGI-1 Simple-2.0 Sleepycat"
-SRC_DISTRIBUTE_LICENSES += "SPL-1.0 SugarCRM-1 SugarCRM-1.1.3 UCB VSL-1.0 W3C"
-SRC_DISTRIBUTE_LICENSES += "Watcom-1.0 WXwindows XFree86-1.0 XFree86-1.1 Xnet XSL YPL-1.1"
-SRC_DISTRIBUTE_LICENSES += "Zimbra-1.3 Zlib ZPL-1.1 ZPL-2.0 ZPL-2.1"
-
# Standards are great! Everyone has their own. In an effort to standardize licensing
# names, common-licenses will use the SPDX standard license names. In order to not
# break the non-standardized license names that we find in LICENSE, we'll set
-# up a bunch of VarFlags to accomodate non-SPDX license names.
+# up a bunch of VarFlags to accommodate non-SPDX license names.
#
# We should really discuss standardizing this field, but that's a longer term goal.
# For now, we can do this and it should grab the most common LICENSE naming variations.
@@ -86,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
@@ -188,5 +149,3 @@ FOSS_BASE_URL = "http://localhost/repo/?mod=spdx_license_once"
FOSS_SERVER = "${FOSS_BASE_URL}&fullSPDXFlag=${FOSS_FULL_SPDX}&noCopyright=${FOSS_NO_COPYRIGHT}&recursiveUnpack=${FOSS_RECURSIVE_UNPACK}"
FOSS_WGET_FLAGS = "-qO - --no-check-certificate --timeout=0"
-
-
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 fcf4a9b7c1..420b09b7d7 100644
--- a/meta/conf/local.conf.sample.extended
+++ b/meta/conf/local.conf.sample.extended
@@ -23,6 +23,14 @@
#
# For a quad-core machine, BB_NUMBER_THREADS = "4", PARALLEL_MAKE = "-j 4" would
# be appropriate for example.
+#
+# Some users are behind firewalls or use servers where the number of parallel connections
+# is limited. In such cases you can limit the number of fetch tasks which run in parallel by
+# setting the option below, in this case limiting to a maximum of 4 fetch tasks in parallel:
+#
+#do_fetch[number_threads] = "4"
+#
+
#DISTRO_FEATURES = "alsa bluetooth ext2 irda ipv4 ipv6 pcmcia usbgadget usbhost wifi nfs zeroconf pci"
@@ -121,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.
#
@@ -302,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/microblaze/arch-microblaze.inc b/meta/conf/machine/include/microblaze/arch-microblaze.inc
index eab7171cb2..4f58076ac9 100644
--- a/meta/conf/machine/include/microblaze/arch-microblaze.inc
+++ b/meta/conf/machine/include/microblaze/arch-microblaze.inc
@@ -4,35 +4,41 @@
TUNEVALID[microblaze] = "MicroBlaze"
MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "", d)}"
+# 64-bit
+TUNEVALID[64-bit] = "64-bit MicroBlaze"
+TUNECONFLICTS[64-bit] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6 v10.0"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "64-bit", "microblaze64:", "", d)}"
+
# Endian
TUNEVALID[bigendian] = "Use Microblaze Big Endian"
-TUNECONFLICTS[bigendian] += "v10.0"
+TUNECONFLICTS[bigendian] = "v10.0"
MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el", d)}"
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "-mbig-endian", "-mlittle-endian", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endian", " -mlittle-endian", d)}"
# General features
TUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter"
TUNEVALID[pattern-compare] = "Enable Pattern Compare Instructions"
TUNEVALID[reorder] = "Enable Reorder Instructions"
-TUNECONFLICTS[reorder] += "v8.00 v8.10 v8.20"
+TUNECONFLICTS[reorder] = "v8.00 v8.10 v8.20"
# Core configuration tune optimizations
TUNEVALID[frequency-optimized] = "Enabling tuning for frequency optimized core (AREA_OPTIMIZED_2)"
-TUNECONFLICTS[frequency-optimized] += "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6"
+TUNECONFLICTS[frequency-optimized] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6"
# Feature compiler args
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-mxl-barrel-shift", "-mno-xl-barrel-shift", d)}"
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-mxl-pattern-compare", "-mno-xl-pattern-compare", d)}"
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-mxl-frequency", "", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", " -mxl-barrel-shift", " -mno-xl-barrel-shift", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", " -mxl-pattern-compare", " -mno-xl-pattern-compare", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", " -mxl-frequency", "", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "64-bit", " -m64", "", d)}"
# Disable reorder for v8.30 if pattern-compare is not enabled
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "reorder", \
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", \
bb.utils.contains("TUNE_FEATURES", "v8.30", \
bb.utils.contains("TUNE_FEATURES", "pattern-compare", \
- "-mxl-reorder", "-mno-xl-reorder", d), \
- "-mxl-reorder", d), "-mno-xl-reorder", d)}"
+ " -mxl-reorder", " -mno-xl-reorder", d), \
+ " -mxl-reorder", d), " -mno-xl-reorder", d)}"
# Feature package architecture formatting
MBPKGARCH_TUNE = ""
@@ -45,9 +51,12 @@ MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized",
require conf/machine/include/microblaze/feature-microblaze-versions.inc
require conf/machine/include/microblaze/feature-microblaze-math.inc
-# Architecture name, either 'microblazeeb' or 'microblazeel' depending on endianess
-TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el", d)}"
+# Architecture name, either 'microblaze' or 'microblazeel' depending on endianess
+TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "bigendian", "", "el", d)}"
+
+# Add 64-bit to the PKGARCH if enabled.
+MBPKGARCH_SIZE = "${@bb.utils.contains("TUNE_FEATURES", "64-bit", "64", "", d)}"
# Package Architecture formatting
-TUNE_PKGARCH = "microblaze${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${MBPKGARCH_TUNE}${MBPKGARCH_MATH}"
+TUNE_PKGARCH = "microblaze${MBPKGARCH_SIZE}${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${MBPKGARCH_TUNE}${MBPKGARCH_MATH}"
diff --git a/meta/conf/machine/include/microblaze/feature-microblaze-math.inc b/meta/conf/machine/include/microblaze/feature-microblaze-math.inc
index a31516659c..cba0ae67e3 100644
--- a/meta/conf/machine/include/microblaze/feature-microblaze-math.inc
+++ b/meta/conf/machine/include/microblaze/feature-microblaze-math.inc
@@ -13,14 +13,14 @@ TUNECONFLICTS[fpu-hard] = "fpu-soft"
TUNECONFLICTS[fpu-hard-extended] = "fpu-soft"
# Compiler args
-TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], '-mno-xl-soft-mul', '-mxl-soft-mul', d)}"
-TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mxl-multiply-high', '', d)}"
+TUNE_CCARGS .= "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], ' -mno-xl-soft-mul', ' -mxl-soft-mul', d)}"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', ' -mxl-multiply-high', '', d)}"
-TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-mno-xl-soft-div', '-mxl-soft-div', d)}"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', ' -mno-xl-soft-div', ' -mxl-soft-div', d)}"
-TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}"
-TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], '-mhard-float', '', d)}"
-TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-mxl-float-convert -mxl-float-sqrt', '', d)}"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}"
+TUNE_CCARGS .= "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], ' -mhard-float', '', d)}"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', ' -mxl-float-convert -mxl-float-sqrt', '', d)}"
# Set target fpu (bitbake known target) to soft or hard (basic or extended)
TARGET_FPU = "${@bb.utils.contains_any('TUNE_FEATURES', 'fpu-hard fpu-hard-extended', 'fpu-hard', 'fpu-soft', d)}"
diff --git a/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc b/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc
index 955674fff9..5c37f49abb 100644
--- a/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc
+++ b/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc
@@ -44,6 +44,7 @@ TUNEVALID[v9.4] = "MicroBlaze version 9.4"
TUNEVALID[v9.5] = "MicroBlaze version 9.5"
TUNEVALID[v9.6] = "MicroBlaze version 9.6"
TUNEVALID[v10.0] = "MicroBlaze version 10.0"
+TUNEVALID[v11.0] = "MicroBlaze version 11.0"
# Version conflict matrix
TUNECONFLICTS[v8.00] = ""
@@ -60,8 +61,9 @@ TUNECONFLICTS[v9.4] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3"
TUNECONFLICTS[v9.5] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4"
TUNECONFLICTS[v9.6] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5"
TUNECONFLICTS[v10.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6"
+TUNECONFLICTS[v11.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6 v10.0"
# Version flags
-TUNE_CCARGS += "-mcpu=${@microblaze_current_version(d, True)}"
-MBPKGARCH_VERSION = "-${@microblaze_current_version(d)}"
+TUNE_CCARGS += "${@'-mcpu=%s' % (microblaze_current_version(d, True)) if microblaze_current_version(d, True) != '' else ''}"
+MBPKGARCH_VERSION = "${@'-%s' % (microblaze_current_version(d, True)) if microblaze_current_version(d, True) != '' else ''}"
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/powerpc/arch-powerpc.inc b/meta/conf/machine/include/powerpc/arch-powerpc.inc
index 8c0c943044..ef18e9ac8b 100644
--- a/meta/conf/machine/include/powerpc/arch-powerpc.inc
+++ b/meta/conf/machine/include/powerpc/arch-powerpc.inc
@@ -15,7 +15,8 @@ TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endia
TUNEVALID[m32] = "Power ELF32 standard ABI"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', ' -m32', '', d)}"
-TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', 'powerpc', '', d)}"
+TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', 'powerpc${ENDIAN_SFX}', '', d)}"
+ENDIAN_SFX = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'le', d)}"
TUNEVALID[fpu-hard] = "Use hardware FPU."
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', ' -mhard-float', '', d)}"
diff --git a/meta/conf/machine/include/powerpc/arch-powerpc64.inc b/meta/conf/machine/include/powerpc/arch-powerpc64.inc
index 4bc5983087..cf5c3ef8e6 100644
--- a/meta/conf/machine/include/powerpc/arch-powerpc64.inc
+++ b/meta/conf/machine/include/powerpc/arch-powerpc64.inc
@@ -5,7 +5,7 @@ require conf/machine/include/powerpc/arch-powerpc.inc
TUNEVALID[m64] = "Power ELF64 standard ABI"
TUNECONFLICTS[m64] = "m32 nf"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', ' -m64', '', d)}"
-TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', [ 'm64' ], 'powerpc64', '', d)}"
+TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', [ 'm64' ], 'powerpc64${ENDIAN_SFX}', '', d)}"
# musl only supports elfv2 ABI for ppc64
TUNE_CCARGS .= "${@['', ' -mabi=elfv2']['libc-musl' in d.getVar('OVERRIDES').split(':')]}"
diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc
index 5050e41066..8dedb1a42d 100644
--- a/meta/conf/machine/include/qemu.inc
+++ b/meta/conf/machine/include/qemu.inc
@@ -9,7 +9,7 @@ XSERVER ?= "xserver-xorg \
xf86-video-fbdev \
"
-MACHINE_FEATURES = "alsa bluetooth usbgadget screen"
+MACHINE_FEATURES = "alsa bluetooth usbgadget screen vfat"
MACHINEOVERRIDES =. "qemuall:"
diff --git a/meta/conf/machine/include/qemuboot-mips.inc b/meta/conf/machine/include/qemuboot-mips.inc
index 978820a2e0..230f032c53 100644
--- a/meta/conf/machine/include/qemuboot-mips.inc
+++ b/meta/conf/machine/include/qemuboot-mips.inc
@@ -2,6 +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 495418fa04..2a4760c717 100644
--- a/meta/conf/machine/include/qemuboot-x86.inc
+++ b/meta/conf/machine/include/qemuboot-x86.inc
@@ -8,9 +8,6 @@ QB_CPU_KVM_x86-64 = "-cpu core2duo"
QB_AUDIO_DRV = "alsa"
QB_AUDIO_OPT = "-soundhw ac97,es1370"
-QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=${UVESA_MODE} oprofile.timer=1 uvesafb.task_timeout=-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_KERNEL_CMDLINE_APPEND = "oprofile.timer=1"
+QB_OPT_APPEND = "-usb -device usb-tablet"
-UVESA_MODE ?= "640x480-32"
diff --git a/meta/conf/machine/include/riscv/arch-riscv.inc b/meta/conf/machine/include/riscv/arch-riscv.inc
index 19f8f3e211..e3dbef7fe3 100644
--- a/meta/conf/machine/include/riscv/arch-riscv.inc
+++ b/meta/conf/machine/include/riscv/arch-riscv.inc
@@ -4,7 +4,13 @@ DEFAULTTUNE ?= "riscv64"
TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}"
TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
-TUNE_CCARGS .= ""
+TUNE_CCARGS_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nf', ' -mabi=lp64', ' ', d)}"
+TUNE_CCARGS_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32nf', ' -mabi=ilp32', ' ', d)}"
# QEMU usermode fails with invalid instruction error (For riscv32)
MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32', ' qemu-usermode', '', d)}"
+
+# Fix: ld: unrecognized option '--hash-style=sysv'
+LINKER_HASH_STYLE_libc-newlib = ""
+# Fix: ld: unrecognized option '--hash-style=gnu'
+LINKER_HASH_STYLE_libc-baremetal = ""
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 25d0463492..028548bf56 100644
--- a/meta/conf/machine/include/riscv/tune-riscv.inc
+++ b/meta/conf/machine/include/riscv/tune-riscv.inc
@@ -3,10 +3,14 @@ require conf/machine/include/riscv/arch-riscv.inc
TUNEVALID[riscv64] = "Enable 64-bit RISC-V optimizations"
TUNEVALID[riscv32] = "Enable 32-bit RISC-V optimizations"
+TUNEVALID[riscv64nf] = "Enable 64-bit RISC-V optimizations no floating point"
+TUNEVALID[riscv32nf] = "Enable 32-bit RISC-V optimizations no floating point"
+
TUNEVALID[bigendian] = "Big endian mode"
-AVAILTUNES += "riscv64 riscv32"
+AVAILTUNES += "riscv64 riscv32 riscv64nf riscv32nf"
+# Default
TUNE_FEATURES_tune-riscv64 = "riscv64"
TUNE_ARCH_tune-riscv64 = "riscv64"
TUNE_PKGARCH_tune-riscv64 = "riscv64"
@@ -17,3 +21,13 @@ TUNE_ARCH_tune-riscv32 = "riscv32"
TUNE_PKGARCH_tune-riscv32 = "riscv32"
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 = "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 = "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 9c948f1766..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)}"
@@ -10,9 +9,9 @@ require conf/machine/include/arm/arch-armv8a.inc
AVAILTUNES += "cortexa32 cortexa32-crypto"
ARMPKGARCH_tune-cortexa32 = "cortexa32"
ARMPKGARCH_tune-cortexa32-crypto = "cortexa32"
-TUNE_FEATURES_tune-cortexa32 = "aarch64 cortexa32 crc"
-TUNE_FEATURES_tune-cortexa32-crypto = "aarch64 cortexa32 crc crypto"
+TUNE_FEATURES_tune-cortexa32 = "armv8a cortexa32 crc"
+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 = "lib64"
-BASE_LIB_tune-cortexa32-crypto = "lib64"
+BASE_LIB_tune-cortexa32 = "lib"
+BASE_LIB_tune-cortexa32-crypto = "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
new file mode 100644
index 0000000000..98e8ebacff
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
@@ -0,0 +1,19 @@
+DEFAULTTUNE ?= "cortexa72-cortexa53"
+
+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)}"
+
+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-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"
+BASE_LIB_tune-cortexa72-cortexa53-crypto = "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-power9.inc b/meta/conf/machine/include/tune-power9.inc
new file mode 100644
index 0000000000..81d6e8e9bf
--- /dev/null
+++ b/meta/conf/machine/include/tune-power9.inc
@@ -0,0 +1,35 @@
+DEFAULTTUNE ?= "ppc64p9le"
+
+require conf/machine/include/powerpc/arch-powerpc64.inc
+
+TUNEVALID[power9] = "Enable IBM Power9 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power9', ' -mcpu=power9', '', d)}"
+
+AVAILTUNES += "ppcp9 ppc64p9 ppcp9le ppc64p9le"
+
+TUNE_FEATURES_tune-ppcp9 = "m32 fpu-hard power9 altivec bigendian"
+BASE_LIB_tune-ppcp9 = "lib"
+TUNE_PKGARCH_tune-ppcp9 = "ppcp9"
+PACKAGE_EXTRA_ARCHS_tune-ppcp9 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp9"
+
+TUNE_FEATURES_tune-ppc64p9 = "m64 fpu-hard power9 altivec bigendian"
+BASE_LIB_tune-ppc64p9 = "lib64"
+TUNE_PKGARCH_tune-ppc64p9 = "ppc64p9"
+PACKAGE_EXTRA_ARCHS_tune-ppc64p9 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p9"
+
+TUNE_FEATURES_tune-ppcp9le = "m32 fpu-hard power9 altivec"
+BASE_LIB_tune-ppcp9le = "lib"
+TUNE_PKGARCH_tune-ppcp9le = "ppcp9le"
+PACKAGE_EXTRA_ARCHS_tune-ppcp9le = "${PACKAGE_EXTRA_ARCHS_tune-powerpcle} ppcp9le"
+
+TUNE_FEATURES_tune-ppc64p9le = "m64 fpu-hard power9 altivec"
+BASE_LIB_tune-ppc64p9le = "lib64"
+TUNE_PKGARCH_tune-ppc64p9le = "ppc64p9le"
+PACKAGE_EXTRA_ARCHS_tune-ppc64p9le = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64le} ppc64p9le"
+
+# glibc configure options to get power9 specific library
+GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'power9', '--with-cpu=power9', '', d)}"
+GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'power9', '--with-cpu=power9', '', d)}"
+
+# QEMU usermode fails with invalid instruction error
+MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'power9', ' qemu-usermode', '', d)}"
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 0227f3c289..a3169b7405 100644
--- a/meta/conf/machine/include/x86-base.inc
+++ b/meta/conf/machine/include/x86-base.inc
@@ -8,7 +8,7 @@
MACHINE_FEATURES += "screen keyboard pci usbhost ext2 ext3 x86 \
acpi serial usbgadget alsa"
-IMAGE_FSTYPES ?= "hddimg"
+IMAGE_FSTYPES ?= "wic"
KERNEL_IMAGETYPE ?= "bzImage"
@@ -18,7 +18,7 @@ SERIAL_CONSOLES ?= "115200;ttyS0"
# kernel-related variables
#
PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ??= "5.2%"
+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 26f40b1419..702b850cbb 100644
--- a/meta/conf/machine/qemuarm.conf
+++ b/meta/conf/machine/qemuarm.conf
@@ -7,19 +7,20 @@ 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"
-QB_MACHINE = "-machine virt"
+QB_MACHINE = "-machine virt,highmem=off"
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 fb4789fdac..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.2%"
+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/machine/qemuriscv64.conf b/meta/conf/machine/qemuriscv64.conf
index 99b48b309b..a753af0576 100644
--- a/meta/conf/machine/qemuriscv64.conf
+++ b/meta/conf/machine/qemuriscv64.conf
@@ -4,6 +4,8 @@
require conf/machine/include/riscv/qemuriscv.inc
+XVISOR_PLAT = "riscv/virt64"
+
EXTRA_IMAGEDEPENDS += "u-boot"
-UBOOT_MACHINE = "qemu-riscv64_defconfig"
+UBOOT_MACHINE = "qemu-riscv64_smode_defconfig"
UBOOT_ELF = "u-boot"
diff --git a/meta/conf/machine/qemux86-64.conf b/meta/conf/machine/qemux86-64.conf
index 648cf2fe8f..db9004ee32 100644
--- a/meta/conf/machine/qemux86-64.conf
+++ b/meta/conf/machine/qemux86-64.conf
@@ -37,10 +37,6 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"
MACHINE_EXTRA_RRECOMMENDS = "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-KERNEL_MODULE_AUTOLOAD += "uvesafb"
-KERNEL_MODULE_PROBECONF += "uvesafb"
-module_conf_uvesafb = "options uvesafb mode_option=${UVESA_MODE}"
-
WKS_FILE ?= "qemux86-directdisk.wks"
do_image_wic[depends] += "syslinux:do_populate_sysroot syslinux-native:do_populate_sysroot mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
diff --git a/meta/conf/machine/qemux86.conf b/meta/conf/machine/qemux86.conf
index 8e0da82076..7e6723b880 100644
--- a/meta/conf/machine/qemux86.conf
+++ b/meta/conf/machine/qemux86.conf
@@ -34,10 +34,6 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"
MACHINE_EXTRA_RRECOMMENDS = "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-KERNEL_MODULE_AUTOLOAD += "uvesafb"
-KERNEL_MODULE_PROBECONF += "uvesafb"
-module_conf_uvesafb = "options uvesafb mode_option=${UVESA_MODE}"
-
WKS_FILE ?= "qemux86-directdisk.wks"
do_image_wic[depends] += "syslinux:do_populate_sysroot syslinux-native:do_populate_sysroot mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf
index cfed3fbbd0..d231107f8b 100644
--- a/meta/conf/multilib.conf
+++ b/meta/conf/multilib.conf
@@ -9,6 +9,7 @@ MULTILIBS ??= "multilib:lib32"
STAGING_DIR_HOST = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
STAGING_DIR_TARGET = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
RECIPE_SYSROOT = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
+RECIPE_SYSROOT_class-native = "${WORKDIR}/recipe-sysroot"
INHERIT += "multilib_global"
@@ -29,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/Intel b/meta/files/common-licenses/Intel
new file mode 100644
index 0000000000..29ddf57a8c
--- /dev/null
+++ b/meta/files/common-licenses/Intel
@@ -0,0 +1,105 @@
+1. Copyright Notice
+
+Some or all of this work - Copyright (c) 1999 - 2017, Intel Corp.
+All rights reserved.
+
+2. License
+
+2.1. This is your license from Intel Corp. under its intellectual property
+rights. You may have additional license terms from the party that provided
+you this software, covering your right to use that party's intellectual
+property rights.
+
+2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
+copy of the source code appearing in this file ("Covered Code") an
+irrevocable, perpetual, worldwide license under Intel's copyrights in the
+base code distributed originally by Intel ("Original Intel Code") to copy,
+make derivatives, distribute, use and display any portion of the Covered
+Code in any form, with the right to sublicense such rights; and
+
+2.3. Intel grants Licensee a non-exclusive and non-transferable patent
+license (with the right to sublicense), under only those claims of Intel
+patents that are infringed by the Original Intel Code, to make, use, sell,
+offer to sell, and import the Covered Code and derivative works thereof
+solely to the minimum extent necessary to exercise the above copyright
+license, and in no event shall the patent license extend to any additions
+to or modifications of the Original Intel Code. No other license or right
+is granted directly or by implication, estoppel or otherwise;
+
+The above copyright and patent license is granted only if the following
+conditions are met:
+
+3. Conditions
+
+3.1. Redistribution of Source with Rights to Further Distribute Source.
+Redistribution of source code of any substantial portion of the Covered
+Code or modification with rights to further distribute source must include
+the above Copyright Notice, the above License, this list of Conditions,
+and the following Disclaimer and Export Compliance provision. In addition,
+Licensee must cause all Covered Code to which Licensee contributes to
+contain a file documenting the changes Licensee made to create that Covered
+Code and the date of any change. Licensee must include in that file the
+documentation of any changes made by any predecessor Licensee. Licensee
+must include a prominent statement that the modification is derived,
+directly or indirectly, from Original Intel Code.
+
+3.2. Redistribution of Source with no Rights to Further Distribute Source.
+Redistribution of source code of any substantial portion of the Covered
+Code or modification without rights to further distribute source must
+include the following Disclaimer and Export Compliance provision in the
+documentation and/or other materials provided with distribution. In
+addition, Licensee may not authorize further sublicense of source of any
+portion of the Covered Code, and must include terms to the effect that the
+license from Licensee to its licensee is limited to the intellectual
+property embodied in the software Licensee provides to its licensee, and
+not to intellectual property embodied in modifications its licensee may
+make.
+
+3.3. Redistribution of Executable. Redistribution in executable form of any
+substantial portion of the Covered Code or modification must reproduce the
+above Copyright Notice, and the following Disclaimer and Export Compliance
+provision in the documentation and/or other materials provided with the
+distribution.
+
+3.4. Intel retains all right, title, and interest in and to the Original
+Intel Code.
+
+3.5. Neither the name Intel nor any other trademark owned or controlled by
+Intel shall be used in advertising or otherwise to promote the sale, use or
+other dealings in products derived from or relating to the Covered Code
+without prior written authorization from Intel.
+
+4. Disclaimer and Export Compliance
+
+4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
+HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
+IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
+INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
+UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
+IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
+PARTICULAR PURPOSE.
+
+4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
+OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
+COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
+CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
+HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
+SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
+LIMITED REMEDY.
+
+4.3. Licensee shall not export, either directly or indirectly, any of this
+software or system incorporating such software without first obtaining any
+required license or other approval from the U. S. Department of Commerce or
+any other agency or department of the United States Government. In the
+event Licensee exports any such software from the United States or
+re-exports any such software from a foreign destination, Licensee shall
+ensure that the distribution and export/re-export of the software is in
+compliance with all laws, regulations, orders, or other restrictions of the
+U.S. Export Administration Regulations. Licensee agrees that neither it nor
+any of its subsidiaries will export/re-export any technical data, process,
+software, or service, directly or indirectly, to any country for which the
+United States government or any agency thereof requires an export license,
+other governmental approval, or letter of assurance, without first obtaining
+such license, approval or letter.
+
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 ccc4f4e1ac..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 () {
@@ -249,7 +249,7 @@ if [ @SDK_ARCHIVE_TYPE@ = "zip" ]; then
rm sdk.zip && exit 1
fi
else
- tail -n +$payload_offset $0| $SUDO_EXEC tar xJ -C $target_sdk_dir --checkpoint=.2500 $EXTRA_TAR_OPTIONS || exit 1
+ tail -n +$payload_offset $0| $SUDO_EXEC tar mxJ -C $target_sdk_dir --checkpoint=.2500 $EXTRA_TAR_OPTIONS || exit 1
fi
echo "done"
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 708e1b388e..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
@@ -413,7 +472,7 @@ def compare_dict_blobs(path, ablob, bblob, report_all, report_ver):
if abs(percentchg) < monitor_numeric_threshold:
continue
elif (not report_all) and key in list_fields:
- if key == "FILELIST" and path.endswith("-dbg") and bstr.strip() != '':
+ if key == "FILELIST" and (path.endswith("-dbg") or path.endswith("-src")) and bstr.strip() != '':
continue
if key in ['RPROVIDES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RREPLACES', 'RCONFLICTS']:
(depvera, depverb) = compare_pkg_lists(astr, bstr)
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/elf.py b/meta/lib/oe/elf.py
index 2562cea1dd..df0a4593fa 100644
--- a/meta/lib/oe/elf.py
+++ b/meta/lib/oe/elf.py
@@ -15,13 +15,13 @@ def machine_dict(d):
"aarch64" : (183, 0, 0, True, 64),
"aarch64_be" :(183, 0, 0, False, 64),
"i586" : (3, 0, 0, True, 32),
+ "i686" : (3, 0, 0, True, 32),
"x86_64": (62, 0, 0, True, 64),
"epiphany": (4643, 0, 0, True, 32),
"lm32": (138, 0, 0, False, 32),
"mips": ( 8, 0, 0, False, 32),
"mipsel": ( 8, 0, 0, True, 32),
"microblaze": (189, 0, 0, False, 32),
- "microblazeeb":(189, 0, 0, False, 32),
"microblazeel":(189, 0, 0, True, 32),
"powerpc": (20, 0, 0, False, 32),
"riscv32": (243, 0, 0, True, 32),
@@ -34,6 +34,7 @@ def machine_dict(d):
"armeb": (40, 97, 0, False, 32),
"powerpc": (20, 0, 0, False, 32),
"powerpc64": (21, 0, 0, False, 64),
+ "powerpc64le": (21, 0, 0, True, 64),
"i386": ( 3, 0, 0, True, 32),
"i486": ( 3, 0, 0, True, 32),
"i586": ( 3, 0, 0, True, 32),
@@ -58,7 +59,6 @@ def machine_dict(d):
"sh4": (42, 0, 0, True, 32),
"sparc": ( 2, 0, 0, False, 32),
"microblaze": (189, 0, 0, False, 32),
- "microblazeeb":(189, 0, 0, False, 32),
"microblazeel":(189, 0, 0, True, 32),
},
"linux-musl" : {
@@ -68,6 +68,7 @@ def machine_dict(d):
"armeb": ( 40, 97, 0, False, 32),
"powerpc": ( 20, 0, 0, False, 32),
"powerpc64": ( 21, 0, 0, False, 64),
+ "powerpc64le": (21, 0, 0, True, 64),
"i386": ( 3, 0, 0, True, 32),
"i486": ( 3, 0, 0, True, 32),
"i586": ( 3, 0, 0, True, 32),
@@ -78,7 +79,6 @@ def machine_dict(d):
"mips64": ( 8, 0, 0, False, 64),
"mips64el": ( 8, 0, 0, True, 64),
"microblaze": (189, 0, 0, False, 32),
- "microblazeeb":(189, 0, 0, False, 32),
"microblazeel":(189, 0, 0, True, 32),
"riscv32": (243, 0, 0, True, 32),
"riscv64": (243, 0, 0, True, 64),
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.py b/meta/lib/oe/package.py
index b8585d4253..dd700cbb0c 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -283,36 +283,3 @@ def read_shlib_providers(d):
shlib_provider[s[0]] = {}
shlib_provider[s[0]][s[1]] = (dep_pkg, s[2])
return shlib_provider
-
-
-def npm_split_package_dirs(pkgdir):
- """
- Work out the packages fetched and unpacked by BitBake's npm fetcher
- Returns a dict of packagename -> (relpath, package.json) ordered
- such that it is suitable for use in PACKAGES and FILES
- """
- from collections import OrderedDict
- import json
- packages = {}
- for root, dirs, files in os.walk(pkgdir):
- if os.path.basename(root) == 'node_modules':
- for dn in dirs:
- relpth = os.path.relpath(os.path.join(root, dn), pkgdir)
- pkgitems = ['${PN}']
- for pathitem in relpth.split('/'):
- if pathitem == 'node_modules':
- continue
- pkgitems.append(pathitem)
- pkgname = '-'.join(pkgitems).replace('_', '-')
- pkgname = pkgname.replace('@', '')
- pkgfile = os.path.join(root, dn, 'package.json')
- data = None
- if os.path.exists(pkgfile):
- with open(pkgfile, 'r') as f:
- data = json.loads(f.read())
- packages[pkgname] = (relpth, data)
- # We want the main package for a module sorted *after* its subpackages
- # (so that it doesn't otherwise steal the files for the subpackage), so
- # this is a cheap way to do that whilst still having an otherwise
- # alphabetical sort
- return OrderedDict((key, packages[key]) for key in sorted(packages, key=lambda pkg: pkg + '~'))
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
deleted file mode 100644
index 7c373715ad..0000000000
--- a/meta/lib/oe/package_manager.py
+++ /dev/null
@@ -1,1851 +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"],
- "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 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 -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
-
- 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"]
- 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 []
-
- return open(self.solution_manifest, 'r').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/packagedata.py b/meta/lib/oe/packagedata.py
index cbde380b03..a82085a792 100644
--- a/meta/lib/oe/packagedata.py
+++ b/meta/lib/oe/packagedata.py
@@ -17,9 +17,8 @@ def read_pkgdatafile(fn):
if os.access(fn, os.R_OK):
import re
- f = open(fn, 'r')
- lines = f.readlines()
- f.close()
+ with open(fn, 'r') as f:
+ lines = f.readlines()
r = re.compile("([^:]+):\s*(.*)")
for l in lines:
m = r.match(l)
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/path.py b/meta/lib/oe/path.py
index fa209b9795..082972457b 100644
--- a/meta/lib/oe/path.py
+++ b/meta/lib/oe/path.py
@@ -99,7 +99,22 @@ def copyhardlinktree(src, dst):
if os.path.isdir(src) and not len(os.listdir(src)):
return
- if (os.stat(src).st_dev == os.stat(dst).st_dev):
+ canhard = False
+ testfile = None
+ for root, dirs, files in os.walk(src):
+ if len(files):
+ testfile = os.path.join(root, files[0])
+ break
+
+ if testfile is not None:
+ try:
+ os.link(testfile, os.path.join(dst, 'testfile'))
+ os.unlink(os.path.join(dst, 'testfile'))
+ canhard = True
+ except Exception as e:
+ bb.debug(2, "Hardlink test failed with " + str(e))
+
+ if (canhard):
# Need to copy directories only with tar first since cp will error if two
# writers try and create a directory at the same time
cmd = "cd %s; find . -type d -print | tar --xattrs --xattrs-include='*' -cf - -S -C %s -p --no-recursion --files-from - | tar --xattrs --xattrs-include='*' -xhf - -C %s" % (src, src, dst)
@@ -121,12 +136,9 @@ def copyhardlinktree(src, dst):
def copyhardlink(src, dst):
"""Make a hard link when possible, otherwise copy."""
- # We need to stat the destination directory as the destination file probably
- # doesn't exist yet.
- dstdir = os.path.dirname(dst)
- if os.stat(src).st_dev == os.stat(dstdir).st_dev:
+ try:
os.link(src, dst)
- else:
+ except OSError:
shutil.copy(src, dst)
def remove(path, recurse=True):
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/qa.py b/meta/lib/oe/qa.py
index 21066c4dc3..ea831b930a 100644
--- a/meta/lib/oe/qa.py
+++ b/meta/lib/oe/qa.py
@@ -41,13 +41,15 @@ class ELFFile:
def __init__(self, name):
self.name = name
self.objdump_output = {}
+ self.data = None
# Context Manager functions to close the mmap explicitly
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
- self.data.close()
+ if self.data:
+ self.data.close()
def open(self):
with open(self.name, "rb") as f:
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py
index 630ae967af..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']
@@ -421,6 +421,8 @@ def copy_recipe_files(d, tgt_dir, whole_dir=False, download=True, all_variants=F
# Ensure we handle class-target if we're dealing with one of the variants
variants.append('target')
for variant in variants:
+ if variant.startswith("devupstream"):
+ localdata.setVar('SRCPV', 'git')
localdata.setVar('CLASSOVERRIDE', 'class-%s' % variant)
fetch_urls(localdata)
@@ -561,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:
@@ -1059,7 +1078,6 @@ def get_recipe_upgrade_status(recipes=None):
data_copy_list = []
copy_vars = ('SRC_URI',
'PV',
- 'GITDIR',
'DL_DIR',
'PN',
'CACHE',
@@ -1075,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 c62fa5f54a..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")
@@ -126,17 +132,16 @@ class Rootfs(object, metaclass=ABCMeta):
bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(dir))
shutil.copytree(self.image_rootfs + '-orig' + dir, self.image_rootfs + dir, symlinks=True)
- cpath = oe.cachedpath.CachedPath()
# Copy files located in /usr/lib/debug or /usr/src/debug
for dir in ["/usr/lib/debug", "/usr/src/debug"]:
src = self.image_rootfs + '-orig' + dir
- if cpath.exists(src):
+ if os.path.exists(src):
dst = self.image_rootfs + dir
bb.utils.mkdirhier(os.path.dirname(dst))
shutil.copytree(src, dst)
# Copy files with suffix '.debug' or located in '.debug' dir.
- for root, dirs, files in cpath.walk(self.image_rootfs + '-orig'):
+ for root, dirs, files in os.walk(self.image_rootfs + '-orig'):
relative_dir = root[len(self.image_rootfs + '-orig'):]
for f in files:
if f.endswith('.debug') or '/.debug' in relative_dir:
@@ -298,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):
@@ -354,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]
@@ -971,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 c566ce5a0c..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()
@@ -103,6 +108,8 @@ class SignatureGeneratorOEBasicHashMixIn(object):
self.unlockedrecipes = (data.getVar("SIGGEN_UNLOCKED_RECIPES") or
"").split()
self.unlockedrecipes = { k: "" for k in self.unlockedrecipes }
+ self.buildarch = data.getVar('BUILD_ARCH')
+ self._internal = False
pass
def tasks_resolved(self, virtmap, virtpnmap, dataCache):
@@ -124,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()
@@ -140,22 +147,41 @@ class SignatureGeneratorOEBasicHashMixIn(object):
self.dump_lockedsigs(sigfile)
return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options)
- def get_taskhash(self, tid, deps, dataCache):
- h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(tid, deps, dataCache)
+ def prep_taskhash(self, tid, deps, dataCaches):
+ super().prep_taskhash(tid, deps, dataCaches)
+ if hasattr(self, "extramethod"):
+ (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, dataCaches):
+ if tid in self.lockedhashes:
+ if self.lockedhashes[tid]:
+ return self.lockedhashes[tid]
+ else:
+ return super().get_taskhash(tid, deps, dataCaches)
+
+ # 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, 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.
@@ -169,8 +195,9 @@ class SignatureGeneratorOEBasicHashMixIn(object):
h_locked = self.lockedsigs[recipename][task][0]
var = self.lockedsigs[recipename][task][1]
self.lockedhashes[tid] = h_locked
- unihash = super().get_unihash(tid)
- self.taskhash[tid] = h_locked
+ self._internal = True
+ unihash = self.get_unihash(tid)
+ self._internal = False
#bb.warn("Using %s %s %s" % (recipename, task, h))
if h != h_locked and h_locked != unihash:
@@ -178,17 +205,24 @@ class SignatureGeneratorOEBasicHashMixIn(object):
% (recipename, task, h, h_locked, var))
return h_locked
+
+ self.lockedhashes[tid] = False
#bb.warn("%s %s %s" % (recipename, task, h))
return h
+ def get_stampfile_hash(self, tid):
+ if tid in self.lockedhashes and self.lockedhashes[tid]:
+ return self.lockedhashes[tid]
+ return super().get_stampfile_hash(tid)
+
def get_unihash(self, tid):
- if tid in self.lockedhashes:
+ if tid in self.lockedhashes and self.lockedhashes[tid] and not self._internal:
return self.lockedhashes[tid]
return super().get_unihash(tid)
def dump_sigtask(self, fn, task, stampbase, runtime):
tid = fn + ":" + task
- if tid in self.lockedhashes:
+ if tid in self.lockedhashes and self.lockedhashes[tid]:
return
super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigtask(fn, task, stampbase, runtime)
@@ -448,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
@@ -512,8 +551,12 @@ def OEOuthashBasic(path, sigfile, task, d):
add_perm(stat.S_IXOTH, 'x')
if include_owners:
- update_hash(" %10s" % pwd.getpwuid(s.st_uid).pw_name)
- update_hash(" %10s" % grp.getgrgid(s.st_gid).gr_name)
+ try:
+ update_hash(" %10s" % pwd.getpwuid(s.st_uid).pw_name)
+ update_hash(" %10s" % grp.getgrgid(s.st_gid).gr_name)
+ except KeyError:
+ bb.warn("KeyError in %s" % path)
+ raise
update_hash(" ")
if stat.S_ISBLK(s.st_mode) or stat.S_ISCHR(s.st_mode):
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/types.py b/meta/lib/oe/types.py
index 77ee7ee541..bbbabafbf6 100644
--- a/meta/lib/oe/types.py
+++ b/meta/lib/oe/types.py
@@ -154,7 +154,8 @@ def path(value, relativeto='', normalize='true', mustexist='false'):
if boolean(mustexist):
try:
- open(value, 'r')
+ with open(value, 'r'):
+ pass
except IOError as exc:
if exc.errno == errno.ENOENT:
raise ValueError("{0}: {1}".format(value, os.strerror(errno.ENOENT)))
@@ -183,4 +184,3 @@ def qemu_use_kvm(kvm, target_arch):
elif build_arch == target_arch:
use_kvm = True
return use_kvm
-
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index 652b2be145..468c76f30f 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -169,7 +169,7 @@ def any_distro_features(d, features, truevalue="1", falsevalue=""):
"""
return bb.utils.contains_any("DISTRO_FEATURES", features, truevalue, falsevalue, d)
-def parallel_make(d):
+def parallel_make(d, makeinst=False):
"""
Return the integer value for the number of parallel threads to use when
building, scraped out of PARALLEL_MAKE. If no parallelization option is
@@ -177,7 +177,10 @@ def parallel_make(d):
e.g. if PARALLEL_MAKE = "-j 10", this will return 10 as an integer.
"""
- pm = (d.getVar('PARALLEL_MAKE') or '').split()
+ if makeinst:
+ pm = (d.getVar('PARALLEL_MAKEINST') or '').split()
+ else:
+ pm = (d.getVar('PARALLEL_MAKE') or '').split()
# look for '-j' and throw other options (e.g. '-l') away
while pm:
opt = pm.pop(0)
@@ -192,7 +195,7 @@ def parallel_make(d):
return None
-def parallel_make_argument(d, fmt, limit=None):
+def parallel_make_argument(d, fmt, limit=None, makeinst=False):
"""
Helper utility to construct a parallel make argument from the number of
parallel threads specified in PARALLEL_MAKE.
@@ -205,7 +208,7 @@ def parallel_make_argument(d, fmt, limit=None):
e.g. if PARALLEL_MAKE = "-j 10", parallel_make_argument(d, "-n %d") will return
"-n 10"
"""
- v = parallel_make(d)
+ v = parallel_make(d, makeinst)
if v:
if limit:
v = min(limit, v)
@@ -245,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:
@@ -369,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
@@ -387,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/buildperf/base.py b/meta/lib/oeqa/buildperf/base.py
index 3b2fed549f..5f1805d86c 100644
--- a/meta/lib/oeqa/buildperf/base.py
+++ b/meta/lib/oeqa/buildperf/base.py
@@ -462,7 +462,7 @@ class BuildPerfTestCase(unittest.TestCase):
def rm_tmp(self):
"""Cleanup temporary/intermediate files and directories"""
log.debug("Removing temporary and cache files")
- for name in ['bitbake.lock', 'conf/sanity_info',
+ for name in ['bitbake.lock', 'cache/sanity_info',
self.bb_vars['TMPDIR']]:
oe.path.remove(name, recurse=True)
diff --git a/meta/lib/oeqa/controllers/masterimage.py b/meta/lib/oeqa/controllers/masterimage.py
index 0435dfa125..0bf5917e48 100644
--- a/meta/lib/oeqa/controllers/masterimage.py
+++ b/meta/lib/oeqa/controllers/masterimage.py
@@ -97,7 +97,7 @@ class MasterImageHardwareTarget(oeqa.targetcontrol.BaseTarget, metaclass=ABCMeta
if self.powercontrol_cmd:
cmd = "%s %s" % (self.powercontrol_cmd, msg)
try:
- commands.runCmd(cmd, assert_error=False, preexec_fn=os.setsid, env=self.origenv)
+ commands.runCmd(cmd, assert_error=False, start_new_session=True, env=self.origenv)
except CommandError as e:
bb.fatal(str(e))
diff --git a/meta/lib/oeqa/core/context.py b/meta/lib/oeqa/core/context.py
index 14fc6a54f4..7d3fa3b84a 100644
--- a/meta/lib/oeqa/core/context.py
+++ b/meta/lib/oeqa/core/context.py
@@ -72,6 +72,9 @@ class OETestContext(object):
modules_required, **kwargs)
self.suites = self.loader.discover()
+ def prepareSuite(self, suites, processes):
+ return suites
+
def runTests(self, processes=None, skips=[]):
self.runner = self.runnerClass(self, descriptions=False, verbosity=2)
@@ -79,14 +82,9 @@ class OETestContext(object):
self.skipTests(skips)
self._run_start_time = time.time()
- if processes:
- from oeqa.core.utils.concurrencytest import ConcurrentTestSuite
-
- concurrent_suite = ConcurrentTestSuite(self.suites, processes)
- result = self.runner.run(concurrent_suite)
- else:
+ if not processes:
self.runner.buffer = True
- result = self.runner.run(self.suites)
+ result = self.runner.run(self.prepareSuite(self.suites, processes))
self._run_end_time = time.time()
return result
@@ -102,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,
@@ -153,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
@@ -180,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
@@ -198,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/decorator/data.py b/meta/lib/oeqa/core/decorator/data.py
index babc9789d6..bc4939e87c 100644
--- a/meta/lib/oeqa/core/decorator/data.py
+++ b/meta/lib/oeqa/core/decorator/data.py
@@ -18,6 +18,26 @@ def has_feature(td, feature):
return True
return False
+def has_machine(td, machine):
+ """
+ Checks for MACHINE.
+ """
+
+ if (machine in td.get('MACHINE', '')):
+ return True
+ return False
+
+def is_qemu(td, qemu):
+ """
+ Checks if MACHINE is qemu.
+ """
+
+ machine = td.get('MACHINE', '')
+ if (qemu in td.get('MACHINE', '') or
+ machine.startswith('qemu')):
+ return True
+ return False
+
@registerDecorator
class skipIfDataVar(OETestDecorator):
"""
@@ -113,3 +133,90 @@ class skipIfNotFeature(OETestDecorator):
self.logger.debug(msg)
if not has_feature(self.case.td, self.value):
self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfFeature(OETestDecorator):
+ """
+ Skip test based on DISTRO_FEATURES.
+
+ value must not be in distro features or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is not in DISTRO_FEATURES '
+ 'or IMAGE_FEATURES' % (self.value))
+ self.logger.debug(msg)
+ if has_feature(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfNotMachine(OETestDecorator):
+ """
+ Skip test based on MACHINE.
+
+ value must be match MACHINE or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is not this MACHINE' % self.value)
+ self.logger.debug(msg)
+ if not has_machine(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfMachine(OETestDecorator):
+ """
+ Skip test based on Machine.
+
+ value must not be this machine or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is this MACHINE' % self.value)
+ self.logger.debug(msg)
+ if has_machine(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfNotQemu(OETestDecorator):
+ """
+ Skip test based on MACHINE.
+
+ value must be a qemu MACHINE or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is not this MACHINE' % self.value)
+ self.logger.debug(msg)
+ if not is_qemu(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
+@registerDecorator
+class skipIfQemu(OETestDecorator):
+ """
+ Skip test based on Qemu Machine.
+
+ value must not be a qemu machine or it will skip the test
+ with msg as the reason.
+ """
+
+ attrs = ('value', 'msg')
+
+ def setUpDecorator(self):
+ msg = ('Checking if %s is this MACHINE' % self.value)
+ self.logger.debug(msg)
+ if is_qemu(self.case.td, self.value):
+ self.case.skipTest(self.msg)
+
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 081c627b01..0f29414df5 100644
--- a/meta/lib/oeqa/core/target/qemu.py
+++ b/meta/lib/oeqa/core/target/qemu.py
@@ -8,9 +8,11 @@ import os
import sys
import signal
import time
+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']
@@ -18,23 +20,32 @@ class OEQemuTarget(OESSHTarget):
def __init__(self, logger, server_ip, timeout=300, user='root',
port=None, machine='', rootfs='', kernel='', kvm=False, slirp=False,
dump_dir='', dump_host_cmds='', display='', bootlog='',
- tmpdir='', dir_image='', boottime=60, **kwargs):
+ tmpdir='', dir_image='', boottime=60, serial_ports=2,
+ boot_patterns = defaultdict(str), ovmf=False, **kwargs):
super(OEQemuTarget, self).__init__(logger, None, server_ip, timeout,
user, port)
self.server_ip = server_ip
+ self.server_port = 0
self.machine = machine
self.rootfs = rootfs
self.kernel = kernel
self.kvm = kvm
+ self.ovmf = ovmf
self.use_slirp = slirp
+ self.boot_patterns = boot_patterns
self.runner = QemuRunner(machine=machine, rootfs=rootfs, tmpdir=tmpdir,
deploy_dir_image=dir_image, display=display,
logfile=bootlog, boottime=boottime,
use_kvm=kvm, use_slirp=slirp, dump_dir=dump_dir,
- dump_host_cmds=dump_host_cmds, logger=logger)
+ dump_host_cmds=dump_host_cmds, logger=logger,
+ 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 51032ef1a9..461448dbc5 100644
--- a/meta/lib/oeqa/core/target/ssh.py
+++ b/meta/lib/oeqa/core/target/ssh.py
@@ -15,7 +15,7 @@ from . import OETarget
class OESSHTarget(OETarget):
def __init__(self, logger, ip, server_ip, timeout=300, user='root',
- port=None, **kwargs):
+ port=None, server_port=0, **kwargs):
if not logger:
logger = logging.getLogger('target')
logger.setLevel(logging.INFO)
@@ -30,6 +30,7 @@ class OESSHTarget(OETarget):
super(OESSHTarget, self).__init__(logger)
self.ip = ip
self.server_ip = server_ip
+ self.server_port = server_port
self.timeout = timeout
self.user = user
ssh_options = [
@@ -87,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):
@@ -106,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):
"""
@@ -246,7 +252,7 @@ def SSHCall(command, logger, timeout=None, **opts):
"stdin": None,
"shell": False,
"bufsize": -1,
- "preexec_fn": os.setsid,
+ "start_new_session": True,
}
options.update(opts)
output = ''
diff --git a/meta/lib/oeqa/core/utils/concurrencytest.py b/meta/lib/oeqa/core/utils/concurrencytest.py
index 0f7b3dcc11..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)
@@ -146,6 +152,20 @@ def outSideTestaddError(self, offset, line):
subunit._OutSideTest.addError = outSideTestaddError
+# Like outSideTestaddError above, we need an equivalent for skips
+# happening at the setUpClass() level, otherwise we will see "UNKNOWN"
+# as a result for concurrent tests
+#
+def outSideTestaddSkip(self, offset, line):
+ """A 'skip:' directive has been read."""
+ test_name = line[offset:-1].decode('utf8')
+ self.parser._current_test = subunit.RemotedTestCase(test_name)
+ self.parser.current_test_description = test_name
+ self.parser._state = self.parser._reading_skip_details
+ self.parser._reading_skip_details.set_simple()
+ self.parser.subunitLineReceived(line)
+
+subunit._OutSideTest.addSkip = outSideTestaddSkip
#
# A dummy structure to add to io.StringIO so that the .buffer object
@@ -163,9 +183,11 @@ class dummybuf(object):
#
class ConcurrentTestSuite(unittest.TestSuite):
- def __init__(self, suite, processes):
+ 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)
@@ -216,13 +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
- bb.utils.prunedir(d, ionice=True)
-
def fork_for_tests(concurrency_num, suite):
result = []
if 'BUILDDIR' in os.environ:
@@ -249,37 +264,7 @@ def fork_for_tests(concurrency_num, suite):
stream = os.fdopen(c2pwrite, 'wb', 1)
os.close(c2pread)
- # Create a new separate BUILDDIR for each group of tests
- if 'BUILDDIR' in os.environ:
- builddir = os.environ['BUILDDIR']
- newbuilddir = builddir + "-st-" + str(ourpid)
- newselftestdir = newbuilddir + "/meta-selftest"
-
- bb.utils.mkdirhier(newbuilddir)
- oe.path.copytree(builddir + "/conf", newbuilddir + "/conf")
- oe.path.copytree(builddir + "/cache", newbuilddir + "/cache")
- oe.path.copytree(selftestdir, newselftestdir)
-
- for e in os.environ:
- if builddir in os.environ[e]:
- 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)
-
- # Tried to used bitbake-layers add/remove but it requires recipe parsing and hence is too slow
- subprocess.check_output("sed %s/conf/bblayers.conf -i -e 's#%s#%s#g'" % (newbuilddir, selftestdir, newselftestdir), cwd=newbuilddir, shell=True)
-
- os.chdir(newbuilddir)
-
- for t in process_suite:
- if not hasattr(t, "tc"):
- continue
- cp = t.tc.config_paths
- for p in cp:
- if selftestdir in cp[p] and newselftestdir not in cp[p]:
- cp[p] = cp[p].replace(selftestdir, newselftestdir)
- if builddir in cp[p] and newbuilddir not in cp[p]:
- cp[p] = cp[p].replace(builddir, newbuilddir)
+ (builddir, newbuilddir) = suite.setupfunc("-st-" + str(ourpid), selftestdir, process_suite)
# Leave stderr and stdout open so we can see test noise
# Close stdin so that the child goes away if it decides to
@@ -293,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():
@@ -313,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 18cec222fc..75b89758cb 100644
--- a/meta/lib/oeqa/manual/bsp-hw.json
+++ b/meta/lib/oeqa/manual/bsp-hw.json
@@ -1,32 +1,6 @@
[
{
"test": {
- "@alias": "bsps-hw.bsps-hw.rpm_-__install_dependency_package",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Get a not previously installed RPM package or build one on local machine, which should have run-time dependency.For example, \"mc\" (Midnight Commander, which is a visual file manager) should depend on \"ncurses-terminfo\". \n\n$ bitbake mc \n\n\n",
- "expected_results": ""
- },
- "2": {
- "action": "Copy the package into a system folder (for example /home/root/rpm_packages). \n\n\n",
- "expected_results": ""
- },
- "3": {
- "action": "Run \"rpm -ivh package_name\" and check the output, for example \"rpm -ivh mc.rpm*\" should report the dependency on \"ncurses-terminfo\".\n\n\n\n",
- "expected_results": "3 . rpm command should report message when some RPM installation depends on other packages."
- }
- },
- "summary": "rpm_-__install_dependency_package"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.boot_and_install_from_USB",
"author": [
{
@@ -151,50 +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.reboot_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 \"reboot\"",
- "expected_results": "System can reboot successfully . "
- }
- },
- "summary": "reboot_system"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.switch_among_multi_applications_and_desktop",
"author": [
{
@@ -225,114 +155,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.USB_-_mount",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Boot system \n\n",
- "expected_results": ""
- },
- "2": {
- "action": "Plug USB stick, it should be mount in /run/media/sd(x) If X-window system does not start and show USB device, then use the terminal to mount it, following the next steps: \na. Locate the usb stick (usually it is on /dev/sdb) \nb. Create a directory with \"mkdir stick\" (so you will have such a path as: /home/root/stick). \nc. Run the command \"mount /dev/sdb /home/root/stick\" to mount USB device on it. \n\n",
- "expected_results": "USB device should be mounted in /run/media/sd(x) \nor in /home/root/stick \n\n"
- },
- "3": {
- "action": "Then you can access USB stick (/home/root/stick) via Terminal or GUI and try various commands and actions like \"cp\", \"mv\", \"touch\" and \"rm\". Type \"dmesg\" command and check for recent mounted devices.",
- "expected_results": "Basic commands work properly. The system sends a notification in \"dmesg\" command, showing that the USB stick is accessible and the device is mounted ."
- }
- },
- "summary": "USB_-_mount"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.USB_-_read_files",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "view/copy successfully"
- },
- "2": {
- "action": "plug usb stick",
- "expected_results": ""
- },
- "3": {
- "action": "view files in usb by file browser",
- "expected_results": ""
- },
- "4": {
- "action": "copy some files from usb to local hardware",
- "expected_results": ""
- }
- },
- "summary": "USB_-_read_files"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.USB_-_umount",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "usb directory in file browser automatically missed"
- },
- "2": {
- "action": "plug usb stick",
- "expected_results": ""
- },
- "3": {
- "action": "view files in usb by file browser \n4.unplug usb",
- "expected_results": ""
- }
- },
- "summary": "USB_-_umount"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.USB_-_write_files",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "create/copy successfully"
- },
- "2": {
- "action": "plug usb stick",
- "expected_results": ""
- },
- "3": {
- "action": "create files in usb \n4.copy some files from local hardware to usb",
- "expected_results": ""
- }
- },
- "summary": "USB_-_write_files"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.ethernet_static_ip_set_in_connman",
"author": [
{
@@ -419,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": [
{
@@ -613,136 +413,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.check_bash_in_image",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "After system is up, check if bash command exists with command \"which bash\"",
- "expected_results": "bash command should exist in image giving something as below \"/bin/bash\""
- }
- },
- "summary": "check_bash_in_image"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.MicroSD_-__mount",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "system notify that MicroSDis accessible"
- },
- "2": {
- "action": "plug MicroSD card",
- "expected_results": ""
- }
- },
- "summary": "MicroSD_-__mount"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.MicroSD_-__read_files",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "view/copy successfully"
- },
- "2": {
- "action": "plug MicroSD card",
- "expected_results": ""
- },
- "3": {
- "action": "view files inMicroSD by file browser",
- "expected_results": ""
- },
- "4": {
- "action": "copy some files fromMicroSD to local hardware",
- "expected_results": ""
- }
- },
- "summary": "MicroSD_-__read_files"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.MicroSD_-__umount",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "MicroSD in file browser automatically missed . "
- },
- "2": {
- "action": "plug MicroSD card",
- "expected_results": ""
- },
- "3": {
- "action": "view files in MicroSDby file browser",
- "expected_results": ""
- },
- "4": {
- "action": "unplug MicroSD",
- "expected_results": ""
- }
- },
- "summary": "MicroSD_-__umount"
- }
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.MicroSD_-__write_files",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": "create/copy successfully"
- },
- "2": {
- "action": "plug MicroSD card",
- "expected_results": ""
- },
- "3": {
- "action": "create files in MicroSD",
- "expected_results": ""
- },
- "4": {
- "action": "copy some files from local hardware to MicroSD",
- "expected_results": ""
- }
- },
- "summary": "MicroSD_-__write_files"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.video_-_libva_check_(ogg_video_play)",
"author": [
{
@@ -1203,28 +873,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.Check_if_target_can_support_EEPROM",
- "author": [
- {
- "email": "yi.zhao@windriver.com",
- "name": "yi.zhao@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Check eeprom device exist in /sys/bus/i2c/devices/ ",
- "expected_results": "Hexdump can read data from eeprom.\n"
- },
- "2": {
- "action": "Run \"hexdump eeprom\" commandroot@mpc8315e-rdb:/sys/bus/i2c/devices/1-0051> hexdump eeprom0000000 9210 0b02 0211 0009 0b52 0108 0c00 3c000000010 6978 6930 6911 208c 7003 3c3c 00f0 8381\u2026\n",
- "expected_results": ""
- }
- },
- "summary": "Check_if_target_can_support_EEPROM"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.System_can_boot_up_via_NFS",
"author": [
{
@@ -1252,35 +900,5 @@
},
"summary": "System_can_boot_up_via_NFS"
}
- },
- {
- "test": {
- "@alias": "bsps-hw.bsps-hw.Boot_from_JFFS2_image",
- "author": [
- {
- "email": "yi.zhao@windriver.com",
- "name": "yi.zhao@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": "First boot the board with NFS root. ",
- "expected_results": "The system can boot up without problem\n"
- },
- "2": {
- "action": "Install mtd-utils package. Erase the MTD partition which will be used as root: $ flash_eraseall /dev/mtd3 ",
- "expected_results": ""
- },
- "3": {
- "action": "Copy the JFFS2 image to the MTD partition: $ flashcp core-image-minimal-mpc8315e-rdb.jffs2 /dev/mtd3 ",
- "expected_results": ""
- },
- "4": {
- "action": "Then reboot the board and set up the environment in U-Boot: => setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttyS0,115200 ",
- "expected_results": ""
- }
- },
- "summary": "Boot_from_JFFS2_image"
- }
}
-] \ No newline at end of file
+]
diff --git a/meta/lib/oeqa/manual/bsp-qemu.json b/meta/lib/oeqa/manual/bsp-qemu.json
deleted file mode 100644
index cf51b6ab1c..0000000000
--- a/meta/lib/oeqa/manual/bsp-qemu.json
+++ /dev/null
@@ -1,222 +0,0 @@
-[
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.qemu_can_be_started_with_KVM_enabled",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Build a kernel with KVM enabled \n\nIn Local.conf add \n\nQEMU_USE_KVM = \"${@ '1' if os.access('/dev/kvm', os.R_OK|os.W_OK) else '0' }\" \n\n ",
- "expected_results": ""
- },
- "2": {
- "action": "Start qemu with option \"kvm\" with runqemu \n a. If you start qemu with kvm failed, maybe it is because host not install kvm and vhost_net module. Follow below link to install them. \n b. vhost_test refer: https://wiki.yoctoproject.org/wiki/Running_an_x86_Yocto_Linux_image_under_QEMU_KVM \n c. kvm refer: https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu",
- "expected_results": ""
- },
- "3": {
- "action": "Check if qemu starts up and if kvm_intel module is used",
- "expected_results": ""
- },
- "4": {
- "action": "If kvm_intel module is not used when starting qemu, it will show 0 in \"Used by\" column when you run \"lsmod | grep kvm_intel\" ",
- "expected_results": "KVM enabled with qemu \nExecute \"lsmod | grep kvm_intel\" from your host twice, before and after you \nstart the qemu with kvm option. Before start, the number should be 0, \nafter start, the number should bigger than 0."
- }
- },
- "summary": "qemu_can_be_started_with_KVM_enabled"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.Post-installation_logging",
- "author": [
- {
- "email": "yi.zhao@windriver.com",
- "name": "yi.zhao@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Download the poky source and set environment \n",
- "expected_results": "The /var/log/postinstall.log should exist in the first boot. The content of this log is like below: \n\nRunning postinst /etc/rpm-postinsts/man... \nList directory to check the output log \nbin \nboot \ndev \netc \nhome \nlib \nlost+found \nmedia \nmnt \nproc \nrun \nsbin \nsys \ntmp \nusr \nvar \nList nonexist directory to check the stderr redirection log \nls: /nonexist: No such file or directory "
- },
- "2": {
- "action": "Add the following lines to a .bb file. For expample, meta/recipes-connectivity/openssh/openssh_6.2p2.bb: \n\npkg_postinst_ontarget_${PN} () { \n #!/bin/sh -e \n if [ x\"$D\" = \"x\" ]; then \n echo \"List directory to check the output log\" \n ls / \n echo \"List nonexist directory to check the stderr redirection log\" \n ls /nonexist \n else \n exit 1 \n fi \n} \n\nMake sure the feature \"debug-tweaks\" is added in conf/local.conf \n",
- "expected_results": ""
- },
- "3": {
- "action": "Add ssh-server-openssh to EXTRA_IMAGE_FEATURES in local.conf \n",
- "expected_results": ""
- },
- "4": {
- "action": "Build core-image-minimal \n",
- "expected_results": ""
- },
- "5": {
- "action": "Boot up the image and check the /var/log/postinstall.log ",
- "expected_results": ""
- }
- },
- "summary": "Post-installation_logging"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.Add_user_with_cleartext_type_password_during_filesystem_construction",
- "author": [
- {
- "email": "ke.zou@windriver.com",
- "name": "ke.zou@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Download the poky source and set the environment \n\n",
- "expected_results": "No error during image building procedure. \n"
- },
- "2": {
- "action": "Add the following lines in conf/local.conf \n\nINHERIT += \"extrausers\" \n\nEXTRA_USERS_PARAMS = \"\\ \nuseradd -s /bin/sh -P 'tester3' tester3;\\ \n\" \n\nThe above settings do the following things: \na. Add a user tester3 with cleartext password 'tester3' ",
- "expected_results": "Image can boot up \n"
- },
- "3": {
- "action": "Build the image\n ",
- "expected_results": "Login with user name \"tester3\" and password \"tester3\" "
- }
- },
- "summary": "Add_user_with_cleartext_type_password_during_filesystem_construction"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.rpm_-__install_dependency_package",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Get a not previously installed RPM package or build one on local machine, which should have run-time dependency.For example, \"mc\" (Midnight Commander, which is a visual file manager) should depend on \"ncurses-terminfo\". \n\n$ bitbake mc \n\n\n",
- "expected_results": ""
- },
- "2": {
- "action": "Copy the package into a system folder (for example /home/root/rpm_packages). \n\n\n",
- "expected_results": ""
- },
- "3": {
- "action": "Run \"rpm -ivh package_name\" and check the output, for example \"rpm -ivh mc.rpm*\" should report the dependency on \"ncurses-terminfo\".\n\n\n\n",
- "expected_results": "3 . rpm command should report message when some RPM installation depends on other packages."
- }
- },
- "summary": "rpm_-__install_dependency_package"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-tools.Check_rpm_install/removal_log_file_size(auto)",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Get some rpm or other kind of installation packages. \n\n",
- "expected_results": "Steps 1- 4 (more than 2.3) \nEach file will occupy around 10MB, and there should be some method to keep rpm log in a small size. (the size of the db of RPMs must not be taking so much space) \nStep 5 (less than or equal to 2.3)\nThe size on /var/lib/rpm/ must keep around 30MB"
- },
- "2": {
- "action": "After system is up, check the size of log file named as \"log.xxxxxx\" on /var/lib/rpm/log \n\n",
- "expected_results": ""
- },
- "3": {
- "action": "After several install/removal of packages, with either of the install/removal commands (rpm/smart/zypper/dnf install/removal), check again the size of log file. \n\n",
- "expected_results": ""
- },
- "4": {
- "action": "For packages installation, there will be some database files under /var/lib/rpm/, named as \"__db.xxx\" and there will be some log files \nunder /var/lib/rpm/log, named as \"\"log.xxxxxx\"\". \n\nNote: You will only see the log.xxxx on /var/lib/rpm/log mentioned above if the poky version is minor than 2.3.For poky 2.3 or major versions this has been modified and the package RPM4 does not show the logs.xxxx. if major, follow the next step. \n\n",
- "expected_results": ""
- },
- "5": {
- "action": "Repeat steps (1 and 3) and check the size of /var/lib/rpm/ \n\nMore info: https://bugzilla.yoctoproject.org/show_bug.cgi?id=9259",
- "expected_results": ""
- }
- },
- "summary": "Check_rpm_install/removal_log_file_size"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-runtime.only_one_connmand_in_background(auto)",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Boot system",
- "expected_results": ""
- },
- "2": {
- "action": "Run \"ps aux |grep connmand\" or \"ps -ef | grep connmand\" or \"ps | grep connmand\"",
- "expected_results": "Connmand (connection manager, used to manage internet connections) should be shown as an active process \n\n"
- },
- "3": {
- "action": "Run command \"connmand\" to try to launch to a second connmand process",
- "expected_results": ""
- },
- "4": {
- "action": "Check, with \"ps\" connmand if a second connmand can be generated ",
- "expected_results": "There should be only one connmand process instance in background ."
- }
- },
- "summary": "only_one_connmand_in_background"
- }
- },
- {
- "test": {
- "@alias": "bsps-qemu.bsps-runtime.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-qemu.bsps-runtime.check_bash_in_image",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "After system is up, check if bash command exists with command \"which bash\"",
- "expected_results": "bash command should exist in image giving something as below \"/bin/bash\""
- }
- },
- "summary": "check_bash_in_image"
- }
- }
-]
diff --git a/meta/lib/oeqa/manual/compliance-test.json b/meta/lib/oeqa/manual/compliance-test.json
deleted file mode 100644
index 367a416f01..0000000000
--- a/meta/lib/oeqa/manual/compliance-test.json
+++ /dev/null
@@ -1,76 +0,0 @@
-[
- {
- "test": {
- "@alias": "compliance-test.compliance-test.stress_test_-_Genericx86-64",
- "author": [
- {
- "email": "corneliux.stoicescu@intel.com",
- "name": "corneliux.stoicescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Bootup with core-image-sato-sdk image",
- "expected_results": ""
- },
- "2": {
- "action": "Execute the crashme test with below command \n\n./opt/ltp/runltp f crashme",
- "expected_results": "The stress testing should not make the target crash. Check CPU usage and basic functionality of the system after the tests are over. "
- }
- },
- "summary": "stress_test_-_Genericx86-64"
- }
- },
- {
- "test": {
- "@alias": "compliance-test.compliance-test.stress_test_-_- crashme_-_-Beaglebone",
- "author": [
- {
- "email": "corneliux.stoicescu@intel.com",
- "name": "corneliux.stoicescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": " Get crashme from http://people.delphiforums.com/gjc/crashme.html",
- "expected_results": ""
- },
- "2": {
- "action": "Follow the setup steps on above URL, build crashme in target",
- "expected_results": ""
- },
- "3": {
- "action": " Run crashme for 24 hours",
- "expected_results": "Target should not crash with the program."
- }
- },
- "summary": "stress_test_-_crashme_-Beaglebone"
- }
- },
- {
- "test": {
- "@alias": "compliance-test.compliance-test.stress_test_-_ltp_-Beaglebone",
- "author": [
- {
- "email": "corneliux.stoicescu@intel.com",
- "name": "corneliux.stoicescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Build LTP with toolchain or in sdk image",
- "expected_results": ""
- },
- "2": {
- "action": "Copy LTP folder into target, for example, /opt/ltp. Modify script, testscripts/ltpstress.sh, set Iostat=1, NO_NETWORK=1",
- "expected_results": ""
- },
- "3": {
- "action": "cd testscripts/ && ./ltpstress.sh",
- "expected_results": "This stress case will run for 24 hours Check the result\ntarget should not crash with the program "
- }
- },
- "summary": "stress_test_-_-ltp_-Beaglebone"
- }
- }
-]
diff --git a/meta/lib/oeqa/manual/eclipse-plugin.json b/meta/lib/oeqa/manual/eclipse-plugin.json
index 9869150dcf..d77d0e673b 100644
--- a/meta/lib/oeqa/manual/eclipse-plugin.json
+++ b/meta/lib/oeqa/manual/eclipse-plugin.json
@@ -82,7 +82,7 @@
],
"execution": {
"1": {
- "action": "Launch a QEMU of target enviroment.(Reference to case \"ADT - Launch qemu by eclipse\") ",
+ "action": "Launch a QEMU of target environment.(Reference to case \"ADT - Launch qemu by eclipse\") ",
"expected_results": ""
},
"2": {
@@ -164,7 +164,7 @@
],
"execution": {
"1": {
- "action": "Launch a QEMU of target enviroment.(Reference to case \"ADT - Launch qemu by eclipse\") ",
+ "action": "Launch a QEMU of target environment.(Reference to case \"ADT - Launch qemu by eclipse\") ",
"expected_results": ""
},
"2": {
@@ -319,4 +319,4 @@
"summary": "Eclipse_Poky_installation_and_setup"
}
}
-] \ No newline at end of file
+]
diff --git a/meta/lib/oeqa/manual/oe-core.json b/meta/lib/oeqa/manual/oe-core.json
index 3ee0aa95f9..fb47c5ec36 100644
--- a/meta/lib/oeqa/manual/oe-core.json
+++ b/meta/lib/oeqa/manual/oe-core.json
@@ -1,82 +1,6 @@
[
{
"test": {
- "@alias": "oe-core.scripts.Crosstap_script_check",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "Create the trace_open.stp script as follows in the host machine: \n\n\nprobe syscall.open \n\n{ \n\n\n printf (\"%s(%d) open (%s)\\n\", execname(), pid(), argstr) \n\n} \n\n\n\nif the above failed, then create the below instead. \n\nprobe syscall.open \n{ \n printf (\"%s(%d) open\\n\", execname(), pid()) \n\n} \n \n",
- "expected_results": ""
- },
- "2": {
- "action": "Add 'tools-profile' and 'ssh-server-openssh' to EXTRA_IMAGE_FEATURES in local.conf \n\n\n",
- "expected_results": ""
- },
- "3": {
- "action": "Build a core-image-minimal image, build systemtap-native. Start the image under qemu. \n\n",
- "expected_results": ""
- },
- "4": {
- "action": "Make sure that the ssh service is started on the Qemu machine. \n\n",
- "expected_results": ""
- },
- "5": {
- "action": "From the host machine poky build_dir, run \"crosstap root@192.168.7.2 trace_open.stp\".",
- "expected_results": ""
- },
- "6": {
- "action": "In QEMU, try to open some applications, such as open a terminal, input some command, \n\n",
- "expected_results": ""
- },
- "7": {
- "action": "Check the host machine, \"crosstap\" has related output. \n\n\n\nNOTE: Do not build the kernel from shared state(sstate-cache) for this to work.",
- "expected_results": "The script should successfully connect to the qemu machine and there \nshould be presented a list of services(pid, process name) which run on \nthe qemu machine. "
- }
- },
- "summary": "Crosstap_script_check"
- }
- },
- {
- "test": {
- "@alias": "oe-core.scripts.List_all_the_PACKAGECONFIG's_flags",
- "author": [
- {
- "email": "yi.zhao@windriver.com",
- "name": "yi.zhao@windriver.com"
- }
- ],
- "execution": {
- "1": {
- "action": " Download the poky source and setup the environment. ",
- "expected_results": ""
- },
- "2": {
- "action": "Run \"../scripts/contrib/list-packageconfig-flags.py\" ",
- "expected_results": "In step 2, will list available pkgs which have PACKAGECONFIG flags: \nPACKAGE NAME (or RECIPE NAME) PACKAGECONFIG FLAGS \n============================================================== \nalsa-tools-1.0.26.1 defaultval gtk+ \navahi-ui-0.6.31 defaultval python \nbluez4-4.101 alsa defaultval pie \n"
- },
- "3": {
- "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -f\" ",
- "expected_results": "In step 3, will list available PACKAGECONFIG flags and all affected pkgs \nPACKAGECONFIG FLAG PACKAGE NAMES (or RECIPE NAMES) \n==================================== \n3g connman-1.16 \n \navahi cups-1.6.3 pulseaudio-4.0 \nbeecrypt rpm-5.4.9 rpm-native-5.4.9 \n"
- },
- "4": {
- "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -a\" ",
- "expected_results": "In step 4, will list all pkgs and PACKAGECONFIG information: \n================================================== \ngtk+-2.24.18 \n/home/jiahongxu/yocto/poky/meta/recipes-gnome/gtk+/gtk+_2.24.18.bb \nPACKAGECONFIG x11 \nPACKAGECONFIG[x11] --with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS} \nxf86-video-intel-2.21.9 \n/home/jiahongxu/yocto/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.9.bb \nPACKAGECONFIG None \nPACKAGECONFIG[xvmc] --enable-xvmc,--disable-xvmc,libxvmc \nPACKAGECONFIG[sna] --enable-sna,--disable-sna \n"
- },
- "5": {
- "action": "Run \"../scripts/contrib/list-packageconfig-flags.py -p\" ",
- "expected_results": "In step 5, will list pkgs with preferred version: \nPACKAGE NAME (or RECIPE NAME) PACKAGECONFIG FLAGS \n=================================================== \nalsa-tools-1.0.26.1 defaultval gtk+ \navahi-ui-0.6.31 defaultval python \nbluez4-4.101 alsa defaultval pie \nbluez5-5.7 alsa defaultval obex-profiles \n\n\n\n "
- }
- },
- "summary": "List_all_the_PACKAGECONFIG's_flags"
- }
- },
- {
- "test": {
"@alias": "oe-core.bitbake.Test_bitbake_menuconfig",
"author": [
{
@@ -231,4 +155,4 @@
"summary": "test_bitbake_sane_error_for_invalid_layer"
}
}
-] \ No newline at end of file
+]
diff --git a/meta/lib/oeqa/runtime/cases/apt.py b/meta/lib/oeqa/runtime/cases/apt.py
index 74a940d80f..53745df93f 100644
--- a/meta/lib/oeqa/runtime/cases/apt.py
+++ b/meta/lib/oeqa/runtime/cases/apt.py
@@ -22,7 +22,9 @@ class AptRepoTest(AptTest):
@classmethod
def setUpClass(cls):
service_repo = os.path.join(cls.tc.td['DEPLOY_DIR_DEB'], 'all')
- cls.repo_server = HTTPService(service_repo, cls.tc.target.server_ip, logger=cls.tc.logger)
+ cls.repo_server = HTTPService(service_repo,
+ '0.0.0.0', port=cls.tc.target.server_port,
+ logger=cls.tc.logger)
cls.repo_server.start()
@classmethod
@@ -32,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/boot.py b/meta/lib/oeqa/runtime/cases/boot.py
new file mode 100644
index 0000000000..2142f400a0
--- /dev/null
+++ b/meta/lib/oeqa/runtime/cases/boot.py
@@ -0,0 +1,33 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+from subprocess import Popen, PIPE
+import time
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.core.decorator.oetimeout import OETimeout
+from oeqa.core.decorator.data import skipIfQemu
+
+class BootTest(OERuntimeTestCase):
+
+ @OETimeout(120)
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ def test_reboot(self):
+ output = ''
+ count = 0
+ (status, output) = self.target.run('reboot -h')
+ while count < 5:
+ time.sleep(5)
+ cmd = 'ping -c 1 %s' % self.target.ip
+ proc = Popen(cmd, shell=True, stdout=PIPE)
+ output += proc.communicate()[0].decode('utf-8')
+ if proc.poll() == 0:
+ count += 1
+ else:
+ count = 0
+ msg = ('Expected 5 consecutive, got %d.\n'
+ 'ping output is:\n%s' % (count,output))
+ self.assertEqual(count, 5, msg = msg)
diff --git a/meta/lib/oeqa/runtime/cases/buildcpio.py b/meta/lib/oeqa/runtime/cases/buildcpio.py
index f4e871e421..e29bf16ccb 100644
--- a/meta/lib/oeqa/runtime/cases/buildcpio.py
+++ b/meta/lib/oeqa/runtime/cases/buildcpio.py
@@ -12,7 +12,7 @@ class BuildCpioTest(OERuntimeTestCase):
@classmethod
def setUpClass(cls):
- uri = 'https://downloads.yoctoproject.org/mirror/sources/cpio-2.12.tar.gz'
+ uri = 'https://downloads.yoctoproject.org/mirror/sources/cpio-2.13.tar.gz'
cls.project = TargetBuildProject(cls.tc.target,
uri,
dl_dir = cls.tc.td['DL_DIR'])
@@ -27,6 +27,7 @@ class BuildCpioTest(OERuntimeTestCase):
@OEHasPackage(['autoconf'])
def test_cpio(self):
self.project.download_archive()
- self.project.run_configure()
+ 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/df.py b/meta/lib/oeqa/runtime/cases/df.py
index d8d79f32ea..89fd0fb901 100644
--- a/meta/lib/oeqa/runtime/cases/df.py
+++ b/meta/lib/oeqa/runtime/cases/df.py
@@ -11,7 +11,7 @@ class DfTest(OERuntimeTestCase):
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['coreutils', 'busybox'])
def test_df(self):
- cmd = "df / | sed -n '2p' | awk '{print $4}'"
+ cmd = "df -P / | sed -n '2p' | awk '{print $4}'"
(status,output) = self.target.run(cmd)
msg = 'Not enough space on image. Current size is %s' % output
self.assertTrue(int(output)>5120, msg=msg)
diff --git a/meta/lib/oeqa/runtime/cases/dnf.py b/meta/lib/oeqa/runtime/cases/dnf.py
index de3759995e..f40c63026e 100644
--- a/meta/lib/oeqa/runtime/cases/dnf.py
+++ b/meta/lib/oeqa/runtime/cases/dnf.py
@@ -53,7 +53,8 @@ class DnfRepoTest(DnfTest):
@classmethod
def setUpClass(cls):
cls.repo_server = HTTPService(os.path.join(cls.tc.td['WORKDIR'], 'oe-testimage-repo'),
- cls.tc.target.server_ip, logger=cls.tc.logger)
+ '0.0.0.0', port=cls.tc.target.server_port,
+ logger=cls.tc.logger)
cls.repo_server.start()
@classmethod
diff --git a/meta/lib/oeqa/runtime/cases/logrotate.py b/meta/lib/oeqa/runtime/cases/logrotate.py
index bfa57c534a..a4efcd07c0 100644
--- a/meta/lib/oeqa/runtime/cases/logrotate.py
+++ b/meta/lib/oeqa/runtime/cases/logrotate.py
@@ -18,32 +18,54 @@ class LogrotateTest(OERuntimeTestCase):
@classmethod
def tearDownClass(cls):
cls.tc.target.run('mv -f $HOME/wtmp.oeqabak /etc/logrotate.d/wtmp && rm -rf $HOME/logrotate_dir')
+ cls.tc.target.run('rm -rf /var/log/logrotate_testfile && rm -rf /etc/logrotate.d/logrotate_testfile')
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['logrotate'])
- def test_1_logrotate_setup(self):
+ def test_logrotate_wtmp(self):
+
+ # /var/log/wtmp may not always exist initially, so use touch to ensure it is present
+ status, output = self.target.run('touch /var/log/wtmp')
+ msg = ('Could not create/update /var/log/wtmp with touch')
+ self.assertEqual(status, 0, msg = msg)
+
status, output = self.target.run('mkdir $HOME/logrotate_dir')
- msg = 'Could not create logrotate_dir. Output: %s' % output
+ msg = ('Could not create logrotate_dir. Output: %s' % output)
self.assertEqual(status, 0, msg = msg)
- cmd = ('sed -i "s#wtmp {#wtmp {\\n olddir $HOME/logrotate_dir#"'
- ' /etc/logrotate.d/wtmp')
- status, output = self.target.run(cmd)
- msg = ('Could not write to logrotate.d/wtmp file. Status and output: '
- ' %s and %s' % (status, output))
+ status, output = self.target.run('echo "create \n olddir $HOME/logrotate_dir \n include /etc/logrotate.d/wtmp" > /tmp/logrotate-test.conf')
+ msg = ('Could not write to /tmp/logrotate-test.conf')
+ 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')
+ msg = ("logrotate did not successfully rotate the wtmp log. Output from logrotate -vf: \n%s" % (logrotate_output))
+ self.assertEqual(status, 0, msg = msg)
+
+ @OETestDepends(['logrotate.LogrotateTest.test_logrotate_wtmp'])
+ def test_logrotate_newlog(self):
+
+ status, output = self.target.run('echo "oeqa logrotate test file" > /var/log/logrotate_testfile')
+ msg = ('Could not create logrotate test file in /var/log')
+ self.assertEqual(status, 0, msg = msg)
+
+ status, output = self.target.run('echo "/var/log/logrotate_testfile {\n missingok \n monthly \n rotate 1" > /etc/logrotate.d/logrotate_testfile')
+ msg = ('Could not write to /etc/logrotate.d/logrotate_testfile')
+ self.assertEqual(status, 0, msg = msg)
+
+ status, output = self.target.run('echo "create \n olddir $HOME/logrotate_dir \n include /etc/logrotate.d/logrotate_testfile" > /tmp/logrotate-test2.conf')
+ msg = ('Could not write to /tmp/logrotate_test2.conf')
self.assertEqual(status, 0, msg = msg)
- @OETestDepends(['logrotate.LogrotateTest.test_1_logrotate_setup'])
- def test_2_logrotate(self):
- status, output = self.target.run('echo "create \n include /etc/logrotate.d" > /tmp/logrotate-test.conf')
- status, output = self.target.run('logrotate -f /tmp/logrotate-test.conf')
+ status, output = self.target.run('find $HOME/logrotate_dir -type f | grep logrotate_testfile.1')
+ msg = ('A rotated log for logrotate_testfile is already present in logrotate_dir')
+ self.assertEqual(status, 1, msg = msg)
- msg = ('logrotate service could not be reloaded. Status and output: '
- '%s and %s' % (status, output))
+ # If logrotate fails to rotate the log, view the verbose output of logrotate instead of just listing the files in olddir
+ _, logrotate_output = self.target.run('logrotate -vf /tmp/logrotate-test2.conf')
+ status, _ = self.target.run('find $HOME/logrotate_dir -type f | grep logrotate_testfile.1')
+ msg = ('logrotate did not successfully rotate the logrotate_test log. Output from logrotate -vf: \n%s' % (logrotate_output))
self.assertEqual(status, 0, msg = msg)
- _, output = self.target.run('ls -la $HOME/logrotate_dir/ | wc -l')
- msg = ('new logfile could not be created. List of files within log '
- 'directory: %s' % (
- self.target.run('ls -la $HOME/logrotate_dir')[1]))
- self.assertTrue(int(output)>=3, msg = msg)
+
diff --git a/meta/lib/oeqa/runtime/cases/ltp.py b/meta/lib/oeqa/runtime/cases/ltp.py
index 30548640bc..a66d5d13d7 100644
--- a/meta/lib/oeqa/runtime/cases/ltp.py
+++ b/meta/lib/oeqa/runtime/cases/ltp.py
@@ -57,9 +57,9 @@ class LtpTestBase(OERuntimeTestCase):
class LtpTest(LtpTestBase):
- ltp_groups = ["math", "syscalls", "dio", "io", "mm", "ipc", "sched", "nptl", "pty", "containers", "controllers", "filecaps", "cap_bounds", "fcntl-locktests", "connectors","timers", "commands", "net.ipv6_lib", "input","fs_perms_simple"]
+ 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/ltp_stress.py b/meta/lib/oeqa/runtime/cases/ltp_stress.py
new file mode 100644
index 0000000000..2445ffbc93
--- /dev/null
+++ b/meta/lib/oeqa/runtime/cases/ltp_stress.py
@@ -0,0 +1,98 @@
+# LTP Stress runtime
+#
+# Copyright (c) 2019 MontaVista Software, LLC
+#
+# SPDX-License-Identifier: MIT
+#
+
+import time
+import datetime
+import pprint
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+from oeqa.core.decorator.data import skipIfQemu
+from oeqa.utils.logparser import LtpParser
+
+class LtpStressBase(OERuntimeTestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ cls.ltp_startup()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.ltp_finishup()
+
+ @classmethod
+ def ltp_startup(cls):
+ cls.sections = {}
+ cls.failmsg = ""
+ test_log_dir = os.path.join(cls.td.get('WORKDIR', ''), 'testimage')
+ timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
+
+ cls.ltptest_log_dir_link = os.path.join(test_log_dir, 'ltpstress_log')
+ cls.ltptest_log_dir = '%s.%s' % (cls.ltptest_log_dir_link, timestamp)
+ os.makedirs(cls.ltptest_log_dir)
+
+ cls.tc.target.run("mkdir -p /opt/ltp/results")
+
+ if not hasattr(cls.tc, "extraresults"):
+ cls.tc.extraresults = {}
+ cls.extras = cls.tc.extraresults
+ cls.extras['ltpstressresult.rawlogs'] = {'log': ""}
+
+
+ @classmethod
+ def ltp_finishup(cls):
+ cls.extras['ltpstressresult.sections'] = cls.sections
+
+ # update symlink to ltp_log
+ if os.path.exists(cls.ltptest_log_dir_link):
+ os.remove(cls.ltptest_log_dir_link)
+
+ os.symlink(os.path.basename(cls.ltptest_log_dir), cls.ltptest_log_dir_link)
+
+ if cls.failmsg:
+ cls.fail(cls.failmsg)
+
+class LtpStressTest(LtpStressBase):
+
+ def runltp(self, stress_group):
+ cmd = '/opt/ltp/runltp -f %s -p -q 2>@1 | tee /opt/ltp/results/%s' % (stress_group, stress_group)
+ starttime = time.time()
+ (status, output) = self.target.run(cmd)
+ endtime = time.time()
+ with open(os.path.join(self.ltptest_log_dir, "%s" % stress_group), 'w') as f:
+ f.write(output)
+
+ self.extras['ltpstressresult.rawlogs']['log'] = self.extras['ltpstressresult.rawlogs']['log'] + output
+
+ parser = LtpParser()
+ results, sections = parser.parse(os.path.join(self.ltptest_log_dir, "%s" % stress_group))
+
+ runtime = int(endtime-starttime)
+ sections['duration'] = runtime
+ self.sections[stress_group] = sections
+
+ failed_tests = {}
+ for test in results:
+ result = results[test]
+ testname = ("ltpstressresult." + stress_group + "." + test)
+ self.extras[testname] = {'status': result}
+ if result == 'FAILED':
+ failed_tests[stress_group] = test
+
+ if failed_tests:
+ self.failmsg = self.failmsg + "Failed ptests:\n%s" % pprint.pformat(failed_tests)
+
+ # LTP stress runtime tests
+ #
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ @OEHasPackage(["ltp"])
+ def test_ltp_stress(self):
+ self.tc.target.run("sed -i -r 's/^fork12.*//' /opt/ltp/runtest/crashme")
+ self.runltp('crashme')
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/opkg.py b/meta/lib/oeqa/runtime/cases/opkg.py
index bb8b6d99d2..9cfee1cd88 100644
--- a/meta/lib/oeqa/runtime/cases/opkg.py
+++ b/meta/lib/oeqa/runtime/cases/opkg.py
@@ -5,7 +5,7 @@
import os
from oeqa.utils.httpserver import HTTPService
from oeqa.runtime.case import OERuntimeTestCase
-from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature
+from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature, skipIfFeature
from oeqa.runtime.decorator.package import OEHasPackage
class OpkgTest(OERuntimeTestCase):
@@ -25,7 +25,9 @@ class OpkgRepoTest(OpkgTest):
if cls.tc.td["MULTILIB_VARIANTS"]:
allarchfeed = cls.tc.td["TUNE_PKGARCH"]
service_repo = os.path.join(cls.tc.td['DEPLOY_DIR_IPK'], allarchfeed)
- cls.repo_server = HTTPService(service_repo, cls.tc.target.server_ip, logger=cls.tc.logger)
+ cls.repo_server = HTTPService(service_repo,
+ '0.0.0.0', port=cls.tc.target.server_port,
+ logger=cls.tc.logger)
cls.repo_server.start()
@classmethod
@@ -45,6 +47,8 @@ class OpkgRepoTest(OpkgTest):
'Test requires package-management to be in IMAGE_FEATURES')
@skipIfNotDataVar('IMAGE_PKGTYPE', 'ipk',
'IPK is not the primary package manager')
+ @skipIfFeature('read-only-rootfs',
+ 'Test does not work with read-only-rootfs in IMAGE_FEATURES')
@OEHasPackage(['opkg'])
def test_opkg_install_from_repo(self):
self.setup_source_config_for_package_install()
diff --git a/meta/lib/oeqa/runtime/cases/parselogs.py b/meta/lib/oeqa/runtime/cases/parselogs.py
index 15343d7abb..a1791b5cca 100644
--- a/meta/lib/oeqa/runtime/cases/parselogs.py
+++ b/meta/lib/oeqa/runtime/cases/parselogs.py
@@ -55,11 +55,15 @@ 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 "
+ "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 = [
- "uvesafb",
]
x86_common = [
@@ -81,11 +85,8 @@ qemux86_common = [
"fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.",
"can't claim BAR ",
'amd_nb: Cannot enumerate AMD northbridges',
- 'uvesafb: 5000 ms task timeout, infinitely waiting',
'tsc: HPET/PMTIMER calibration failed',
"modeset(0): Failed to initialize the DRI2 extension",
- "uvesafb: cannot reserve video memory at",
- "uvesafb: probe of uvesafb.0 failed with error",
"glamor initialization failed",
] + common_errors
@@ -133,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',
@@ -184,11 +186,6 @@ ignore_errors = {
'Failed to make EGL context current',
'glamor initialization failed',
] + common_errors,
- 'mpc8315e-rdb' : [
- 'of_irq_parse_pci: failed with',
- 'Fatal server error:',
- 'Server terminated with error',
- ] + common_errors,
}
log_locations = ["/var/log/","/var/log/dmesg", "/tmp/dmesg_output.log"]
diff --git a/meta/lib/oeqa/runtime/cases/ptest.py b/meta/lib/oeqa/runtime/cases/ptest.py
index d8d1e1b344..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)
@@ -67,8 +89,13 @@ class PtestRunnerTest(OERuntimeTestCase):
extras[testname] = {'status': result}
failed_tests = {}
+
+ for section in sections:
+ if 'exitcode' in sections[section].keys():
+ failed_tests[section] = sections[section]["log"]
+
for section in results:
- failed_testcases = [ "_".join(test.translate(trans).split()) for test in results[section] if results[section][test] == 'fail' ]
+ failed_testcases = [ "_".join(test.translate(trans).split()) for test in results[section] if results[section][test] == 'FAILED' ]
if failed_testcases:
failed_tests[section] = failed_testcases
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/storage.py b/meta/lib/oeqa/runtime/cases/storage.py
new file mode 100644
index 0000000000..166d26b252
--- /dev/null
+++ b/meta/lib/oeqa/runtime/cases/storage.py
@@ -0,0 +1,149 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+import re
+import time
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.core.decorator.data import skipIfQemu
+
+class StorageBase(OERuntimeTestCase):
+ def storage_mount(cls, tmo=1):
+
+ (status, output) = cls.target.run('mkdir -p %s' % cls.mount_point)
+ (status, output) = cls.target.run('mount %s %s' % (cls.device, cls.mount_point))
+ msg = ('Mount failed: %s.' % status)
+ cls.assertFalse(output, msg = msg)
+ time.sleep(tmo)
+ (status, output) = cls.target.run('cat /proc/mounts')
+ match = re.search('%s' % cls.device, output)
+ if match:
+ msg = ('Device %s not mounted.' % cls.device)
+ cls.assertTrue(match, msg = msg)
+
+ (status, output) = cls.target.run('mkdir -p %s' % cls.test_dir)
+
+ (status, output) = cls.target.run('rm -f %s/*' % cls.test_dir)
+ msg = ('Failed to cleanup files @ %s/*' % cls.test_dir)
+ cls.assertFalse(output, msg = msg)
+
+
+ def storage_basic(cls):
+ # create file on device
+ (status, output) = cls.target.run('touch %s/%s' % (cls.test_dir, cls.test_file))
+ msg = ('File %s not created on %s' % (cls.test_file, cls.device))
+ cls.assertFalse(status, msg = msg)
+ # move file
+ (status, output) = cls.target.run('mv %s/%s %s/%s1' %
+ (cls.test_dir, cls.test_file, cls.test_dir, cls.test_file))
+ msg = ('File %s not moved to %s' % (cls.test_file, cls.device))
+ cls.assertFalse(status, msg = msg)
+ # remove file
+ (status, output) = cls.target.run('rm %s/%s1' % (cls.test_dir, cls.test_file))
+ msg = ('File %s not removed on %s' % (cls.test_file, cls.device))
+ cls.assertFalse(status, msg = msg)
+
+ def storage_read(cls):
+ # check if message is in file
+ (status, output) = cls.target.run('cat %s/%s' %
+ (cls.test_dir, cls.test_file))
+
+ match = re.search('%s' % cls.test_msg, output)
+ msg = ('Test message %s not in file %s.' % (cls.test_msg, cls.test_file))
+ cls.assertEqual(status, 0, msg = msg)
+
+ def storage_write(cls):
+ # create test message in file on device
+ (status, output) = cls.target.run('echo "%s" > %s/%s' %
+ (cls.test_msg, cls.test_dir, cls.test_file))
+ msg = ('File %s not create test message on %s' % (cls.test_file, cls.device))
+ cls.assertEqual(status, 0, msg = msg)
+
+ def storage_umount(cls, tmo=1):
+ time.sleep(tmo)
+ (status, output) = cls.target.run('umount %s' % cls.mount_point)
+
+ if status == 32:
+ # already unmounted, should it fail?
+ return
+ else:
+ msg = ('Device not unmount %s' % cls.mount_point)
+ cls.assertEqual(status, 0, msg = msg)
+
+ (status, output) = cls.target.run('cat /proc/mounts')
+ match = re.search('%s' % cls.device, output)
+ if match:
+ msg = ('Device %s still mounted.' % cls.device)
+ cls.assertTrue(match, msg = msg)
+
+
+class UsbTest(StorageBase):
+ '''
+ This is to mimic the usb test previously done in manual bsp-hw.json
+ '''
+ @classmethod
+ def setUpClass(self):
+ self.test_msg = "Hello World - USB"
+ self.mount_point = "/media/usb"
+ self.device = "/dev/sda1"
+ self.test_file = "usb.tst"
+ self.test_dir = os.path.join(self.mount_point, "oeqa")
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ def test_usb_mount(self):
+ self.storage_umount(2)
+ self.storage_mount(5)
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.UsbTest.test_usb_mount'])
+ def test_usb_basic_operations(self):
+ self.storage_basic()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.UsbTest.test_usb_basic_operations'])
+ def test_usb_basic_rw(self):
+ self.storage_write()
+ self.storage_read()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.UsbTest.test_usb_mount'])
+ def test_usb_umount(self):
+ self.storage_umount(2)
+
+
+class MMCTest(StorageBase):
+ '''
+ This is to mimic the usb test previously done in manual bsp-hw.json
+ '''
+ @classmethod
+ def setUpClass(self):
+ self.test_msg = "Hello World - MMC"
+ self.mount_point = "/media/mmc"
+ self.device = "/dev/mmcblk1p1"
+ self.test_file = "mmc.tst"
+ self.test_dir = os.path.join(self.mount_point, "oeqa")
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ def test_mmc_mount(self):
+ self.storage_umount(2)
+ self.storage_mount()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.MMCTest.test_mmc_mount'])
+ def test_mmc_basic_operations(self):
+ self.storage_basic()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.MMCTest.test_mmc_basic_operations'])
+ def test_mmc_basic_rw(self):
+ self.storage_write()
+ self.storage_read()
+
+ @skipIfQemu('qemuall', 'Test only runs on real hardware')
+ @OETestDepends(['storage.MMCTest.test_mmc_mount'])
+ def test_mmc_umount(self):
+ self.storage_umount(2)
diff --git a/meta/lib/oeqa/runtime/cases/systemd.py b/meta/lib/oeqa/runtime/cases/systemd.py
index c11fa49b07..7c44abe8ed 100644
--- a/meta/lib/oeqa/runtime/cases/systemd.py
+++ b/meta/lib/oeqa/runtime/cases/systemd.py
@@ -9,7 +9,7 @@ from oeqa.runtime.case import OERuntimeTestCase
from oeqa.core.decorator.depends import OETestDepends
from oeqa.core.decorator.data import skipIfDataVar, skipIfNotDataVar
from oeqa.runtime.decorator.package import OEHasPackage
-from oeqa.core.decorator.data import skipIfNotFeature
+from oeqa.core.decorator.data import skipIfNotFeature, skipIfFeature
class SystemdTest(OERuntimeTestCase):
@@ -114,12 +114,26 @@ class SystemdServiceTests(SystemdTest):
self.systemctl('is-active', 'avahi-daemon.service', verbose=True)
@OETestDepends(['systemd.SystemdServiceTests.test_systemd_status'])
+ @skipIfFeature('read-only-rootfs',
+ 'Test is only meant to run without read-only-rootfs in IMAGE_FEATURES')
def test_systemd_disable_enable(self):
self.systemctl('disable', 'avahi-daemon.service')
self.systemctl('is-enabled', 'avahi-daemon.service', expected=1)
self.systemctl('enable', 'avahi-daemon.service')
self.systemctl('is-enabled', 'avahi-daemon.service')
+ @OETestDepends(['systemd.SystemdServiceTests.test_systemd_status'])
+ @skipIfNotFeature('read-only-rootfs',
+ 'Test is only meant to run with read-only-rootfs in IMAGE_FEATURES')
+ def test_systemd_disable_enable_ro(self):
+ status = self.target.run('mount -orw,remount /')[0]
+ self.assertTrue(status == 0, msg='Remounting / as r/w failed')
+ try:
+ self.test_systemd_disable_enable()
+ finally:
+ status = self.target.run('mount -oro,remount /')[0]
+ self.assertTrue(status == 0, msg='Remounting / as r/o failed')
+
class SystemdJournalTests(SystemdTest):
@OETestDepends(['systemd.SystemdBasicTests.test_systemd_basic'])
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
new file mode 100644
index 0000000000..36b4f9e375
--- /dev/null
+++ b/meta/lib/oeqa/runtime/cases/weston.py
@@ -0,0 +1,75 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+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'])
+ def test_weston_running(self):
+ cmd ='%s | grep [w]eston-desktop-shell' % self.tc.target_cmds['ps']
+ status, output = self.target.run(cmd)
+ 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 77d58eefa7..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',
@@ -98,6 +99,12 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
target_ip = target_ip_port[0]
kwargs['port'] = target_ip_port[1]
+ if server_ip:
+ server_ip_port = server_ip.split(':')
+ if len(server_ip_port) == 2:
+ server_ip = server_ip_port[0]
+ kwargs['server_port'] = int(server_ip_port[1])
+
if target_type == 'simpleremote':
target = OESSHTarget(logger, target_ip, server_ip, **kwargs)
elif target_type == 'qemu':
@@ -138,7 +145,7 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
def add_controller_list(path):
if not os.path.exists(os.path.join(path, '__init__.py')):
raise OSError('Controllers directory %s exists but is missing __init__.py' % path)
- files = sorted([f for f in os.listdir(path) if f.endswith('.py') and not f.startswith('_')])
+ files = sorted([f for f in os.listdir(path) if f.endswith('.py') and not f.startswith('_') and not f.startswith('.#')])
for f in files:
module = 'oeqa.controllers.' + f[:-3]
if module not in controllerslist:
@@ -178,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 0a5e68d5fd..e7fc211a47 100644
--- a/meta/lib/oeqa/sdk/cases/buildcpio.py
+++ b/meta/lib/oeqa/sdk/cases/buildcpio.py
@@ -17,18 +17,19 @@ class BuildCpioTest(OESDKTestCase):
"""
def test_cpio(self):
with tempfile.TemporaryDirectory(prefix="cpio-", dir=self.tc.sdk_dir) as testdir:
- tarball = self.fetch(testdir, self.td["DL_DIR"], "https://ftp.gnu.org/gnu/cpio/cpio-2.12.tar.gz")
+ tarball = self.fetch(testdir, self.td["DL_DIR"], "https://ftp.gnu.org/gnu/cpio/cpio-2.13.tar.gz")
dirs = {}
- dirs["source"] = os.path.join(testdir, "cpio-2.12")
+ dirs["source"] = os.path.join(testdir, "cpio-2.13")
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 {build} && {source}/configure $CONFIGURE_FLAGS".format(**dirs))
+ 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/sdk/context.py b/meta/lib/oeqa/sdk/context.py
index 09e77c19fe..01c38c24e6 100644
--- a/meta/lib/oeqa/sdk/context.py
+++ b/meta/lib/oeqa/sdk/context.py
@@ -136,7 +136,7 @@ class OESDKTestContextExecutor(OETestContextExecutor):
sdk_envs = OESDKTestContextExecutor._get_sdk_environs(args.sdk_dir)
if not sdk_envs:
raise argparse_oe.ArgumentUsageError("No available SDK "\
- "enviroments found at %s" % args.sdk_dir, self.name)
+ "environments found at %s" % args.sdk_dir, self.name)
if args.list_sdk_env:
self._display_sdk_envs(logger.info, args, sdk_envs)
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/case.py b/meta/lib/oeqa/selftest/case.py
index ac3308d8a4..dcad4f76ec 100644
--- a/meta/lib/oeqa/selftest/case.py
+++ b/meta/lib/oeqa/selftest/case.py
@@ -6,7 +6,6 @@
import sys
import os
-import shutil
import glob
import errno
from unittest.util import safe_repr
@@ -30,9 +29,7 @@ class OESelftestTestCase(OETestCase):
cls.builddir = cls.tc.config_paths['builddir']
cls.localconf_path = cls.tc.config_paths['localconf']
- cls.localconf_backup = cls.tc.config_paths['localconf_class_backup']
cls.local_bblayers_path = cls.tc.config_paths['bblayers']
- cls.local_bblayers_backup = cls.tc.config_paths['bblayers_class_backup']
cls.testinc_path = os.path.join(cls.tc.config_paths['builddir'],
"conf/selftest.inc")
@@ -43,8 +40,7 @@ class OESelftestTestCase(OETestCase):
cls._track_for_cleanup = [
cls.testinc_path, cls.testinc_bblayers_path,
- cls.machineinc_path, cls.localconf_backup,
- cls.local_bblayers_backup]
+ cls.machineinc_path]
cls.add_include()
@@ -102,30 +98,6 @@ class OESelftestTestCase(OETestCase):
def setUp(self):
super(OESelftestTestCase, self).setUp()
os.chdir(self.builddir)
- # Check if local.conf or bblayers.conf files backup exists
- # from a previous failed test and restore them
- if os.path.isfile(self.localconf_backup) or os.path.isfile(
- self.local_bblayers_backup):
- self.logger.debug("\
-Found a local.conf and/or bblayers.conf backup from a previously aborted test.\
-Restoring these files now, but tests should be re-executed from a clean environment\
-to ensure accurate results.")
- try:
- shutil.copyfile(self.localconf_backup, self.localconf_path)
- except OSError as e:
- if e.errno != errno.ENOENT:
- raise
- try:
- shutil.copyfile(self.local_bblayers_backup,
- self.local_bblayers_path)
- except OSError as e:
- if e.errno != errno.ENOENT:
- raise
- else:
- # backup local.conf and bblayers.conf
- shutil.copyfile(self.localconf_path, self.localconf_backup)
- shutil.copyfile(self.local_bblayers_path, self.local_bblayers_backup)
- self.logger.debug("Creating local.conf and bblayers.conf backups.")
# we don't know what the previous test left around in config or inc files
# if it failed so we need a fresh start
try:
diff --git a/meta/lib/oeqa/selftest/cases/archiver.py b/meta/lib/oeqa/selftest/cases/archiver.py
index f8672f8abb..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,6 +126,186 @@ 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-native'
+
+ features = 'INHERIT += "archiver"\n'
+ features += 'ARCHIVER_MODE[src] = "%s"\n' % (mode)
+ if extra_config:
+ features += extra_config
+ self.write_config(features)
+
+ bitbake('-c clean %s' % (target))
+ bitbake('-c deploy_archives %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))
+
+ archive_path = os.path.join(glob_result[0], target_file_name)
+ self.assertTrue(os.path.exists(archive_path), 'Missing archive file %s' % (target_file_name))
+
+ def test_archiver_mode_original(self):
+ """
+ Test that the archiver works with `ARCHIVER_MODE[src] = "original"`.
+ """
+
+ self._test_archiver_mode('original', 'ed-1.14.1.tar.lz')
+
+ def test_archiver_mode_patched(self):
+ """
+ Test that the archiver works with `ARCHIVER_MODE[src] = "patched"`.
+ """
+
+ 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-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-native-1.14.1-r0-recipe.tar.gz',
+ 'ARCHIVER_MODE[recipe] = "1"\n')
+
+ def test_archiver_mode_diff(self):
+ """
+ Test that the archiver works with `ARCHIVER_MODE[diff] = "1"`.
+ Exclusions controlled by `ARCHIVER_MODE[diff-exclude]` are not yet tested.
+ """
+
+ 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):
+ """
+ Test that the archiver works with `ARCHIVER_MODE[dumpdata] = "1"`.
+ """
+
+ 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):
+ """
+ Test that the archiver works with `ARCHIVER_MODE[src] = "mirror"`.
+ """
+
+ self._test_archiver_mode('mirror', 'ed-1.14.1.tar.lz',
+ 'BB_GENERATE_MIRROR_TARBALLS = "1"\n')
+
+ def test_archiver_mode_mirror_excludes(self):
+ """
+ Test that the archiver works with `ARCHIVER_MODE[src] = "mirror"` and
+ correctly excludes an archive when its URL matches
+ `ARCHIVER_MIRROR_EXCLUDE`.
+ """
+
+ target='selftest-ed'
+ target_file_name = 'ed-1.14.1.tar.lz'
+
+ features = 'INHERIT += "archiver"\n'
+ features += 'ARCHIVER_MODE[src] = "mirror"\n'
+ features += 'BB_GENERATE_MIRROR_TARBALLS = "1"\n'
+ features += 'ARCHIVER_MIRROR_EXCLUDE = "${GNU_MIRROR}"\n'
+ self.write_config(features)
+
+ 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))
+ glob_result = glob.glob(glob_str)
+ self.assertTrue(glob_result, 'Missing archiver directory for %s' % (target))
+
+ archive_path = os.path.join(glob_result[0], target_file_name)
+ self.assertFalse(os.path.exists(archive_path), 'Failed to exclude archive file %s' % (target_file_name))
+
+ def test_archiver_mode_mirror_combined(self):
+ """
+ Test that the archiver works with `ARCHIVER_MODE[src] = "mirror"`
+ and `ARCHIVER_MODE[mirror] = "combined"`. Archives for multiple recipes
+ should all end up in the 'mirror' directory.
+ """
+
+ 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)
+
+ for target in ['selftest-ed', 'selftest-hardlink']:
+ bitbake('-c clean %s' % (target))
+ bitbake('-c deploy_archives %s' % (target))
+
+ bb_vars = get_bb_vars(['DEPLOY_DIR_SRC'])
+ for target_file_name in ['ed-1.14.1.tar.lz', 'hello.c']:
+ 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/bblayers.py b/meta/lib/oeqa/selftest/cases/bblayers.py
index 954488dfd1..f131d9856c 100644
--- a/meta/lib/oeqa/selftest/cases/bblayers.py
+++ b/meta/lib/oeqa/selftest/cases/bblayers.py
@@ -14,21 +14,21 @@ class BitbakeLayers(OESelftestTestCase):
def test_bitbakelayers_showcrossdepends(self):
result = runCmd('bitbake-layers show-cross-depends')
- self.assertTrue('aspell' in result.output, msg = "No dependencies were shown. bitbake-layers show-cross-depends output: %s" % result.output)
+ self.assertIn('aspell', result.output)
def test_bitbakelayers_showlayers(self):
result = runCmd('bitbake-layers show-layers')
- self.assertTrue('meta-selftest' in result.output, msg = "No layers were shown. bitbake-layers show-layers output: %s" % result.output)
+ self.assertIn('meta-selftest', result.output)
def test_bitbakelayers_showappends(self):
recipe = "xcursor-transparent-theme"
bb_file = self.get_recipe_basename(recipe)
result = runCmd('bitbake-layers show-appends')
- self.assertTrue(bb_file in result.output, msg="%s file was not recognised. bitbake-layers show-appends output: %s" % (bb_file, result.output))
+ self.assertIn(bb_file, result.output)
def test_bitbakelayers_showoverlayed(self):
result = runCmd('bitbake-layers show-overlayed')
- self.assertTrue('aspell' in result.output, msg="aspell overlayed recipe was not recognised bitbake-layers show-overlayed %s" % result.output)
+ self.assertIn('aspell', result.output)
def test_bitbakelayers_flatten(self):
recipe = "xcursor-transparent-theme"
diff --git a/meta/lib/oeqa/selftest/cases/bbtests.py b/meta/lib/oeqa/selftest/cases/bbtests.py
index 9461c7ed14..dc423ec439 100644
--- a/meta/lib/oeqa/selftest/cases/bbtests.py
+++ b/meta/lib/oeqa/selftest/cases/bbtests.py
@@ -44,7 +44,7 @@ class BitbakeTests(OESelftestTestCase):
find_build_completed = re.search(r"Tasks Summary:.*(\n.*)*NOTE: Test for bb\.event\.BuildCompleted", result.output)
self.assertTrue(find_build_started, msg = "Match failed in:\n%s" % result.output)
self.assertTrue(find_build_completed, msg = "Match failed in:\n%s" % result.output)
- self.assertFalse('Test for bb.event.InvalidEvent' in result.output, msg = "\"Test for bb.event.InvalidEvent\" message found during bitbake process. bitbake output: %s" % result.output)
+ self.assertNotIn('Test for bb.event.InvalidEvent', result.output)
def test_local_sstate(self):
bitbake('m4-native')
@@ -59,7 +59,7 @@ class BitbakeTests(OESelftestTestCase):
def test_bitbake_invalid_target(self):
result = bitbake('asdf', ignore_status=True)
- self.assertTrue("ERROR: Nothing PROVIDES 'asdf'" in result.output, msg = "Though no 'asdf' target exists, bitbake didn't output any err. message. bitbake output: %s" % result.output)
+ self.assertIn("ERROR: Nothing PROVIDES 'asdf'", result.output)
def test_warnings_errors(self):
result = bitbake('-b asdf', ignore_status=True)
@@ -123,7 +123,7 @@ class BitbakeTests(OESelftestTestCase):
for f in ['pn-buildlist', 'task-depends.dot']:
self.addCleanup(os.remove, f)
self.assertTrue('Task dependencies saved to \'task-depends.dot\'' in result.output, msg = "No task dependency \"task-depends.dot\" file was generated for the given task target. bitbake output: %s" % result.output)
- self.assertTrue(recipe in ftools.read_file(os.path.join(self.builddir, 'task-depends.dot')), msg = "No \"%s\" dependency found in task-depends.dot file." % recipe)
+ self.assertIn(recipe, ftools.read_file(os.path.join(self.builddir, 'task-depends.dot')))
def test_image_manifest(self):
bitbake('core-image-minimal')
@@ -147,8 +147,7 @@ INHERIT_remove = \"report-error\"
bitbake('-ccleanall man-db')
self.delete_recipeinc('man-db')
self.assertEqual(result.status, 1, msg="Command succeded when it should have failed. bitbake output: %s" % result.output)
- self.assertTrue('Fetcher failure: Unable to find file file://invalid anywhere. The paths that were searched were:' in result.output, msg = "\"invalid\" file \
-doesn't exist, yet no error message encountered. bitbake output: %s" % result.output)
+ self.assertIn('Fetcher failure: Unable to find file file://invalid anywhere. The paths that were searched were:', result.output)
line = self.getline(result, 'Fetcher failure for URL: \'file://invalid\'. Unable to fetch URL from any source.')
self.assertTrue(line and line.startswith("ERROR:"), msg = "\"invalid\" file \
doesn't exist, yet fetcher didn't report any error. bitbake output: %s" % result.output)
@@ -173,7 +172,7 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
def test_environment(self):
self.write_config("TEST_ENV=\"localconf\"")
result = runCmd('bitbake -e | grep TEST_ENV=')
- self.assertTrue('localconf' in result.output, msg = "bitbake didn't report any value for TEST_ENV variable. To test, run 'bitbake -e | grep TEST_ENV='")
+ self.assertIn('localconf', result.output)
def test_dry_run(self):
result = runCmd('bitbake -n m4-native')
@@ -193,10 +192,10 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
self.track_for_cleanup(preconf)
ftools.write_file(preconf ,"TEST_PREFILE=\"prefile\"")
result = runCmd('bitbake -r conf/prefile.conf -e | grep TEST_PREFILE=')
- self.assertTrue('prefile' in result.output, "Preconfigure file \"prefile.conf\"was not taken into consideration. ")
+ self.assertIn('prefile', result.output)
self.write_config("TEST_PREFILE=\"localconf\"")
result = runCmd('bitbake -r conf/prefile.conf -e | grep TEST_PREFILE=')
- self.assertTrue('localconf' in result.output, "Preconfigure file \"prefile.conf\"was not taken into consideration.")
+ self.assertIn('localconf', result.output)
def test_postfile(self):
postconf = os.path.join(self.builddir, 'conf/postfile.conf')
@@ -204,7 +203,7 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
ftools.write_file(postconf , "TEST_POSTFILE=\"postfile\"")
self.write_config("TEST_POSTFILE=\"localconf\"")
result = runCmd('bitbake -R conf/postfile.conf -e | grep TEST_POSTFILE=')
- self.assertTrue('postfile' in result.output, "Postconfigure file \"postfile.conf\"was not taken into consideration.")
+ self.assertIn('postfile', result.output)
def test_checkuri(self):
result = runCmd('bitbake -c checkuri m4')
diff --git a/meta/lib/oeqa/selftest/cases/buildoptions.py b/meta/lib/oeqa/selftest/cases/buildoptions.py
index 6a5378d3ff..e91f0bd18f 100644
--- a/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -143,7 +143,7 @@ class BuildhistoryTests(BuildhistoryBase):
def test_buildhistory_buildtime_pr_backwards(self):
target = 'xcursor-transparent-theme'
- error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds from (.*-r1.* to .*-r0.*)" % target
+ error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds \(from .*-r1.* to .*-r0.*\)" % target
self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error)
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 3a25da2033..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)
@@ -137,6 +138,7 @@ class DevtoolBase(OESelftestTestCase):
with open(recipefile, 'r') as f:
invar = None
invalue = None
+ inherits = set()
for line in f:
var = None
if invar:
@@ -158,7 +160,7 @@ class DevtoolBase(OESelftestTestCase):
invar = var
continue
elif line.startswith('inherit '):
- inherits = line.split()[1:]
+ inherits.update(line.split()[1:])
if var and var in checkvars:
needvalue = checkvars.pop(var)
@@ -510,6 +512,30 @@ class DevtoolAddTests(DevtoolBase):
checkvars['SRC_URI'] = url.replace(testver, '${PV}')
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
+ # Test devtool add
+ self.track_for_cleanup(self.workspacedir)
+ self.add_command_to_tearDown('bitbake -c cleansstate %s' % pn)
+ self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+ result = runCmd('devtool add \'%s\'' % url)
+ self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created')
+ self.assertExists(os.path.join(self.workspacedir, 'recipes', pn, '%s_%s.bb' % (pn, pv)), 'Recipe not created')
+ self.assertExists(os.path.join(self.workspacedir, 'recipes', pn, pn, 'npm-shrinkwrap.json'), 'Shrinkwrap not created')
+ # Test devtool status
+ result = runCmd('devtool status')
+ self.assertIn(pn, result.output)
+ # Clean up anything in the workdir/sysroot/sstate cache (have to do this *after* devtool add since the recipe only exists then)
+ bitbake('%s -c cleansstate' % pn)
+ # Test devtool build
+ result = runCmd('devtool build %s' % pn)
+
class DevtoolModifyTests(DevtoolBase):
def test_devtool_modify(self):
@@ -655,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:
@@ -751,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):
@@ -1087,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'
@@ -1426,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)
@@ -1496,11 +1599,13 @@ class DevtoolUpgradeTests(DevtoolBase):
recipedir = os.path.dirname(oldrecipefile)
olddir = os.path.join(recipedir, recipe + '-' + oldversion)
patchfn = '0001-Add-a-note-line-to-the-quick-reference.patch'
+ backportedpatchfn = 'backported.patch'
self.assertExists(os.path.join(olddir, patchfn), 'Original patch file does not exist')
- return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn
+ self.assertExists(os.path.join(olddir, backportedpatchfn), 'Backported patch file does not exist')
+ return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn
def test_devtool_finish_upgrade_origlayer(self):
- recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade()
+ recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn = self._setup_test_devtool_finish_upgrade()
# Ensure the recipe is where we think it should be (so that cleanup doesn't trash things)
self.assertIn('/meta-selftest/', recipedir)
# Try finish to the original layer
@@ -1511,14 +1616,23 @@ class DevtoolUpgradeTests(DevtoolBase):
self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish')
self.assertNotExists(oldrecipefile, 'Old recipe file should have been deleted but wasn\'t')
self.assertNotExists(os.path.join(olddir, patchfn), 'Old patch file should have been deleted but wasn\'t')
+ self.assertNotExists(os.path.join(olddir, backportedpatchfn), 'Old backported patch file should have been deleted but wasn\'t')
newrecipefile = os.path.join(recipedir, '%s_%s.bb' % (recipe, newversion))
newdir = os.path.join(recipedir, recipe + '-' + newversion)
self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t')
self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t')
+ self.assertNotExists(os.path.join(newdir, backportedpatchfn), 'Backported patch file should not have been copied into new directory but was')
self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t')
+ with open(newrecipefile, 'r') as f:
+ newcontent = f.read()
+ self.assertNotIn(backportedpatchfn, newcontent, "Backported patch should have been removed from the recipe but wasn't")
+ self.assertIn(patchfn, newcontent, "Old patch should have not been removed from the recipe but was")
+ self.assertIn("0002-Add-a-comment-to-the-code.patch", newcontent, "New patch should have been added to the recipe but wasn't")
+ self.assertIn("http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz", newcontent, "New recipe no longer has upstream source in SRC_URI")
+
def test_devtool_finish_upgrade_otherlayer(self):
- recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade()
+ recipe, oldrecipefile, recipedir, olddir, newversion, patchfn, backportedpatchfn = self._setup_test_devtool_finish_upgrade()
# Ensure the recipe is where we think it should be (so that cleanup doesn't trash things)
self.assertIn('/meta-selftest/', recipedir)
# Try finish to a different layer - should create a bbappend
@@ -1534,10 +1648,18 @@ class DevtoolUpgradeTests(DevtoolBase):
self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish')
self.assertExists(oldrecipefile, 'Old recipe file should not have been deleted')
self.assertExists(os.path.join(olddir, patchfn), 'Old patch file should not have been deleted')
+ self.assertExists(os.path.join(olddir, backportedpatchfn), 'Old backported patch file should not have been deleted')
newdir = os.path.join(newrecipedir, recipe + '-' + newversion)
self.assertExists(newrecipefile, 'New recipe file should have been copied into existing layer but wasn\'t')
self.assertExists(os.path.join(newdir, patchfn), 'Patch file should have been copied into new directory but wasn\'t')
+ self.assertNotExists(os.path.join(newdir, backportedpatchfn), 'Backported patch file should not have been copied into new directory but was')
self.assertExists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch'), 'New patch file should have been created but wasn\'t')
+ with open(newrecipefile, 'r') as f:
+ newcontent = f.read()
+ self.assertNotIn(backportedpatchfn, newcontent, "Backported patch should have been removed from the recipe but wasn't")
+ self.assertIn(patchfn, newcontent, "Old patch should have not been removed from the recipe but was")
+ self.assertIn("0002-Add-a-comment-to-the-code.patch", newcontent, "New patch should have been added to the recipe but wasn't")
+ self.assertIn("http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz", newcontent, "New recipe no longer has upstream source in SRC_URI")
def _setup_test_devtool_finish_modify(self):
# Check preconditions
@@ -1701,7 +1823,7 @@ class DevtoolUpgradeTests(DevtoolBase):
when building the kernel.
"""
kernel_provider = get_bb_var('PREFERRED_PROVIDER_virtual/kernel')
- # Clean up the enviroment
+ # Clean up the environment
bitbake('%s -c clean' % kernel_provider)
tempdir = tempfile.mkdtemp(prefix='devtoolqa')
tempdir_cfg = tempfile.mkdtemp(prefix='config_qa')
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/distrodata.py b/meta/lib/oeqa/selftest/cases/distrodata.py
index 68ba556485..e1cfc3b621 100644
--- a/meta/lib/oeqa/selftest/cases/distrodata.py
+++ b/meta/lib/oeqa/selftest/cases/distrodata.py
@@ -42,8 +42,9 @@ but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. Please re
def test_maintainers(self):
"""
- Summary: Test that oe-core recipes have a maintainer
+ Summary: Test that oe-core recipes have a maintainer and entries in maintainers list have a recipe
Expected: All oe-core recipes (except a few special static/testing ones) should have a maintainer listed in maintainers.inc file.
+ Expected: All entries in maintainers list should have a recipe file that matches them
Product: oe-core
Author: Alexander Kanavin <alex.kanavin@gmail.com>
"""
@@ -54,7 +55,15 @@ but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. Please re
return True
return False
- feature = 'require conf/distro/include/maintainers.inc\n'
+ def is_maintainer_exception(entry):
+ exceptions = ["musl", "newlib", "linux-yocto", "linux-dummy", "mesa-gl", "libgfortran",
+ "cve-update-db-native"]
+ for i in exceptions:
+ if i in entry:
+ return True
+ return False
+
+ feature = 'require conf/distro/include/maintainers.inc\nLICENSE_FLAGS_WHITELIST += " commercial"\nPARSE_ALL_RECIPES = "1"\n'
self.write_config(feature)
with bb.tinfoil.Tinfoil() as tinfoil:
@@ -62,6 +71,11 @@ but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. Please re
with_maintainer_list = []
no_maintainer_list = []
+
+ missing_recipes = []
+ recipes = []
+ prefix = "RECIPE_MAINTAINER_pn-"
+
# We could have used all_recipes() here, but this method will find
# every recipe if we ever move to setting RECIPE_MAINTAINER in recipe files
# instead of maintainers.inc
@@ -71,6 +85,7 @@ but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. Please re
continue
rd = tinfoil.parse_recipe_file(fn, appends=False)
pn = rd.getVar('PN')
+ recipes.append(pn)
if is_exception(pn):
continue
if rd.getVar('RECIPE_MAINTAINER'):
@@ -78,6 +93,15 @@ but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. Please re
else:
no_maintainer_list.append((pn, fn))
+ maintainers = tinfoil.config_data.keys()
+ for key in maintainers:
+ if key.startswith(prefix):
+ recipe = tinfoil.config_data.expand(key[len(prefix):])
+ if is_maintainer_exception(recipe):
+ continue
+ if recipe not in recipes:
+ missing_recipes.append(recipe)
+
if no_maintainer_list:
self.fail("""
The following recipes do not have a maintainer assigned to them. Please add an entry to meta/conf/distro/include/maintainers.inc file.
@@ -87,3 +111,8 @@ The following recipes do not have a maintainer assigned to them. Please add an e
self.fail("""
The list of oe-core recipes with maintainers is empty. This may indicate that the test has regressed and needs fixing.
""")
+
+ if missing_recipes:
+ self.fail("""
+Unable to find recipes for the following entries in maintainers.inc:
+""" + "\n".join(['%s' % i for i in missing_recipes]))
diff --git a/meta/lib/oeqa/selftest/cases/gcc.py b/meta/lib/oeqa/selftest/cases/gcc.py
index 5a917b9c44..3efe15228f 100644
--- a/meta/lib/oeqa/selftest/cases/gcc.py
+++ b/meta/lib/oeqa/selftest/cases/gcc.py
@@ -21,8 +21,10 @@ class GccSelfTestBase(OESelftestTestCase, OEPTestResultTestCase):
def run_check(self, *suites, ssh = None):
targets = set()
for s in suites:
- if s in ["gcc", "g++"]:
- targets.add("check-gcc")
+ if s == "gcc":
+ targets.add("check-gcc-c")
+ elif s == "g++":
+ targets.add("check-gcc-c++")
else:
targets.add("check-target-{}".format(s))
@@ -77,7 +79,12 @@ class GccSelfTestBase(OESelftestTestCase, OEPTestResultTestCase):
@OETestTag("toolchain-user")
class GccCrossSelfTest(GccSelfTestBase):
def test_cross_gcc(self):
- self.run_check("gcc", "g++")
+ self.run_check("gcc")
+
+@OETestTag("toolchain-user")
+class GxxCrossSelfTest(GccSelfTestBase):
+ def test_cross_gxx(self):
+ self.run_check("g++")
@OETestTag("toolchain-user")
class GccLibAtomicSelfTest(GccSelfTestBase):
@@ -109,7 +116,12 @@ class GccLibItmSelfTest(GccSelfTestBase):
@OETestTag("toolchain-system")
class GccCrossSelfTestSystemEmulated(GccSelfTestBase):
def test_cross_gcc(self):
- self.run_check_emulated("gcc", "g++")
+ self.run_check_emulated("gcc")
+
+@OETestTag("toolchain-system")
+class GxxCrossSelfTestSystemEmulated(GccSelfTestBase):
+ def test_cross_gxx(self):
+ self.run_check_emulated("g++")
@OETestTag("toolchain-system")
class GccLibAtomicSelfTestSystemEmulated(GccSelfTestBase):
diff --git a/meta/lib/oeqa/selftest/cases/imagefeatures.py b/meta/lib/oeqa/selftest/cases/imagefeatures.py
index cf2a42aab5..f7a2533746 100644
--- a/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -124,7 +124,7 @@ class ImageFeatures(OESelftestTestCase):
# check if result image is sparse
image_stat = os.stat(image_path)
- self.assertTrue(image_stat.st_size > image_stat.st_blocks * 512)
+ self.assertGreater(image_stat.st_size, image_stat.st_blocks * 512)
# check if the resulting gzip is valid
self.assertTrue(runCmd('gzip -t %s' % gzip_path))
@@ -208,13 +208,13 @@ class ImageFeatures(OESelftestTestCase):
"""
image_name = 'core-image-minimal'
- img_types = [itype for itype in get_bb_var("IMAGE_TYPES", image_name).split() \
- if itype not in ('container', 'elf', 'f2fs', 'multiubi')]
+ all_image_types = set(get_bb_var("IMAGE_TYPES", image_name).split())
+ blacklist = set(('container', 'elf', 'f2fs', 'multiubi', 'tar.zst', 'wic.zst'))
+ img_types = all_image_types - blacklist
config = 'IMAGE_FSTYPES += "%s"\n'\
'MKUBIFS_ARGS ?= "-m 2048 -e 129024 -c 2047"\n'\
'UBINIZE_ARGS ?= "-m 2048 -p 128KiB -s 512"' % ' '.join(img_types)
-
self.write_config(config)
bitbake(image_name)
@@ -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 8fb93af8a8..2a6382a1a8 100644
--- a/meta/lib/oeqa/selftest/cases/incompatible_lic.py
+++ b/meta/lib/oeqa/selftest/cases/incompatible_lic.py
@@ -4,7 +4,7 @@ from oeqa.utils.commands import bitbake
class IncompatibleLicenseTests(OESelftestTestCase):
def lic_test(self, pn, pn_lic, lic):
- error_msg = 'ERROR: Nothing PROVIDES \'%s\'\n%s was skipped: it has an incompatible license: %s' % (pn, pn, pn_lic)
+ error_msg = 'ERROR: Nothing PROVIDES \'%s\'\n%s was skipped: it has incompatible license(s): %s' % (pn, pn, pn_lic)
self.write_config("INCOMPATIBLE_LICENSE += \"%s\"" % (lic))
@@ -12,30 +12,124 @@ class IncompatibleLicenseTests(OESelftestTestCase):
if error_msg not in result.output:
raise AssertionError(result.output)
- # Verify that a package with an SPDX license (from SRC_DISTRIBUTE_LICENSES)
+ # Verify that a package with an SPDX license (from AVAILABLE_LICENSES)
# cannot be built when INCOMPATIBLE_LICENSE contains this SPDX license
def test_incompatible_spdx_license(self):
self.lic_test('incompatible-license', 'GPL-3.0', 'GPL-3.0')
- # Verify that a package with an SPDX license (from SRC_DISTRIBUTE_LICENSES)
+ # Verify that a package with an SPDX license (from AVAILABLE_LICENSES)
# cannot be built when INCOMPATIBLE_LICENSE contains an alias (in
# SPDXLICENSEMAP) of this SPDX license
def test_incompatible_alias_spdx_license(self):
self.lic_test('incompatible-license', 'GPL-3.0', 'GPLv3')
+ # Verify that a package with an SPDX license (from AVAILABLE_LICENSES)
+ # cannot be built when INCOMPATIBLE_LICENSE contains a wildcarded license
+ # matching this SPDX license
+ def test_incompatible_spdx_license_wildcard(self):
+ self.lic_test('incompatible-license', 'GPL-3.0', '*GPL-3.0')
+
+ # Verify that a package with an SPDX license (from AVAILABLE_LICENSES)
+ # cannot be built when INCOMPATIBLE_LICENSE contains a wildcarded alias
+ # license matching this SPDX license
+ def test_incompatible_alias_spdx_license_wildcard(self):
+ self.lic_test('incompatible-license', 'GPL-3.0', '*GPLv3')
+
# Verify that a package with an alias (from SPDXLICENSEMAP) to an SPDX
# license cannot be built when INCOMPATIBLE_LICENSE contains this SPDX
# license
def test_incompatible_spdx_license_alias(self):
- self.lic_test('incompatible-license-alias', 'GPLv3', 'GPL-3.0')
+ self.lic_test('incompatible-license-alias', 'GPL-3.0', 'GPL-3.0')
# Verify that a package with an alias (from SPDXLICENSEMAP) to an SPDX
# license cannot be built when INCOMPATIBLE_LICENSE contains this alias
def test_incompatible_alias_spdx_license_alias(self):
- self.lic_test('incompatible-license-alias', 'GPLv3', 'GPLv3')
+ self.lic_test('incompatible-license-alias', 'GPL-3.0', 'GPLv3')
+
+ # Verify that a package with an alias (from SPDXLICENSEMAP) to an SPDX
+ # license cannot be built when INCOMPATIBLE_LICENSE contains a wildcarded
+ # license matching this SPDX license
+ def test_incompatible_spdx_license_alias_wildcard(self):
+ self.lic_test('incompatible-license-alias', 'GPL-3.0', '*GPL-3.0')
+
+ # Verify that a package with an alias (from SPDXLICENSEMAP) to an SPDX
+ # license cannot be built when INCOMPATIBLE_LICENSE contains a wildcarded
+ # alias license matching the SPDX license
+ def test_incompatible_alias_spdx_license_alias_wildcard(self):
+ self.lic_test('incompatible-license-alias', 'GPL-3.0', '*GPLv3')
+
+ # Verify that a package with multiple SPDX licenses (from
+ # AVAILABLE_LICENSES) cannot be built when INCOMPATIBLE_LICENSE contains
+ # some of them
+ def test_incompatible_spdx_licenses(self):
+ self.lic_test('incompatible-licenses', 'GPL-3.0 LGPL-3.0', 'GPL-3.0 LGPL-3.0')
+
+ # Verify that a package with multiple SPDX licenses (from
+ # AVAILABLE_LICENSES) cannot be built when INCOMPATIBLE_LICENSE contains a
+ # wildcard to some of them
+ def test_incompatible_spdx_licenses_wildcard(self):
+ self.lic_test('incompatible-licenses', 'GPL-3.0 LGPL-3.0', '*GPL-3.0')
+
+ # Verify that a package with multiple SPDX licenses (from
+ # AVAILABLE_LICENSES) cannot be built when INCOMPATIBLE_LICENSE contains a
+ # wildcard matching all licenses
+ def test_incompatible_all_licenses_wildcard(self):
+ self.lic_test('incompatible-licenses', 'GPL-2.0 GPL-3.0 LGPL-3.0', '*')
# Verify that a package with a non-SPDX license (neither in
- # SRC_DISTRIBUTE_LICENSES nor in SPDXLICENSEMAP) cannot be built when
+ # AVAILABLE_LICENSES nor in SPDXLICENSEMAP) cannot be built when
# INCOMPATIBLE_LICENSE contains this license
def test_incompatible_nonspdx_license(self):
self.lic_test('incompatible-nonspdx-license', 'FooLicense', 'FooLicense')
+
+class IncompatibleLicensePerImageTests(OESelftestTestCase):
+ def default_config(self):
+ return """
+IMAGE_INSTALL_append = " bash"
+INCOMPATIBLE_LICENSE_pn-core-image-minimal = "GPL-3.0 LGPL-3.0"
+"""
+
+ def test_bash_default(self):
+ self.write_config(self.default_config())
+ error_msg = "ERROR: core-image-minimal-1.0-r0 do_rootfs: Package bash cannot be installed into the image because it has incompatible license(s): GPL-3.0+"
+
+ result = bitbake('core-image-minimal', ignore_status=True)
+ if error_msg not in result.output:
+ raise AssertionError(result.output)
+
+ def test_bash_and_license(self):
+ self.write_config(self.default_config() + '\nLICENSE_append_pn-bash = " & SomeLicense"')
+ error_msg = "ERROR: core-image-minimal-1.0-r0 do_rootfs: Package bash cannot be installed into the image because it has incompatible license(s): GPL-3.0+"
+
+ result = bitbake('core-image-minimal', ignore_status=True)
+ if error_msg not in result.output:
+ raise AssertionError(result.output)
+
+ def test_bash_or_license(self):
+ self.write_config(self.default_config() + '\nLICENSE_append_pn-bash = " | SomeLicense"')
+
+ bitbake('core-image-minimal')
+
+ def test_bash_whitelist(self):
+ self.write_config(self.default_config() + '\nWHITELIST_GPL-3.0_pn-core-image-minimal = "bash"')
+
+ bitbake('core-image-minimal')
+
+class NoGPL3InImagesTests(OESelftestTestCase):
+ def test_core_image_minimal(self):
+ self.write_config("""
+INCOMPATIBLE_LICENSE_pn-core-image-minimal = "GPL-3.0 LGPL-3.0"
+""")
+ bitbake('core-image-minimal')
+
+ def test_core_image_full_cmdline(self):
+ self.write_config("""
+INHERIT += "testimage"\n
+INCOMPATIBLE_LICENSE_pn-core-image-full-cmdline = "GPL-3.0 LGPL-3.0"\n
+RDEPENDS_packagegroup-core-full-cmdline-utils_remove = "bash bc coreutils cpio ed findutils gawk grep mc mc-fish mc-helpers mc-helpers-perl sed tar time"\n
+RDEPENDS_packagegroup-core-full-cmdline-dev-utils_remove = "diffutils m4 make patch"\n
+RDEPENDS_packagegroup-core-full-cmdline-multiuser_remove = "gzip"\n
+""")
+ bitbake('core-image-full-cmdline')
+ bitbake('-c testimage core-image-full-cmdline')
+
diff --git a/meta/lib/oeqa/selftest/cases/meta_ide.py b/meta/lib/oeqa/selftest/cases/meta_ide.py
index 03901a2f32..6f10d30dc9 100644
--- a/meta/lib/oeqa/selftest/cases/meta_ide.py
+++ b/meta/lib/oeqa/selftest/cases/meta_ide.py
@@ -40,10 +40,10 @@ class MetaIDE(OESelftestTestCase):
def test_meta_ide_can_build_cpio_project(self):
dl_dir = self.td.get('DL_DIR', None)
self.project = SDKBuildProject(self.tmpdir_metaideQA + "/cpio/", self.environment_script_path,
- "https://ftp.gnu.org/gnu/cpio/cpio-2.12.tar.gz",
+ "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 6d80827652..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):
@@ -45,7 +46,7 @@ class TestBlobParsing(OESelftestTestCase):
def test_blob_to_dict(self):
"""
- Test convertion of git blobs to dictionary
+ Test conversion of git blobs to dictionary
"""
from oe.buildhistory_analysis import blob_to_dict
valuesmap = { "foo" : "1", "bar" : "2" }
@@ -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 c169885cf3..726daff7c6 100644
--- a/meta/lib/oeqa/selftest/cases/oescripts.py
+++ b/meta/lib/oeqa/selftest/cases/oescripts.py
@@ -4,6 +4,7 @@
import os
import shutil
+import importlib
import unittest
from oeqa.selftest.case import OESelftestTestCase
from oeqa.selftest.cases.buildhistory import BuildhistoryBase
@@ -33,15 +34,13 @@ class BuildhistoryDiffTests(BuildhistoryBase):
if expected_endlines:
self.fail('Missing expected line endings:\n %s' % '\n '.join(expected_endlines))
+@unittest.skipUnless(importlib.util.find_spec("cairo"), "Python cairo module is not present")
class OEScriptTests(OESelftestTestCase):
@classmethod
def setUpClass(cls):
super(OEScriptTests, cls).setUpClass()
- try:
- import cairo
- except ImportError:
- raise unittest.SkipTest('Python module cairo is not present')
+ import cairo
bitbake("core-image-minimal -c rootfs -f")
cls.tmpdir = get_bb_var('TMPDIR')
cls.buildstats = cls.tmpdir + "/buildstats/" + sorted(os.listdir(cls.tmpdir + "/buildstats"))[-1]
@@ -65,6 +64,7 @@ class OEPybootchartguyTests(OEScriptTests):
runCmd('%s/pybootchartgui/pybootchartgui.py %s -o %s/charts -f pdf' % (self.scripts_dir, self.buildstats, self.tmpdir))
self.assertTrue(os.path.exists(self.tmpdir + "/charts.pdf"))
+
class OEGitproxyTests(OESelftestTestCase):
scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts')
@@ -121,3 +121,67 @@ class OEGitproxyTests(OESelftestTestCase):
if dash is None:
self.skipTest("No \"dash\" found on test system.")
self.run_oegitproxy(custom_shell=dash)
+
+class OeRunNativeTest(OESelftestTestCase):
+ def test_oe_run_native(self):
+ bitbake("qemu-helper-native -c addto_recipe_sysroot")
+ result = runCmd("oe-run-native qemu-helper-native tunctl -h")
+ self.assertIn("Delete: tunctl -d device-name [-f tun-clone-device]", result.output)
+
+class OEListPackageconfigTests(OEScriptTests):
+ #oe-core.scripts.List_all_the_PACKAGECONFIG's_flags
+ def check_endlines(self, results, expected_endlines):
+ for line in results.output.splitlines():
+ for el in expected_endlines:
+ if line.split() == el.split():
+ expected_endlines.remove(el)
+ break
+
+ if expected_endlines:
+ self.fail('Missing expected listings:\n %s' % '\n '.join(expected_endlines))
+
+
+ #oe-core.scripts.List_all_the_PACKAGECONFIG's_flags
+ def test_packageconfig_flags_help(self):
+ runCmd('%s/contrib/list-packageconfig-flags.py -h' % self.scripts_dir)
+
+ def test_packageconfig_flags_default(self):
+ results = runCmd('%s/contrib/list-packageconfig-flags.py' % self.scripts_dir)
+ expected_endlines = []
+ expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS")
+ expected_endlines.append("pinentry gtk2 libcap ncurses qt secret")
+ expected_endlines.append("tar acl")
+
+ self.check_endlines(results, expected_endlines)
+
+
+ def test_packageconfig_flags_option_flags(self):
+ results = runCmd('%s/contrib/list-packageconfig-flags.py -f' % self.scripts_dir)
+ expected_endlines = []
+ expected_endlines.append("PACKAGECONFIG FLAG RECIPE NAMES")
+ expected_endlines.append("qt nativesdk-pinentry pinentry pinentry-native")
+ expected_endlines.append("secret nativesdk-pinentry pinentry pinentry-native")
+
+ self.check_endlines(results, expected_endlines)
+
+ def test_packageconfig_flags_option_all(self):
+ results = runCmd('%s/contrib/list-packageconfig-flags.py -a' % self.scripts_dir)
+ expected_endlines = []
+ expected_endlines.append("pinentry-1.1.0")
+ expected_endlines.append("PACKAGECONFIG ncurses libcap")
+ expected_endlines.append("PACKAGECONFIG[qt] --enable-pinentry-qt, --disable-pinentry-qt, qtbase-native qtbase")
+ expected_endlines.append("PACKAGECONFIG[gtk2] --enable-pinentry-gtk2, --disable-pinentry-gtk2, gtk+ glib-2.0")
+ expected_endlines.append("PACKAGECONFIG[libcap] --with-libcap, --without-libcap, libcap")
+ expected_endlines.append("PACKAGECONFIG[ncurses] --enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses")
+ expected_endlines.append("PACKAGECONFIG[secret] --enable-libsecret, --disable-libsecret, libsecret")
+
+ self.check_endlines(results, expected_endlines)
+
+ 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")
+ expected_endlines.append("pinentry gtk2 libcap ncurses qt secret")
+
+ self.check_endlines(results, expected_endlines)
+
diff --git a/meta/lib/oeqa/selftest/cases/package.py b/meta/lib/oeqa/selftest/cases/package.py
index 291627877e..3010b1af49 100644
--- a/meta/lib/oeqa/selftest/cases/package.py
+++ b/meta/lib/oeqa/selftest/cases/package.py
@@ -135,7 +135,7 @@ class PackageTests(OESelftestTestCase):
return False
# Check debugging symbols works correctly
- elif re.match("Breakpoint 1.*hello\.c.*4", l):
+ elif re.match(r"Breakpoint 1.*hello\.c.*4", l):
return True
self.logger.error("GDB result:\n%d: %s", status, output)
@@ -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 1c701a40bf..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',
@@ -421,6 +408,35 @@ class RecipetoolTests(RecipetoolBase):
inherits = ['cmake']
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')
+ shrinkwrap = os.path.join(temprecipe, 'savoirfairelinux-node-server-example', 'npm-shrinkwrap.json')
+ srcuri = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=1.0.0'
+ result = runCmd('recipetool create -o %s \'%s\'' % (temprecipe, srcuri))
+ self.assertTrue(os.path.isfile(recipefile))
+ self.assertTrue(os.path.isfile(shrinkwrap))
+ checkvars = {}
+ checkvars['SUMMARY'] = 'Node Server Example'
+ checkvars['HOMEPAGE'] = 'https://github.com/savoirfairelinux/node-server-example#readme'
+ checkvars['LICENSE'] = set(['MIT', 'ISC', 'Unknown'])
+ urls = []
+ urls.append('npm://registry.npmjs.org/;package=@savoirfairelinux/node-server-example;version=${PV}')
+ urls.append('npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json')
+ checkvars['SRC_URI'] = set(urls)
+ checkvars['S'] = '${WORKDIR}/npm'
+ checkvars['LICENSE_${PN}'] = 'MIT'
+ checkvars['LICENSE_${PN}-base64'] = 'Unknown'
+ checkvars['LICENSE_${PN}-accepts'] = 'MIT'
+ checkvars['LICENSE_${PN}-inherits'] = 'ISC'
+ inherits = ['npm']
+ self._test_recipe_contents(recipefile, checkvars, inherits)
+
def test_recipetool_create_github(self):
# Basic test to see if github URL mangling works
temprecipe = os.path.join(self.tempdir, 'recipe')
@@ -509,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)
@@ -685,7 +705,9 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase):
self._test_appendsrcfile(testrecipe, filepath, srcdir=subdir)
bitbake('%s:do_unpack' % testrecipe)
- self.assertEqual(open(self.testfile, 'r').read(), open(os.path.join(srcdir, filepath), 'r').read())
+ with open(self.testfile, 'r') as testfile:
+ with open(os.path.join(srcdir, filepath), 'r') as makefilein:
+ self.assertEqual(testfile.read(), makefilein.read())
def test_recipetool_appendsrcfiles_basic(self, destdir=None):
newfiles = [self.testfile]
diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py
index c235c139ed..a7ef336143 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -1,15 +1,21 @@
#
# SPDX-License-Identifier: MIT
#
-# Copyright 2019 by Garmin Ltd. or its subsidiaries
+# Copyright 2019-2020 by Garmin Ltd. or its subsidiaries
from oeqa.selftest.case import OESelftestTestCase
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
+import bb.utils
import functools
import multiprocessing
import textwrap
import json
import unittest
+import tempfile
+import shutil
+import stat
+import os
+import datetime
MISSING = 'MISSING'
DIFFERENT = 'DIFFERENT'
@@ -71,9 +77,46 @@ 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']
+ images = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline']
+ save_results = False
+ if 'OEQA_DEBUGGING_SAVED_OUTPUT' in os.environ:
+ save_results = os.environ['OEQA_DEBUGGING_SAVED_OUTPUT']
+
+ # This variable controls if one of the test builds is allowed to pull from
+ # an sstate cache/mirror. The other build is always done clean as a point of
+ # comparison.
+ # If you know that your sstate archives are reproducible, enabling this
+ # will test that and also make the test run faster. If your sstate is not
+ # reproducible, disable this in your derived test class
+ build_from_sstate = True
def setUpLocal(self):
super().setUpLocal()
@@ -82,12 +125,12 @@ class ReproducibleTests(OESelftestTestCase):
for v in needed_vars:
setattr(self, v.lower(), bb_vars[v])
- self.extrasresults = {}
- self.extrasresults.setdefault('reproducible.rawlogs', {})['log'] = ''
- self.extrasresults.setdefault('reproducible', {}).setdefault('files', {})
+ self.extraresults = {}
+ self.extraresults.setdefault('reproducible.rawlogs', {})['log'] = ''
+ self.extraresults.setdefault('reproducible', {}).setdefault('files', {})
def append_to_log(self, msg):
- self.extrasresults['reproducible.rawlogs']['log'] += msg
+ self.extraresults['reproducible.rawlogs']['log'] += msg
def compare_packages(self, reference_dir, test_dir, diffutils_sysroot):
result = PackageCompareResults()
@@ -114,51 +157,69 @@ class ReproducibleTests(OESelftestTestCase):
return result
def write_package_list(self, package_class, name, packages):
- self.extrasresults['reproducible']['files'].setdefault(package_class, {})[name] = [
+ self.extraresults['reproducible']['files'].setdefault(package_class, {})[name] = [
{'reference': p.reference, 'test': p.test} for p in packages]
- def test_reproducible_builds(self):
+ def copy_file(self, source, dest):
+ bb.utils.mkdirhier(os.path.dirname(dest))
+ shutil.copyfile(source, dest)
+
+ def do_test_build(self, name, use_sstate):
capture_vars = ['DEPLOY_DIR_' + c.upper() for c in self.package_classes]
- # Build native utilities
- self.write_config('')
- bitbake("diffutils-native -c addto_recipe_sysroot")
- diffutils_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffutils-native")
+ tmpdir = os.path.join(self.topdir, name, 'tmp')
+ if os.path.exists(tmpdir):
+ bb.utils.remove(tmpdir, recurse=True)
- # Reproducible builds should not pull from sstate or mirrors, but
- # sharing DL_DIR is fine
- common_config = textwrap.dedent('''\
+ config = textwrap.dedent('''\
INHERIT += "reproducible_build"
- PACKAGE_CLASSES = "%s"
- SSTATE_DIR = "${TMPDIR}/sstate"
- ''') % (' '.join('package_%s' % c for c in self.package_classes))
-
- # Perform a build.
- reproducibleA_tmp = os.path.join(self.topdir, 'reproducibleA', 'tmp')
- if os.path.exists(reproducibleA_tmp):
- bb.utils.remove(reproducibleA_tmp, recurse=True)
-
- self.write_config((textwrap.dedent('''\
- TMPDIR = "%s"
- ''') % reproducibleA_tmp) + common_config)
- vars_A = get_bb_vars(capture_vars)
+ PACKAGE_CLASSES = "{package_classes}"
+ INHIBIT_PACKAGE_STRIP = "1"
+ TMPDIR = "{tmpdir}"
+ ''').format(package_classes=' '.join('package_%s' % c for c in self.package_classes),
+ tmpdir=tmpdir)
+
+ if not use_sstate:
+ # This config fragment will disable using shared and the sstate
+ # mirror, forcing a complete build from scratch
+ config += textwrap.dedent('''\
+ SSTATE_DIR = "${TMPDIR}/sstate"
+ SSTATE_MIRROR = ""
+ ''')
+
+ self.write_config(config)
+ d = get_bb_vars(capture_vars)
bitbake(' '.join(self.images))
+ return d
- # Perform another build.
- reproducibleB_tmp = os.path.join(self.topdir, 'reproducibleB', 'tmp')
- if os.path.exists(reproducibleB_tmp):
- bb.utils.remove(reproducibleB_tmp, recurse=True)
+ def test_reproducible_builds(self):
+ def strip_topdir(s):
+ if s.startswith(self.topdir):
+ return s[len(self.topdir):]
+ return s
- self.write_config((textwrap.dedent('''\
- SSTATE_MIRROR = ""
- TMPDIR = "%s"
- ''') % reproducibleB_tmp) + common_config)
- vars_B = get_bb_vars(capture_vars)
- bitbake(' '.join(self.images))
+ # Build native utilities
+ self.write_config('')
+ bitbake("diffoscope-native diffutils-native jquery-native -c addto_recipe_sysroot")
+ diffutils_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffutils-native")
+ diffoscope_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffoscope-native")
+ jquery_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "jquery-native")
+
+ if self.save_results:
+ os.makedirs(self.save_results, exist_ok=True)
+ datestr = datetime.datetime.now().strftime('%Y%m%d')
+ save_dir = tempfile.mkdtemp(prefix='oe-reproducible-%s-' % datestr, dir=self.save_results)
+ os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
+ self.logger.info('Non-reproducible packages will be copied to %s', save_dir)
+
+ vars_A = self.do_test_build('reproducibleA', self.build_from_sstate)
+ vars_B = self.do_test_build('reproducibleB', False)
# NOTE: The temp directories from the reproducible build are purposely
# kept after the build so it can be diffed for debugging.
+ fails = []
+
for c in self.package_classes:
with self.subTest(package_class=c):
package_class = 'package_' + c
@@ -176,7 +237,30 @@ class ReproducibleTests(OESelftestTestCase):
self.write_package_list(package_class, 'different', result.different)
self.write_package_list(package_class, 'same', result.same)
+ if self.save_results:
+ for d in result.different:
+ self.copy_file(d.reference, '/'.join([save_dir, 'packages', strip_topdir(d.reference)]))
+ self.copy_file(d.test, '/'.join([save_dir, 'packages', strip_topdir(d.test)]))
+
if result.missing or result.different:
- self.fail("The following %s packages are missing or different: %s" %
- (c, ' '.join(r.test for r in (result.missing + result.different))))
+ fails.append("The following %s packages are missing or different: %s" %
+ (c, '\n'.join(r.test for r in (result.missing + result.different))))
+
+ # Clean up empty directories
+ if self.save_results:
+ if not os.listdir(save_dir):
+ os.rmdir(save_dir)
+ else:
+ self.logger.info('Running diffoscope')
+ package_dir = os.path.join(save_dir, 'packages')
+ package_html_dir = os.path.join(package_dir, 'diff-html')
+
+ # 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'))
+
+ run_diffoscope('reproducibleA', 'reproducibleB', package_html_dir,
+ native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=package_dir)
+
+ if fails:
+ self.fail('\n'.join(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 3f212bd0ea..1bb1c4bee4 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -10,6 +10,7 @@ import re
import tempfile
import shutil
import oe.lsb
+from oeqa.core.decorator.data import skipIfNotQemu
class TestExport(OESelftestTestCase):
@@ -155,20 +156,21 @@ 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
bitbake('core-image-full-cmdline socat')
bitbake('-c testimage core-image-full-cmdline')
- def test_testimage_virgl_gtk(self):
+ def test_testimage_virgl_gtk_sdl(self):
"""
- Summary: Check host-assisted accelerate OpenGL functionality in qemu with gtk frontend
+ Summary: Check host-assisted accelerate OpenGL functionality in qemu with gtk and SDL frontends
Expected: 1. Check that virgl kernel driver is loaded and 3d acceleration is enabled
2. Check that kmscube demo runs without crashing.
Product: oe-core
@@ -179,20 +181,31 @@ 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')
+ 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 '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 'sdl' not in qemu_packageconfig:
+ features += 'PACKAGECONFIG_append_pn-qemu-system-native = " sdl"\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'
- features += 'TEST_RUNQEMUPARAMS = "gtk gl"\n'
- self.write_config(features)
+ features_gtk = features + 'TEST_RUNQEMUPARAMS = "gtk gl"\n'
+ self.write_config(features_gtk)
+ bitbake('core-image-minimal')
+ bitbake('-c testimage core-image-minimal')
+ features_sdl = features + 'TEST_RUNQEMUPARAMS = "sdl gl"\n'
+ self.write_config(features_sdl)
bitbake('core-image-minimal')
bitbake('-c testimage core-image-minimal')
@@ -215,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'
@@ -230,7 +241,47 @@ class TestImage(OESelftestTestCase):
bitbake('-c testimage core-image-minimal')
class Postinst(OESelftestTestCase):
- def test_postinst_rootfs_and_boot(self):
+
+ def init_manager_loop(self, init_manager):
+ import oe.path
+
+ vars = get_bb_vars(("IMAGE_ROOTFS", "sysconfdir"), "core-image-minimal")
+ rootfs = vars["IMAGE_ROOTFS"]
+ self.assertIsNotNone(rootfs)
+ sysconfdir = vars["sysconfdir"]
+ self.assertIsNotNone(sysconfdir)
+ # Need to use oe.path here as sysconfdir starts with /
+ hosttestdir = oe.path.join(rootfs, sysconfdir, "postinst-test")
+ targettestdir = os.path.join(sysconfdir, "postinst-test")
+
+ for classes in ("package_rpm", "package_deb", "package_ipk"):
+ with self.subTest(init_manager=init_manager, package_class=classes):
+ features = 'CORE_IMAGE_EXTRA_INSTALL = "postinst-delayed-b"\n'
+ features += 'IMAGE_FEATURES += "package-management empty-root-password"\n'
+ features += 'PACKAGE_CLASSES = "%s"\n' % classes
+ if init_manager == "systemd":
+ features += 'DISTRO_FEATURES_append = " systemd"\n'
+ features += 'VIRTUAL-RUNTIME_init_manager = "systemd"\n'
+ features += 'DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"\n'
+ features += 'VIRTUAL-RUNTIME_initscripts = ""\n'
+ self.write_config(features)
+
+ bitbake('core-image-minimal')
+
+ self.assertTrue(os.path.isfile(os.path.join(hosttestdir, "rootfs")),
+ "rootfs state file was not created")
+
+ with runqemu('core-image-minimal') as qemu:
+ # Make the test echo a string and search for that as
+ # run_serial()'s status code is useless.'
+ for filename in ("rootfs", "delayed-a", "delayed-b"):
+ status, output = qemu.run_serial("test -f %s && echo found" % os.path.join(targettestdir, filename))
+ self.assertEqual(output, "found", "%s was not present on boot" % filename)
+
+
+
+ @skipIfNotQemu('qemuall', 'Test only runs in qemu')
+ def test_postinst_rootfs_and_boot_sysvinit(self):
"""
Summary: The purpose of this test case is to verify Post-installation
scripts are called when rootfs is created and also test
@@ -244,46 +295,32 @@ class Postinst(OESelftestTestCase):
created by postinst_boot recipe is present on image.
Expected: The files are successfully created during rootfs and boot
time for 3 different package managers: rpm,ipk,deb and
- for initialization managers: sysvinit and systemd.
+ for initialization managers: sysvinit.
"""
+ self.init_manager_loop("sysvinit")
- import oe.path
- vars = get_bb_vars(("IMAGE_ROOTFS", "sysconfdir"), "core-image-minimal")
- rootfs = vars["IMAGE_ROOTFS"]
- self.assertIsNotNone(rootfs)
- sysconfdir = vars["sysconfdir"]
- self.assertIsNotNone(sysconfdir)
- # Need to use oe.path here as sysconfdir starts with /
- hosttestdir = oe.path.join(rootfs, sysconfdir, "postinst-test")
- targettestdir = os.path.join(sysconfdir, "postinst-test")
-
- for init_manager in ("sysvinit", "systemd"):
- for classes in ("package_rpm", "package_deb", "package_ipk"):
- with self.subTest(init_manager=init_manager, package_class=classes):
- features = 'CORE_IMAGE_EXTRA_INSTALL = "postinst-delayed-b"\n'
- features += 'IMAGE_FEATURES += "package-management empty-root-password"\n'
- features += 'PACKAGE_CLASSES = "%s"\n' % classes
- if init_manager == "systemd":
- features += 'DISTRO_FEATURES_append = " systemd"\n'
- features += 'VIRTUAL-RUNTIME_init_manager = "systemd"\n'
- features += 'DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"\n'
- features += 'VIRTUAL-RUNTIME_initscripts = ""\n'
- self.write_config(features)
-
- bitbake('core-image-minimal')
-
- self.assertTrue(os.path.isfile(os.path.join(hosttestdir, "rootfs")),
- "rootfs state file was not created")
+ @skipIfNotQemu('qemuall', 'Test only runs in qemu')
+ def test_postinst_rootfs_and_boot_systemd(self):
+ """
+ Summary: The purpose of this test case is to verify Post-installation
+ scripts are called when rootfs is created and also test
+ that script can be delayed to run at first boot.
+ Dependencies: NA
+ Steps: 1. Add proper configuration to local.conf file
+ 2. Build a "core-image-minimal" image
+ 3. Verify that file created by postinst_rootfs recipe is
+ present on rootfs dir.
+ 4. Boot the image created on qemu and verify that the file
+ created by postinst_boot recipe is present on image.
+ Expected: The files are successfully created during rootfs and boot
+ time for 3 different package managers: rpm,ipk,deb and
+ for initialization managers: systemd.
- with runqemu('core-image-minimal') as qemu:
- # Make the test echo a string and search for that as
- # run_serial()'s status code is useless.'
- for filename in ("rootfs", "delayed-a", "delayed-b"):
- status, output = qemu.run_serial("test -f %s && echo found" % os.path.join(targettestdir, filename))
- self.assertEqual(output, "found", "%s was not present on boot" % filename)
+ """
+ self.init_manager_loop("systemd")
def test_failing_postinst(self):
@@ -320,3 +357,80 @@ class Postinst(OESelftestTestCase):
self.assertFalse(os.path.isfile(os.path.join(hosttestdir, "rootfs-after-failure")),
"rootfs-after-failure file was created")
+class SystemTap(OESelftestTestCase):
+ """
+ Summary: The purpose of this test case is to verify native crosstap
+ works while talking to a target.
+ Expected: The script should successfully connect to the qemu machine
+ and run some systemtap examples on a qemu machine.
+ """
+
+ @classmethod
+ def setUpClass(cls):
+ super(SystemTap, cls).setUpClass()
+ cls.image = "core-image-minimal"
+
+ def default_config(self):
+ return """
+# These aren't the actual IP addresses but testexport class needs something defined
+TEST_SERVER_IP = "192.168.7.1"
+TEST_TARGET_IP = "192.168.7.2"
+
+EXTRA_IMAGE_FEATURES += "tools-profile dbg-pkgs"
+IMAGE_FEATURES_append = " ssh-server-dropbear"
+
+# enables kernel debug symbols
+KERNEL_EXTRA_FEATURES_append = " features/debug/debug-kernel.scc"
+KERNEL_EXTRA_FEATURES_append = " features/systemtap/systemtap.scc"
+
+# add systemtap run-time into target image if it is not there yet
+IMAGE_INSTALL_append = " systemtap"
+"""
+
+ def test_crosstap_helloworld(self):
+ self.write_config(self.default_config())
+ bitbake('systemtap-native')
+ systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples")
+ bitbake(self.image)
+
+ with runqemu(self.image) as qemu:
+ cmd = "crosstap -r root@192.168.7.2 -s %s/general/helloworld.stp " % systemtap_examples
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'crosstap helloworld returned a non 0 status:%s' % result.output)
+
+ def test_crosstap_pstree(self):
+ self.write_config(self.default_config())
+
+ bitbake('systemtap-native')
+ systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples")
+ bitbake(self.image)
+
+ with runqemu(self.image) as qemu:
+ cmd = "crosstap -r root@192.168.7.2 -s %s/process/pstree.stp" % systemtap_examples
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'crosstap pstree returned a non 0 status:%s' % result.output)
+
+ def test_crosstap_syscalls_by_proc(self):
+ self.write_config(self.default_config())
+
+ bitbake('systemtap-native')
+ systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples")
+ bitbake(self.image)
+
+ with runqemu(self.image) as qemu:
+ cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_proc.stp" % systemtap_examples
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'crosstap syscalls_by_proc returned a non 0 status:%s' % result.output)
+
+ def test_crosstap_syscalls_by_pid(self):
+ self.write_config(self.default_config())
+
+ bitbake('systemtap-native')
+ systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples")
+ bitbake(self.image)
+
+ with runqemu(self.image) as qemu:
+ cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_pid.stp" % systemtap_examples
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'crosstap syscalls_by_pid returned a non 0 status:%s' % result.output)
+
diff --git a/meta/lib/oeqa/selftest/cases/signing.py b/meta/lib/oeqa/selftest/cases/signing.py
index 5c4e01b2c3..a28c7eb19a 100644
--- a/meta/lib/oeqa/selftest/cases/signing.py
+++ b/meta/lib/oeqa/selftest/cases/signing.py
@@ -3,7 +3,7 @@
#
from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, create_temp_layer
import os
import oe
import glob
@@ -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)
@@ -157,8 +159,8 @@ class Signing(OESelftestTestCase):
bitbake('-c clean %s' % test_recipe)
bitbake('-c populate_lic %s' % test_recipe)
- recipe_sig = glob.glob(sstatedir + '/*/*:ed:*_populate_lic.tgz.sig')
- recipe_tgz = glob.glob(sstatedir + '/*/*:ed:*_populate_lic.tgz')
+ recipe_sig = glob.glob(sstatedir + '/*/*/*:ed:*_populate_lic.tgz.sig')
+ recipe_tgz = glob.glob(sstatedir + '/*/*/*:ed:*_populate_lic.tgz')
self.assertEqual(len(recipe_sig), 1, 'Failed to find .sig file.')
self.assertEqual(len(recipe_tgz), 1, 'Failed to find .tgz file.')
@@ -185,8 +187,6 @@ class LockedSignatures(OESelftestTestCase):
test_recipe = 'ed'
locked_sigs_file = 'locked-sigs.inc'
- self.add_command_to_tearDown('rm -f %s' % os.path.join(self.builddir, locked_sigs_file))
-
bitbake(test_recipe)
# Generate locked sigs include file
bitbake('-S none %s' % test_recipe)
@@ -198,16 +198,23 @@ class LockedSignatures(OESelftestTestCase):
# Build a locked recipe
bitbake(test_recipe)
+ templayerdir = tempfile.mkdtemp(prefix='signingqa')
+ create_temp_layer(templayerdir, 'selftestsigning')
+ runCmd('bitbake-layers add-layer %s' % templayerdir)
+
# Make a change that should cause the locked task signature to change
# Use uuid so hash equivalance server isn't triggered
recipe_append_file = test_recipe + '_' + get_bb_var('PV', test_recipe) + '.bbappend'
- recipe_append_path = os.path.join(self.testlayer_path, 'recipes-test', test_recipe, recipe_append_file)
+ recipe_append_path = os.path.join(templayerdir, 'recipes-test', test_recipe, recipe_append_file)
feature = 'SUMMARY_${PN} = "test locked signature%s"\n' % uuid.uuid4()
- os.mkdir(os.path.join(self.testlayer_path, 'recipes-test', test_recipe))
+ os.mkdir(os.path.join(templayerdir, 'recipes-test'))
+ os.mkdir(os.path.join(templayerdir, 'recipes-test', test_recipe))
write_file(recipe_append_path, feature)
- self.add_command_to_tearDown('rm -rf %s' % os.path.join(self.testlayer_path, 'recipes-test', test_recipe))
+ self.add_command_to_tearDown('bitbake-layers remove-layer %s' % templayerdir)
+ self.add_command_to_tearDown('rm -f %s' % os.path.join(self.builddir, locked_sigs_file))
+ self.add_command_to_tearDown('rm -rf %s' % templayerdir)
# Build the recipe again
ret = bitbake(test_recipe)
diff --git a/meta/lib/oeqa/selftest/cases/sstate.py b/meta/lib/oeqa/selftest/cases/sstate.py
index 410dec64fc..80ce9e353c 100644
--- a/meta/lib/oeqa/selftest/cases/sstate.py
+++ b/meta/lib/oeqa/selftest/cases/sstate.py
@@ -56,11 +56,11 @@ class SStateBase(OESelftestTestCase):
def search_sstate(self, filename_regex, distro_specific=True, distro_nonspecific=True):
result = []
for root, dirs, files in os.walk(self.sstate_path):
- if distro_specific and re.search("%s/[a-z0-9]{2}$" % self.hostdistro, root):
+ if distro_specific and re.search(r"%s/%s/[a-z0-9]{2}/[a-z0-9]{2}$" % (self.sstate_path, self.hostdistro), root):
for f in files:
if re.search(filename_regex, f):
result.append(f)
- if distro_nonspecific and re.search("%s/[a-z0-9]{2}$" % self.sstate_path, root):
+ if distro_nonspecific and re.search(r"%s/[a-z0-9]{2}/[a-z0-9]{2}$" % self.sstate_path, root):
for f in files:
if re.search(filename_regex, f):
result.append(f)
diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py
index 2867cb78ab..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
@@ -255,6 +258,7 @@ BUILD_ARCH = "x86_64"
BUILD_OS = "linux"
SDKMACHINE = "x86_64"
PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("core-image-sato -S none")
@@ -266,6 +270,7 @@ BUILD_ARCH = "i686"
BUILD_OS = "linux"
SDKMACHINE = "i686"
PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("core-image-sato -S none")
@@ -298,6 +303,7 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
NATIVELSBSTRING = \"DistroA\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("core-image-sato -S none")
@@ -305,6 +311,7 @@ NATIVELSBSTRING = \"DistroA\"
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
NATIVELSBSTRING = \"DistroB\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("core-image-sato -S none")
@@ -332,11 +339,13 @@ NATIVELSBSTRING = \"DistroB\"
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemux86-64\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
"""
configB = """
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemuarm\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
"""
self.sstate_allarch_samesigs(configA, configB)
@@ -352,6 +361,7 @@ MACHINE = \"qemux86-64\"
require conf/multilib.conf
MULTILIBS = \"multilib:lib32\"
DEFAULTTUNE_virtclass-multilib-lib32 = \"x86\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
"""
configB = """
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
@@ -359,6 +369,7 @@ TCLIBCAPPEND = \"\"
MACHINE = \"qemuarm\"
require conf/multilib.conf
MULTILIBS = \"\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
"""
self.sstate_allarch_samesigs(configA, configB)
@@ -404,6 +415,7 @@ MACHINE = \"qemux86\"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("world meta-toolchain -S none")
@@ -414,6 +426,7 @@ MACHINE = \"qemux86copy\"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("world meta-toolchain -S none")
@@ -436,6 +449,46 @@ DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
self.assertCountEqual(files1, files2)
+ def test_sstate_multilib_or_not_native_samesigs(self):
+ """The sstate checksums of two native recipes (and their dependencies)
+ where the target is using multilib in one but not the other
+ should be the same. We use the qemux86copy machine to test
+ this.
+ """
+
+ self.write_config("""
+TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
+TCLIBCAPPEND = \"\"
+MACHINE = \"qemux86\"
+require conf/multilib.conf
+MULTILIBS = "multilib:lib32"
+DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
+""")
+ self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
+ bitbake("binutils-native -S none")
+ self.write_config("""
+TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
+TCLIBCAPPEND = \"\"
+MACHINE = \"qemux86copy\"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
+""")
+ self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
+ bitbake("binutils-native -S none")
+
+ def get_files(d):
+ f = []
+ for root, dirs, files in os.walk(d):
+ for name in files:
+ f.append(os.path.join(root, name))
+ return f
+ files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps")
+ files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps")
+ files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
+ self.maxDiff = None
+ self.assertCountEqual(files1, files2)
+
+
def test_sstate_noop_samesigs(self):
"""
The sstate checksums of two builds with these variables changed or
@@ -452,6 +505,7 @@ TIME = "111111"
DATE = "20161111"
INHERIT_remove = "buildstats-summary buildhistory uninative"
http_proxy = ""
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
self.track_for_cleanup(self.topdir + "/download1")
@@ -468,6 +522,7 @@ DATE = "20161212"
INHERIT_remove = "uninative"
INHERIT += "buildstats-summary buildhistory"
http_proxy = "http://example.com/"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
self.track_for_cleanup(self.topdir + "/download2")
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 ea75300406..714637ec1e 100644
--- a/meta/lib/oeqa/selftest/cases/wic.py
+++ b/meta/lib/oeqa/selftest/cases/wic.py
@@ -44,6 +44,30 @@ def only_for_arch(archs, image='core-image-minimal'):
return wrapped_f
return wrapper
+def extract_files(debugfs_output):
+ """
+ extract file names from the output of debugfs -R 'ls -p',
+ which looks like this:
+
+ /2/040755/0/0/.//\n
+ /2/040755/0/0/..//\n
+ /11/040700/0/0/lost+found^M//\n
+ /12/040755/1002/1002/run//\n
+ /13/040755/1002/1002/sys//\n
+ /14/040755/1002/1002/bin//\n
+ /80/040755/1002/1002/var//\n
+ /92/040755/1002/1002/tmp//\n
+ """
+ # NOTE the occasional ^M in file names
+ 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."""
@@ -66,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)
@@ -210,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
@@ -393,24 +429,6 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
runCmd("dd if=%s of=%s skip=%d count=%d" %
(wicimg, part_file, start, length))
- def extract_files(debugfs_output):
- """
- extract file names from the output of debugfs -R 'ls -p',
- which looks like this:
-
- /2/040755/0/0/.//\n
- /2/040755/0/0/..//\n
- /11/040700/0/0/lost+found^M//\n
- /12/040755/1002/1002/run//\n
- /13/040755/1002/1002/sys//\n
- /14/040755/1002/1002/bin//\n
- /80/040755/1002/1002/var//\n
- /92/040755/1002/1002/tmp//\n
- """
- # NOTE the occasional ^M in file names
- return [line.split('/')[5].strip() for line in \
- debugfs_output.strip().split('/\n')]
-
# Test partition 1, should contain the normal root directories, except
# /usr.
res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % \
@@ -451,6 +469,104 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
finally:
os.environ['PATH'] = oldpath
+ def test_include_path(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:
+ rootfs_dir = get_bb_var('IMAGE_ROOTFS', 'core-image-minimal')
+ wks.write("""
+part /part1 --source rootfs --ondisk mmcblk0 --fstype=ext4
+part /part2 --source rootfs --ondisk mmcblk0 --fstype=ext4 --include-path %s"""
+ % (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]
+ part2 = glob(os.path.join(self.resultdir, 'temp-*.direct.p2'))[0]
+
+ # Test partition 1, should not contain 'test-file'
+ 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 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'
@@ -469,6 +585,89 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
% (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):
@@ -500,7 +699,8 @@ class Wic2(WicTestCase):
# filter out optional variables
wicvars = wicvars.difference(('DEPLOY_DIR_IMAGE', 'IMAGE_BOOT_FILES',
'INITRD', 'INITRD_LIVE', 'ISODIR','INITRAMFS_IMAGE',
- 'INITRAMFS_IMAGE_BUNDLE', 'INITRAMFS_LINK_NAME'))
+ 'INITRAMFS_IMAGE_BUNDLE', 'INITRAMFS_LINK_NAME',
+ '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
@@ -601,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:])
+
+ 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(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)
+ self.assertEqual(partlns, [
+ "1:4.00kiB:204804kiB:204800kiB:ext4::;",
+ ])
def test_fixed_size_error(self):
"""
@@ -643,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):
@@ -866,6 +1173,13 @@ class Wic2(WicTestCase):
self.assertEqual(8, len(result.output.split('\n')))
self.assertTrue(os.path.basename(testdir) in result.output)
+ # copy the file from the partition and check if it success
+ dest = '%s-cp' % testfile.name
+ runCmd("wic cp %s:1/%s %s -n %s" % (images[0],
+ os.path.basename(testfile.name), dest, sysroot))
+ self.assertTrue(os.path.exists(dest))
+
+
def test_wic_rm(self):
"""Test removing files and directories from the the wic image."""
runCmd("wic create mkefidisk "
@@ -1005,6 +1319,16 @@ class Wic2(WicTestCase):
newdirs = set(line.split()[-1] for line in result.output.split('\n') if line)
self.assertEqual(newdirs.difference(dirs), set([os.path.basename(testfile.name)]))
+ # check if the file to copy is in the partition
+ result = runCmd("wic ls %s:2/etc/ -n %s" % (images[0], sysroot))
+ self.assertTrue('fstab' in [line.split()[-1] for line in result.output.split('\n') if line])
+
+ # copy file from the partition, replace the temporary file content with it and
+ # check for the file size to validate the copy
+ runCmd("wic cp %s:2/etc/fstab %s -n %s" % (images[0], testfile.name, sysroot))
+ self.assertTrue(os.stat(testfile.name).st_size > 0)
+
+
def test_wic_rm_ext(self):
"""Test removing files from the ext partition."""
runCmd("wic create mkefidisk "
@@ -1025,3 +1349,10 @@ class Wic2(WicTestCase):
# check if it's removed
result = runCmd("wic ls %s:2/etc/ -n %s" % (images[0], sysroot))
self.assertTrue('fstab' not in [line.split()[-1] for line in result.output.split('\n') if line])
+
+ # remove non-empty directory
+ runCmd("wic rm -r %s:2/etc/ -n %s" % (images[0], sysroot))
+
+ # check if it's removed
+ result = runCmd("wic ls %s:2/ -n %s" % (images[0], sysroot))
+ self.assertTrue('etc' not in [line.split()[-1] for line in result.output.split('\n') if line])
diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py
index c4eb5d614e..dd3609c1d6 100644
--- a/meta/lib/oeqa/selftest/context.py
+++ b/meta/lib/oeqa/selftest/context.py
@@ -9,25 +9,119 @@ import time
import glob
import sys
import importlib
-import signal
-from shutil import copyfile
+import subprocess
+import unittest
from random import choice
import oeqa
import oe
+import bb.utils
from oeqa.core.context import OETestContext, OETestContextExecutor
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()
+ if self.newbuilddir:
+ newbuilddir = os.path.join(self.newbuilddir, 'build' + suffix)
+ else:
+ newbuilddir = builddir + suffix
+ newselftestdir = newbuilddir + "/meta-selftest"
+
+ if os.path.exists(newbuilddir):
+ self.logger.error("Build directory %s already exists, aborting" % newbuilddir)
+ sys.exit(1)
+
+ bb.utils.mkdirhier(newbuilddir)
+ oe.path.copytree(builddir + "/conf", newbuilddir + "/conf")
+ oe.path.copytree(builddir + "/cache", newbuilddir + "/cache")
+ oe.path.copytree(selftestdir, newselftestdir)
+
+ for e in os.environ:
+ 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)
+
+ # Tried to used bitbake-layers add/remove but it requires recipe parsing and hence is too slow
+ subprocess.check_output("sed %s/conf/bblayers.conf -i -e 's#%s#%s#g'" % (newbuilddir, selftestdir, newselftestdir), cwd=newbuilddir, shell=True)
+
+ os.chdir(newbuilddir)
+
+ def patch_test(t):
+ if not hasattr(t, "tc"):
+ return
+ cp = t.tc.config_paths
+ for p in cp:
+ if selftestdir in cp[p] and newselftestdir not in cp[p]:
+ cp[p] = cp[p].replace(selftestdir, newselftestdir)
+ 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, removebuilddir)
+ else:
+ return NonConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir)
def runTests(self, processes=None, machine=None, skips=[]):
if machine:
@@ -85,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):
@@ -135,26 +231,11 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
builddir = os.environ.get("BUILDDIR")
self.tc_kwargs['init']['config_paths'] = {}
- self.tc_kwargs['init']['config_paths']['testlayer_path'] = \
- get_test_layer()
+ self.tc_kwargs['init']['config_paths']['testlayer_path'] = get_test_layer()
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']['localconf_backup'] = \
- os.path.join(builddir, "conf/local.conf.orig")
- self.tc_kwargs['init']['config_paths']['localconf_class_backup'] = \
- os.path.join(builddir, "conf/local.conf.bk")
- self.tc_kwargs['init']['config_paths']['bblayers'] = \
- os.path.join(builddir, "conf/bblayers.conf")
- self.tc_kwargs['init']['config_paths']['bblayers_backup'] = \
- os.path.join(builddir, "conf/bblayers.conf.orig")
- self.tc_kwargs['init']['config_paths']['bblayers_class_backup'] = \
- os.path.join(builddir, "conf/bblayers.conf.bk")
-
- copyfile(self.tc_kwargs['init']['config_paths']['localconf'],
- self.tc_kwargs['init']['config_paths']['localconf_backup'])
- copyfile(self.tc_kwargs['init']['config_paths']['bblayers'],
- self.tc_kwargs['init']['config_paths']['bblayers_backup'])
+ 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:
@@ -279,14 +360,9 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
return rc
- def _signal_clean_handler(self, signum, frame):
- sys.exit(1)
-
def run(self, logger, args):
self._process_args(logger, args)
- signal.signal(signal.SIGTERM, self._signal_clean_handler)
-
rc = None
try:
if args.machine:
@@ -315,20 +391,6 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
rc = self._internal_run(logger, args)
finally:
config_paths = self.tc_kwargs['init']['config_paths']
- if os.path.exists(config_paths['localconf_backup']):
- copyfile(config_paths['localconf_backup'],
- config_paths['localconf'])
- os.remove(config_paths['localconf_backup'])
-
- if os.path.exists(config_paths['bblayers_backup']):
- copyfile(config_paths['bblayers_backup'],
- config_paths['bblayers'])
- os.remove(config_paths['bblayers_backup'])
-
- if os.path.exists(config_paths['localconf_class_backup']):
- os.remove(config_paths['localconf_class_backup'])
- if os.path.exists(config_paths['bblayers_class_backup']):
- os.remove(config_paths['bblayers_class_backup'])
output_link = os.path.join(os.path.dirname(args.output_log),
"%s-results.log" % self.name)
diff --git a/meta/lib/oeqa/targetcontrol.py b/meta/lib/oeqa/targetcontrol.py
index 1445e3ecfb..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":
@@ -143,7 +143,8 @@ class QemuTarget(BaseTarget):
use_kvm = use_kvm,
dump_dir = dump_dir,
dump_host_cmds = d.getVar("testimage_dump_host"),
- logger = logger)
+ logger = logger,
+ serial_ports = len(d.getVar("SERIAL_CONSOLES").split()))
self.target_dumper = TargetDumper(dump_target_cmds, dump_dir, self.runner)
@@ -181,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/dump.py b/meta/lib/oeqa/utils/dump.py
index d34e05e2b4..09a44329e0 100644
--- a/meta/lib/oeqa/utils/dump.py
+++ b/meta/lib/oeqa/utils/dump.py
@@ -71,8 +71,11 @@ class HostDumper(BaseDumper):
def dump_host(self, dump_dir=""):
if dump_dir:
self.dump_dir = dump_dir
+ env = os.environ.copy()
+ env['PATH'] = '/usr/sbin:/sbin:/usr/bin:/bin'
+ env['COLUMNS'] = '9999'
for cmd in self.cmds:
- result = runCmd(cmd, ignore_status=True)
+ result = runCmd(cmd, ignore_status=True, env=env)
self._write_dump(cmd.split()[0], result.output)
class TargetDumper(BaseDumper):
diff --git a/meta/lib/oeqa/utils/httpserver.py b/meta/lib/oeqa/utils/httpserver.py
index aa435590f0..58d3c3b3f8 100644
--- a/meta/lib/oeqa/utils/httpserver.py
+++ b/meta/lib/oeqa/utils/httpserver.py
@@ -22,10 +22,10 @@ class HTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
class HTTPService(object):
- def __init__(self, root_dir, host='', logger=None):
+ def __init__(self, root_dir, host='', port=0, logger=None):
self.root_dir = root_dir
self.host = host
- self.port = 0
+ self.port = port
self.logger = logger
def start(self):
diff --git a/meta/lib/oeqa/utils/logparser.py b/meta/lib/oeqa/utils/logparser.py
index 7313df8ec3..60e16d500e 100644
--- a/meta/lib/oeqa/utils/logparser.py
+++ b/meta/lib/oeqa/utils/logparser.py
@@ -25,13 +25,20 @@ class PtestParser(object):
section_regex['exitcode'] = re.compile(r"^ERROR: Exit status is (.+)")
section_regex['timeout'] = re.compile(r"^TIMEOUT: .*/(.+)/ptest")
+ # Cache markers so we don't take the re.search() hit all the time.
+ markers = ("PASS:", "FAIL:", "SKIP:", "BEGIN:", "END:", "DURATION:", "ERROR: Exit", "TIMEOUT:")
+
def newsection():
- return { 'name': "No-section", 'log': "" }
+ return { 'name': "No-section", 'log': [] }
current_section = newsection()
with open(logfile, errors='replace') as f:
for line in f:
+ if not line.startswith(markers):
+ current_section['log'].append(line)
+ continue
+
result = section_regex['begin'].search(line)
if result:
current_section['name'] = result.group(1)
@@ -61,7 +68,7 @@ class PtestParser(object):
current_section[t] = result.group(1)
continue
- current_section['log'] = current_section['log'] + line
+ current_section['log'].append(line)
for t in test_regex:
result = test_regex[t].search(line)
@@ -70,6 +77,11 @@ class PtestParser(object):
self.results[current_section['name']] = {}
self.results[current_section['name']][result.group(1).strip()] = t
+ # Python performance for repeatedly joining long strings is poor, do it all at once at the end.
+ # For 2.1 million lines in a log this reduces 18 hours to 12s.
+ for section in self.sections:
+ self.sections[section]['log'] = "".join(self.sections[section]['log'])
+
return self.results, self.sections
# Log the results as files. The file name is the section name and the contents are the tests in that section.
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 fe8b77d97a..77ec939ad7 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -21,6 +21,7 @@ import threading
import codecs
import logging
from oeqa.utils.dump import HostDumper
+from collections import defaultdict
# Get Unicode non printable control chars
control_range = list(range(0,32))+list(range(127,160))
@@ -31,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):
+ 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
@@ -54,16 +56,40 @@ 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
self.logger = logger
+ # Enable testing other OS's
+ # Set commands for target communication, and default to Linux ALWAYS
+ # Other OS's or baremetal applications need to provide their
+ # own implementation passing it through QemuRunner's constructor
+ # or by passing them through TESTIMAGE_BOOT_PATTERNS[flag]
+ # provided variables, where <flag> is one of the mentioned below.
+ accepted_patterns = ['search_reached_prompt', 'send_login_user', 'search_login_succeeded', 'search_cmd_finished']
+ default_boot_patterns = defaultdict(str)
+ # Default to the usual paterns used to communicate with the target
+ default_boot_patterns['search_reached_prompt'] = b' login:'
+ default_boot_patterns['send_login_user'] = 'root\n'
+ default_boot_patterns['search_login_succeeded'] = r"root@[a-zA-Z0-9\-]+:~#"
+ default_boot_patterns['search_cmd_finished'] = r"[a-zA-Z0-9]+@[a-zA-Z0-9\-]+:~#"
+
+ # Only override patterns that were set e.g. login user TESTIMAGE_BOOT_PATTERNS[send_login_user] = "webserver\n"
+ for pattern in accepted_patterns:
+ if not self.boot_patterns[pattern]:
+ self.boot_patterns[pattern] = default_boot_patterns[pattern]
+
def create_socket(self):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -98,11 +124,10 @@ class QemuRunner:
def handleSIGCHLD(self, signum, frame):
if self.runqemu and self.runqemu.poll():
if self.runqemu.returncode:
- self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
- self.logger.debug("Output from runqemu:\n%s" % self.getOutput(self.runqemu.stdout))
+ self.logger.error('runqemu exited with code %d' % self.runqemu.returncode)
+ 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()
@@ -136,13 +161,16 @@ 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)
def launch(self, launch_cmd, get_ip = True, qemuparams = None, extra_bootparams = None, env = None):
try:
- self.threadsock, threadport = self.create_socket()
+ if self.serial_ports >= 2:
+ self.threadsock, threadport = self.create_socket()
self.server_socket, self.serverport = self.create_socket()
except socket.error as msg:
self.logger.error("Failed to create listening socket: %s" % msg[1])
@@ -160,7 +188,10 @@ class QemuRunner:
if qemuparams:
self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"'
- launch_cmd += ' tcpserial=%s:%s %s' % (threadport, self.serverport, self.qemuparams)
+ if self.serial_ports >= 2:
+ launch_cmd += ' tcpserial=%s:%s %s' % (threadport, self.serverport, self.qemuparams)
+ else:
+ launch_cmd += ' tcpserial=%s %s' % (self.serverport, self.qemuparams)
self.origchldhandler = signal.getsignal(signal.SIGCHLD)
signal.signal(signal.SIGCHLD, self.handleSIGCHLD)
@@ -206,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)
@@ -215,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()
@@ -237,8 +282,8 @@ class QemuRunner:
self.logger.debug("qemu started in %s seconds - qemu procces pid is %s (%s)" %
(time.time() - (endtime - self.runqemutime),
self.qemupid, time.strftime("%D %H:%M:%S")))
+ cmdline = ''
if get_ip:
- cmdline = ''
with open('/proc/%s/cmdline' % self.qemupid) as p:
cmdline = p.read()
# It is needed to sanitize the data received
@@ -256,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()
@@ -275,14 +320,15 @@ class QemuRunner:
self.logger.debug("Target IP: %s" % self.ip)
self.logger.debug("Server IP: %s" % self.server_ip)
- self.thread = LoggingThread(self.log, self.threadsock, self.logger)
- self.thread.start()
- if not self.thread.connection_established.wait(self.boottime):
- self.logger.error("Didn't receive a console connection from qemu. "
- "Here is the qemu command line used:\n%s\nand "
- "output from runqemu:\n%s" % (cmdline, out))
- self.stop_thread()
- return False
+ if self.serial_ports >= 2:
+ self.thread = LoggingThread(self.log, self.threadsock, self.logger)
+ self.thread.start()
+ if not self.thread.connection_established.wait(self.boottime):
+ self.logger.error("Didn't receive a console connection from qemu. "
+ "Here is the qemu command line used:\n%s\nand "
+ "output from runqemu:\n%s" % (cmdline, out))
+ self.stop_thread()
+ return False
self.logger.debug("Output from runqemu:\n%s", out)
self.logger.debug("Waiting at most %d seconds for login banner (%s)" %
@@ -310,8 +356,12 @@ class QemuRunner:
data = data + sock.recv(1024)
if data:
bootlog += data
+ if self.serial_ports < 2:
+ # this socket has mixed console/kernel data, log it to logfile
+ self.log(data)
+
data = b''
- if b' login:' in bootlog:
+ if self.boot_patterns['search_reached_prompt'] in bootlog:
self.server_socket = qemusock
stopread = True
reachedlogin = True
@@ -343,8 +393,8 @@ class QemuRunner:
# If we are not able to login the tests can continue
try:
- (status, output) = self.run_serial("root\n", raw=True)
- if re.search(r"root@[a-zA-Z0-9\-]+:~#", output):
+ (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")
if netconf:
@@ -385,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()
@@ -396,7 +446,11 @@ class QemuRunner:
self.qemupid = None
self.ip = None
if os.path.exists(self.qemu_pidfile):
- os.remove(self.qemu_pidfile)
+ try:
+ os.remove(self.qemu_pidfile)
+ except FileNotFoundError as e:
+ # We raced, ignore
+ pass
if self.monitorpipe:
self.monitorpipe.close()
@@ -422,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
@@ -465,7 +519,7 @@ class QemuRunner:
if answer:
data += answer.decode('utf-8')
# Search the prompt to stop
- if re.search(r"[a-zA-Z0-9]+@[a-zA-Z0-9\-]+:~#", data):
+ if re.search(self.boot_patterns['search_cmd_finished'], data):
break
else:
raise Exception("No data on serial console socket")
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/lib/oeqa/utils/sshcontrol.py b/meta/lib/oeqa/utils/sshcontrol.py
index 49a07264c6..36c2ecb3db 100644
--- a/meta/lib/oeqa/utils/sshcontrol.py
+++ b/meta/lib/oeqa/utils/sshcontrol.py
@@ -23,7 +23,7 @@ class SSHProcess(object):
"stdin": None,
"shell": False,
"bufsize": -1,
- "preexec_fn": os.setsid,
+ "start_new_session": True,
}
self.options = dict(self.defaultopts)
self.options.update(options)
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/gnu-efi-3.0.9-fix-clang-build.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch
new file mode 100644
index 0000000000..c6d660095e
--- /dev/null
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch
@@ -0,0 +1,24 @@
+Fix building with CLANG-9.0.0
+
+Fixes
+clang-9: error: unknown argument: '-maccumulate-outgoing-args'
+
+Upstream-Status: Submitted [https://sourceforge.net/p/gnu-efi/patches/70/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/Make.defaults
++++ b/Make.defaults
+@@ -110,10 +110,10 @@
+ || ( [ $(GCCVERSION) -eq "4" ] \
+ && [ $(GCCMINOR) -ge "7" ] ) ) \
+ && echo 1)
+- ifeq ($(GCCNEWENOUGH),1)
+- CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11
+- else ifeq ($(USING_CLANG),clang)
++ ifeq ($(USING_CLANG),clang)
+ CPPFLAGS += -DGNU_EFI_USE_MS_ABI --std=c11
++ else ifeq ($(GCCNEWENOUGH),1)
++ CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11
+ endif
+
+ CFLAGS += -mno-red-zone
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
index a9806cfdf6..8a0138bbe5 100644
--- a/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch
@@ -19,25 +19,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
[Rebased for 3.0.8]
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- gnuefi/Makefile | 3 ++-
- lib/Makefile | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-diff --git a/gnuefi/Makefile b/gnuefi/Makefile
-index 2a61699..89b560a 100644
---- a/gnuefi/Makefile
-+++ b/gnuefi/Makefile
-@@ -54,7 +54,8 @@ TARGETS = crt0-efi-$(ARCH).o libgnuefi.a
-
- all: $(TARGETS)
-
--libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS))
-+libgnuefi.a: $(OBJS)
-+ $(AR) $(ARFLAGS) $@ $(OBJS)
-
- clean:
- rm -f $(TARGETS) *~ *.o $(OBJS)
diff --git a/lib/Makefile b/lib/Makefile
index 0e6410d..048751a 100644
--- a/lib/Makefile
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.9.bb b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
index f844435472..7888aba0fb 100644
--- a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.9.bb
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
@@ -12,13 +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] = "32af17b917545a693e549af2439c4a99"
-SRC_URI[sha256sum] = "6715ea7eae1c7e4fc5041034bd3f107ec2911962ed284a081e491646b12277f0"
+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 c81def2a17..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"
@@ -33,7 +36,7 @@ GRUBPLATFORM_arm = "efi"
GRUBPLATFORM_aarch64 = "efi"
GRUBPLATFORM ??= "pc"
-inherit autotools gettext texinfo
+inherit autotools gettext texinfo pkgconfig
EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} \
--disable-grub-mkfont \
@@ -60,10 +63,7 @@ BUILD_LDFLAGS = ""
export PYTHON = "python3"
do_configure_prepend() {
- ( cd ${S}
- ${S}/autogen.sh )
+ cd ${S}
+ 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/lrzsz/lrzsz-0.12.20/acdefine.patch b/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/acdefine.patch
deleted file mode 100644
index 682cf416e2..0000000000
--- a/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/acdefine.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Add a description to the AC_DEFINE for LOCALEDIR so that it appears in config.h
-and silences a fatal warning.
-
-Upstream-Status:Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/configure.in b/configure.in
-index c10460c..aa20263 100644
---- a/configure.in
-+++ b/configure.in
-@@ -258,7 +258,7 @@ AC_SUBST(LIBS)
-
- AM_GNU_GETTEXT
-
--AC_DEFINE_UNQUOTED(LOCALEDIR,"$prefix/$DATADIRNAME")
-+AC_DEFINE_UNQUOTED(LOCALEDIR,"$prefix/$DATADIRNAME",[locale directory])
-
- AC_OUTPUT([Makefile intl/Makefile lib/Makefile testsuite/Makefile m4/Makefile \
- man/Makefile po/Makefile.in src/Makefile debian/rules Specfile systype \
diff --git a/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch b/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch
new file mode 100644
index 0000000000..33af38b4a8
--- /dev/null
+++ b/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch
@@ -0,0 +1,5749 @@
+Update autotools infrastructure (including gettext) to modern versions.
+
+Upstream-Status: Pending
+Signed-off-by: Phil Blundell <pb@pbcl.net>
+
+diff -uprN clean/lrzsz-0.12.20/configure.in lrzsz-0.12.20/configure.in
+--- clean/lrzsz-0.12.20/configure.in 1998-12-30 07:50:07.000000000 +0000
++++ lrzsz-0.12.20/configure.in 2019-11-25 16:22:37.000000000 +0000
+@@ -92,7 +92,6 @@ AC_PROG_RANLIB
+ AC_ISC_POSIX
+ AC_AIX
+ AC_MINIX
+-AM_C_PROTOTYPES
+ AC_C_CONST
+ AC_C_INLINE
+
+@@ -253,18 +252,13 @@ ihave$lookup_facility
+ fi
+
+
+-AC_SUBST(CFLAGS)
+-AC_SUBST(LDFLAGS)
+ AC_SUBST(LIBS)
+
+-AM_GNU_GETTEXT
++AM_GNU_GETTEXT([external])
+
+-AC_DEFINE_UNQUOTED(LOCALEDIR,"$prefix/$DATADIRNAME")
+-AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
+-
+-AC_OUTPUT([Makefile intl/Makefile lib/Makefile testsuite/Makefile \
++AC_OUTPUT([Makefile lib/Makefile testsuite/Makefile \
+ man/Makefile po/Makefile.in src/Makefile debian/rules Specfile systype \
+ src/lrzszbug],
+-[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile;
++[
+ chmod +x debian/rules;
+ test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h])
+diff -uprN clean/lrzsz-0.12.20/intl/bindtextdom.c lrzsz-0.12.20/intl/bindtextdom.c
+--- clean/lrzsz-0.12.20/intl/bindtextdom.c 1998-04-26 14:22:36.000000000 +0100
++++ lrzsz-0.12.20/intl/bindtextdom.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,199 +0,0 @@
+-/* Implementation of the bindtextdomain(3) function
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#if defined STDC_HEADERS || defined _LIBC
+-# include <stdlib.h>
+-#else
+-# ifdef HAVE_MALLOC_H
+-# include <malloc.h>
+-# else
+-void free ();
+-# endif
+-#endif
+-
+-#if defined HAVE_STRING_H || defined _LIBC
+-# include <string.h>
+-#else
+-# include <strings.h>
+-# ifndef memcpy
+-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+-# endif
+-#endif
+-
+-#ifdef _LIBC
+-# include <libintl.h>
+-#else
+-# include "libgettext.h"
+-#endif
+-#include "gettext.h"
+-#include "gettextP.h"
+-
+-/* @@ end of prolog @@ */
+-
+-/* Contains the default location of the message catalogs. */
+-extern const char _nl_default_dirname[];
+-
+-/* List with bindings of specific domains. */
+-extern struct binding *_nl_domain_bindings;
+-
+-
+-/* Names for the libintl functions are a problem. They must not clash
+- with existing names and they should follow ANSI C. But this source
+- code is also used in GNU C Library where the names have a __
+- prefix. So we have to make a difference here. */
+-#ifdef _LIBC
+-# define BINDTEXTDOMAIN __bindtextdomain
+-# define strdup(str) __strdup (str)
+-#else
+-# define BINDTEXTDOMAIN bindtextdomain__
+-#endif
+-
+-/* Specify that the DOMAINNAME message catalog will be found
+- in DIRNAME rather than in the system locale data base. */
+-char *
+-BINDTEXTDOMAIN (domainname, dirname)
+- const char *domainname;
+- const char *dirname;
+-{
+- struct binding *binding;
+-
+- /* Some sanity checks. */
+- if (domainname == NULL || domainname[0] == '\0')
+- return NULL;
+-
+- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+- {
+- int compare = strcmp (domainname, binding->domainname);
+- if (compare == 0)
+- /* We found it! */
+- break;
+- if (compare < 0)
+- {
+- /* It is not in the list. */
+- binding = NULL;
+- break;
+- }
+- }
+-
+- if (dirname == NULL)
+- /* The current binding has be to returned. */
+- return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
+-
+- if (binding != NULL)
+- {
+- /* The domain is already bound. If the new value and the old
+- one are equal we simply do nothing. Otherwise replace the
+- old binding. */
+- if (strcmp (dirname, binding->dirname) != 0)
+- {
+- char *new_dirname;
+-
+- if (strcmp (dirname, _nl_default_dirname) == 0)
+- new_dirname = (char *) _nl_default_dirname;
+- else
+- {
+-#if defined _LIBC || defined HAVE_STRDUP
+- new_dirname = strdup (dirname);
+- if (new_dirname == NULL)
+- return NULL;
+-#else
+- size_t len = strlen (dirname) + 1;
+- new_dirname = (char *) malloc (len);
+- if (new_dirname == NULL)
+- return NULL;
+-
+- memcpy (new_dirname, dirname, len);
+-#endif
+- }
+-
+- if (binding->dirname != _nl_default_dirname)
+- free (binding->dirname);
+-
+- binding->dirname = new_dirname;
+- }
+- }
+- else
+- {
+- /* We have to create a new binding. */
+- size_t len;
+- struct binding *new_binding =
+- (struct binding *) malloc (sizeof (*new_binding));
+-
+- if (new_binding == NULL)
+- return NULL;
+-
+-#if defined _LIBC || defined HAVE_STRDUP
+- new_binding->domainname = strdup (domainname);
+- if (new_binding->domainname == NULL)
+- return NULL;
+-#else
+- len = strlen (domainname) + 1;
+- new_binding->domainname = (char *) malloc (len);
+- if (new_binding->domainname == NULL)
+- return NULL;
+- memcpy (new_binding->domainname, domainname, len);
+-#endif
+-
+- if (strcmp (dirname, _nl_default_dirname) == 0)
+- new_binding->dirname = (char *) _nl_default_dirname;
+- else
+- {
+-#if defined _LIBC || defined HAVE_STRDUP
+- new_binding->dirname = strdup (dirname);
+- if (new_binding->dirname == NULL)
+- return NULL;
+-#else
+- len = strlen (dirname) + 1;
+- new_binding->dirname = (char *) malloc (len);
+- if (new_binding->dirname == NULL)
+- return NULL;
+- memcpy (new_binding->dirname, dirname, len);
+-#endif
+- }
+-
+- /* Now enqueue it. */
+- if (_nl_domain_bindings == NULL
+- || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
+- {
+- new_binding->next = _nl_domain_bindings;
+- _nl_domain_bindings = new_binding;
+- }
+- else
+- {
+- binding = _nl_domain_bindings;
+- while (binding->next != NULL
+- && strcmp (domainname, binding->next->domainname) > 0)
+- binding = binding->next;
+-
+- new_binding->next = binding->next;
+- binding->next = new_binding;
+- }
+-
+- binding = new_binding;
+- }
+-
+- return binding->dirname;
+-}
+-
+-#ifdef _LIBC
+-/* Alias for function name in GNU C Library. */
+-weak_alias (__bindtextdomain, bindtextdomain);
+-#endif
+diff -uprN clean/lrzsz-0.12.20/intl/cat-compat.c lrzsz-0.12.20/intl/cat-compat.c
+--- clean/lrzsz-0.12.20/intl/cat-compat.c 1998-04-26 14:22:37.000000000 +0100
++++ lrzsz-0.12.20/intl/cat-compat.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,262 +0,0 @@
+-/* Compatibility code for gettext-using-catgets interface.
+- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#include <stdio.h>
+-
+-#ifdef STDC_HEADERS
+-# include <stdlib.h>
+-# include <string.h>
+-#else
+-char *getenv ();
+-# ifdef HAVE_MALLOC_H
+-# include <malloc.h>
+-# endif
+-#endif
+-
+-#ifdef HAVE_NL_TYPES_H
+-# include <nl_types.h>
+-#endif
+-
+-#include "libgettext.h"
+-
+-/* @@ end of prolog @@ */
+-
+-/* XPG3 defines the result of `setlocale (category, NULL)' as:
+- ``Directs `setlocale()' to query `category' and return the current
+- setting of `local'.''
+- However it does not specify the exact format. And even worse: POSIX
+- defines this not at all. So we can use this feature only on selected
+- system (e.g. those using GNU C Library). */
+-#ifdef _LIBC
+-# define HAVE_LOCALE_NULL
+-#endif
+-
+-/* The catalog descriptor. */
+-static nl_catd catalog = (nl_catd) -1;
+-
+-/* Name of the default catalog. */
+-static const char default_catalog_name[] = "messages";
+-
+-/* Name of currently used catalog. */
+-static const char *catalog_name = default_catalog_name;
+-
+-/* Get ID for given string. If not found return -1. */
+-static int msg_to_cat_id PARAMS ((const char *msg));
+-
+-/* Substitution for systems lacking this function in their C library. */
+-#if !_LIBC && !HAVE_STPCPY
+-static char *stpcpy PARAMS ((char *dest, const char *src));
+-#endif
+-
+-
+-/* Set currently used domain/catalog. */
+-char *
+-textdomain (domainname)
+- const char *domainname;
+-{
+- nl_catd new_catalog;
+- char *new_name;
+- size_t new_name_len;
+- char *lang;
+-
+-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
+- && defined HAVE_LOCALE_NULL
+- lang = setlocale (LC_MESSAGES, NULL);
+-#else
+- lang = getenv ("LC_ALL");
+- if (lang == NULL || lang[0] == '\0')
+- {
+- lang = getenv ("LC_MESSAGES");
+- if (lang == NULL || lang[0] == '\0')
+- lang = getenv ("LANG");
+- }
+-#endif
+- if (lang == NULL || lang[0] == '\0')
+- lang = "C";
+-
+- /* See whether name of currently used domain is asked. */
+- if (domainname == NULL)
+- return (char *) catalog_name;
+-
+- if (domainname[0] == '\0')
+- domainname = default_catalog_name;
+-
+- /* Compute length of added path element. */
+- new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
+- + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
+- + sizeof (".cat");
+-
+- new_name = (char *) malloc (new_name_len);
+- if (new_name == NULL)
+- return NULL;
+-
+- strcpy (new_name, PACKAGE);
+- new_catalog = catopen (new_name, 0);
+-
+- if (new_catalog == (nl_catd) -1)
+- {
+- /* NLSPATH search didn't work, try absolute path */
+- sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
+- PACKAGE);
+- new_catalog = catopen (new_name, 0);
+-
+- if (new_catalog == (nl_catd) -1)
+- {
+- free (new_name);
+- return (char *) catalog_name;
+- }
+- }
+-
+- /* Close old catalog. */
+- if (catalog != (nl_catd) -1)
+- catclose (catalog);
+- if (catalog_name != default_catalog_name)
+- free ((char *) catalog_name);
+-
+- catalog = new_catalog;
+- catalog_name = new_name;
+-
+- return (char *) catalog_name;
+-}
+-
+-char *
+-bindtextdomain (domainname, dirname)
+- const char *domainname;
+- const char *dirname;
+-{
+-#if HAVE_SETENV || HAVE_PUTENV
+- char *old_val, *new_val, *cp;
+- size_t new_val_len;
+-
+- /* This does not make much sense here but to be compatible do it. */
+- if (domainname == NULL)
+- return NULL;
+-
+- /* Compute length of added path element. If we use setenv we don't need
+- the first byts for NLSPATH=, but why complicate the code for this
+- peanuts. */
+- new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
+- + sizeof ("/%L/LC_MESSAGES/%N.cat");
+-
+- old_val = getenv ("NLSPATH");
+- if (old_val == NULL || old_val[0] == '\0')
+- {
+- old_val = NULL;
+- new_val_len += 1 + sizeof (LOCALEDIR) - 1
+- + sizeof ("/%L/LC_MESSAGES/%N.cat");
+- }
+- else
+- new_val_len += strlen (old_val);
+-
+- new_val = (char *) malloc (new_val_len);
+- if (new_val == NULL)
+- return NULL;
+-
+-# if HAVE_SETENV
+- cp = new_val;
+-# else
+- cp = stpcpy (new_val, "NLSPATH=");
+-# endif
+-
+- cp = stpcpy (cp, dirname);
+- cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
+-
+- if (old_val == NULL)
+- {
+-# if __STDC__
+- stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
+-# else
+-
+- cp = stpcpy (cp, LOCALEDIR);
+- stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
+-# endif
+- }
+- else
+- stpcpy (cp, old_val);
+-
+-# if HAVE_SETENV
+- setenv ("NLSPATH", new_val, 1);
+- free (new_val);
+-# else
+- putenv (new_val);
+- /* Do *not* free the environment entry we just entered. It is used
+- from now on. */
+-# endif
+-
+-#endif
+-
+- return (char *) domainname;
+-}
+-
+-#undef gettext
+-char *
+-gettext (msg)
+- const char *msg;
+-{
+- int msgid;
+-
+- if (msg == NULL || catalog == (nl_catd) -1)
+- return (char *) msg;
+-
+- /* Get the message from the catalog. We always use set number 1.
+- The message ID is computed by the function `msg_to_cat_id'
+- which works on the table generated by `po-to-tbl'. */
+- msgid = msg_to_cat_id (msg);
+- if (msgid == -1)
+- return (char *) msg;
+-
+- return catgets (catalog, 1, msgid, (char *) msg);
+-}
+-
+-/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
+- for the one equal to msg. If it is found return the ID. In case when
+- the string is not found return -1. */
+-static int
+-msg_to_cat_id (msg)
+- const char *msg;
+-{
+- int cnt;
+-
+- for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
+- if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
+- return _msg_tbl[cnt]._msg_number;
+-
+- return -1;
+-}
+-
+-
+-/* @@ begin of epilog @@ */
+-
+-/* We don't want libintl.a to depend on any other library. So we
+- avoid the non-standard function stpcpy. In GNU C Library this
+- function is available, though. Also allow the symbol HAVE_STPCPY
+- to be defined. */
+-#if !_LIBC && !HAVE_STPCPY
+-static char *
+-stpcpy (dest, src)
+- char *dest;
+- const char *src;
+-{
+- while ((*dest++ = *src++) != '\0')
+- /* Do nothing. */ ;
+- return dest - 1;
+-}
+-#endif
+diff -uprN clean/lrzsz-0.12.20/intl/ChangeLog lrzsz-0.12.20/intl/ChangeLog
+--- clean/lrzsz-0.12.20/intl/ChangeLog 1998-04-26 14:22:35.000000000 +0100
++++ lrzsz-0.12.20/intl/ChangeLog 1970-01-01 01:00:00.000000000 +0100
+@@ -1,1022 +0,0 @@
+-1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com>
+-
+- * intlh.inst.in: Reformat copyright.
+-
+-1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com>
+-
+- * dcgettext.c (DCGETTEXT): Remove wrong comment.
+-
+-1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com>
+-
+- * Makefile.in (install-data): Don't change directory to install.
+-
+-1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com>
+-
+- * cat-compat.c: Fix copyright.
+-
+- * localealias.c: Don't define strchr unless !HAVE_STRCHR.
+-
+- * loadmsgcat.c: Update copyright. Fix typos.
+-
+- * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
+- (_nl_make_l10nflist): Handle sponsor and revision correctly.
+-
+- * gettext.c: Update copyright.
+- * gettext.h: Likewise.
+- * hash-string.h: Likewise.
+-
+- * finddomain.c: Remoave dead code. Define strchr only if
+- !HAVE_STRCHR.
+-
+- * explodename.c: Include <sys/types.h>.
+-
+- * explodename.c: Reformat copyright text.
+- (_nl_explode_name): Fix typo.
+-
+- * dcgettext.c: Define and use __set_errno.
+- (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
+- not defined.
+-
+- * bindtextdom.c: Pretty printing.
+-
+-1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com>
+-
+- * dcgettext.c (guess_category_value): Don't depend on
+- HAVE_LC_MESSAGES. We don't need the macro here.
+- Patch by Bruno Haible <haible@ilog.fr>.
+-
+- * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
+- macro. Instead use HAVE_LOCALE_NULL and define it when using
+- glibc, as in dcgettext.c.
+- Patch by Bruno Haible <haible@ilog.fr>.
+-
+- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois
+- Pinard.
+-
+-Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com>
+-
+- * Makefile.in: Implement handling of libtool.
+-
+- * gettextP.h: Change data structures for use of generic lowlevel
+- i18n file handling.
+-
+-Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * textdomain.c: Put parentheses around arguments of memcpy macro
+- definition.
+- * localealias.c: Likewise.
+- * l10nflist.c: Likewise.
+- * finddomain.c: Likewise.
+- * bindtextdom.c: Likewise.
+- Reported by Thomas Esken.
+-
+-Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * textdomain.c: Move definition of `memcpy` macro to right
+- position.
+-
+-Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
+- bcopy if not already defined. Reported by Thomas Esken.
+- * bindtextdom.c: Likewise.
+- * l10nflist.c: Likewise.
+- * localealias.c: Likewise.
+- * textdomain.c: Likewise.
+-
+-Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * Makefile.in (libdir): Change to use exec_prefix instead of
+- prefix. Reported by Knut-HåvardAksnes <etokna@eto.ericsson.se>.
+-
+-Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
+- so don't prepend uppercase `ISO' for only numeric arg.
+-
+-Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
+- definition of _GNU_SOURCE. Patch by Roland McGrath.
+-
+- * Makefile.in (uninstall): Fix another bug with `for' loop and
+- empty arguments. Patch by Jim Meyering. Correct name os
+- uninstalled files: no intl- prefix anymore.
+-
+- * Makefile.in (install-data): Again work around shells which
+- cannot handle mpty for list. Reported by Jim Meyering.
+-
+-Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * Makefile.in (install): Split goal. Now depend on install-exec
+- and install-data.
+- (install-exec, install-data): New goals. Created from former
+- install goal.
+- Reported by Karl Berry.
+-
+-Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * Makefile.in (MKINSTALLDIRS): New variable. Path to
+- mkinstalldirs script.
+- (install): use MKINSTALLDIRS variable or if the script is not present
+- try to find it in the $top_scrdir).
+-
+-Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * l10nflist.c: Linux libc *partly* includes the argz_* functions.
+- Grr. Work around by renaming the static version and use macros
+- for renaming.
+-
+-Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * l10nflist.c: Correct presence test macros of __argz_* functions.
+-
+- * l10nflist.c: Include <argz.h> based on test of it instead when
+- __argz_* functions are available.
+- Reported by Andreas Schwab.
+-
+-Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * explodename.c, l10nflist.c: Define NULL for dumb systems.
+-
+-Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
+- result to __result to prevent name clash.
+-
+- * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
+- get prototype for stpcpy and strcasecmp.
+-
+- * intlh.inst.in, libgettext.h: Move declaration of
+- `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
+- from gcc's -Wnested-extern option.
+-
+-Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * Makefile.in (install): Remove comment.
+-
+-Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * Makefile.in (install): Work around for another Buglix stupidity.
+- Always use an `else' close for `if's. Reported by Nelson Beebe.
+-
+- * Makefile.in (intlh.inst): Correct typo in phony rule.
+- Reported by Nelson Beebe.
+-
+-Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * dcgettext.c (read_alias_file): Rename variable alloca_list to
+- block_list as the macro calls assume.
+- Patch by Eric Backus.
+-
+- * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
+- malloc.
+- (read_alias_file): Rename varriabe alloca_list to block_list as the
+- macro calls assume.
+- Patch by Eric Backus.
+-
+- * l10nflist.c: Correct conditional for <argz.h> inclusion.
+- Reported by Roland McGrath.
+-
+- * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not
+- all-@USE_NLS@.
+-
+- * Makefile.in (install): intlh.inst comes from local dir, not
+- $(srcdir).
+-
+- * Makefile.in (intlh.inst): Special handling of this goal. If
+- used in gettext, this is really a rul to construct this file. If
+- used in any other package it is defined as a .PHONY rule with
+- empty body.
+-
+- * finddomain.c: Extract locale file information handling into
+- l10nfile.c. Rename local stpcpy__ function to stpcpy.
+-
+- * dcgettext.c (stpcpy): Add local definition.
+-
+- * l10nflist.c: Solve some portability problems. Patches partly by
+- Thomas Esken. Add local definition of stpcpy.
+-
+-Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * intlh.inst.in: Don't depend including <locale.h> on
+- HAVE_LOCALE_H. Instead configure must rewrite this fiile
+- depending on the result of the configure run.
+-
+- * Makefile.in (install): libintl.inst is now called intlh.inst.
+- Add rules for updating intlh.inst from intlh.inst.in.
+-
+- * libintl.inst: Renamed to intlh.inst.in.
+-
+- * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
+- because gcc has __buitlin_alloca.
+- Reported by Roland McGrath.
+-
+-Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * Makefile.in (installcheck): New goal to fulfill needs of
+- automake's distcheck.
+-
+- * Makefile.in (install): Reorder commands so that VERSION is
+- found.
+-
+- * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
+- @datadir@/gettext.
+- (COMSRCS): Add l10nfile.c.
+- (OBJECTS): Add l10nfile.o.
+- (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common).
+- (DISTFILE.gettext): Remove $(DISTFILES.common).
+- (all-gettext): Remove goal.
+- (install): If $(PACKAGE) = gettext install, otherwose do nothing. No
+- package but gettext itself should install libintl.h + headers.
+- (dist): Extend goal to work for gettext, too.
+- (dist-gettext): Remove goal.
+-
+- * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
+-
+-Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
+- find_l10nfile.
+-
+-Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com>
+-
+- * l10nflist.c (__argz_next): Add definition.
+-
+- * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
+- code. Use new l10nfile handling.
+-
+- * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
+- alloca code.
+-
+- * l10nflist.c: Initial revision.
+-
+-Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (all-gettext): New goal. Same as all-yes.
+-
+-Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de>
+-
+- * Makefile.in (gettextsrcdir): Define using @datadir@.
+-
+-Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c: Include <ctype.h>. Reported by Roland McGrath.
+-
+-Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
+- with external declaration.
+-
+-Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (all-no): Rename from all_no.
+-
+-Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware>
+-
+- * gettextP.h [loaded_domain]: Array `successor' must now contain up
+- to 63 elements (because of codeset name normalization).
+-
+- * finddomain.c: Implement codeset name normalization.
+-
+-Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (all): Define to `all-@USE_NLS@'.
+- (all-yes, all_no): New goals. `all-no' is noop, `all-yes'
+- is former all.
+-
+-Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com>
+-
+- * localealias.c (alias_compare): Increment string pointers in loop
+- of strcasecmp replacement.
+-
+-Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (install-src): Who commented this goal out ? :-)
+-
+-Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware>
+-
+- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls
+- should not effect it because a missing catalog is no error.
+- Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>.
+-
+-Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (Makefile): Explicitly use $(SHELL) for running
+- shell scripts.
+-
+-Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+-
+- * Makefile.in (install-src): Only install library and header when
+- we use the own implementation. Don't do it when using the
+- system's gettext or catgets functions.
+-
+- * dcgettext.c (find_msg): Must not swap domain->hash_size here.
+-
+-Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware>
+-
+- * localealias.c, libintl.inst, libgettext.h, hash-string.h,
+- gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
+- Use PARAMS instead of __P. Suggested by Roland McGrath.
+-
+-Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu>
+-
+- * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
+- !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
+-
+-Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (install-src):
+- Install libintl.inst instead of libintl.h.install.
+-
+-Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu>
+-
+- * cat-compat.c (textdomain):
+- Reverse order in which files are tried you load. First
+- try local file, when this failed absolute path.
+-
+-Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
+-
+- * cat-compat.c (bindtextdomain): Add missing { }.
+-
+-Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware>
+-
+- * libintl.inst: Add missing __P definition. Reported by Nelson Beebe.
+-
+- * Makefile.in:
+- Add dummy `all' and `dvi' goals. Reported by Tom Tromey.
+-
+-Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca>
+-
+- * hash-string.h: Capitalize arguments of macros.
+-
+-Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (DISTFILES): Prevent files names longer than 13
+- characters. libintl.h.glibc->libintl.glibc,
+- libintl.h.install->libintl.inst. Reported by Joshua R. Poulson.
+-
+-Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com>
+-
+- * dcgettext.c: Fix bug in preprocessor conditionals.
+-
+-Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
+-
+- * libgettext.h: Solaris cc does not understand
+- #if !SYMBOL1 && !SYMBOL2. Sad but true.
+-
+-Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware>
+-
+- * hash-string.h (hash_string):
+- Fix for machine with >32 bit `unsigned long's.
+-
+- * dcgettext.c (DCGETTEXT):
+- Fix horrible bug in loop for alternative translation.
+-
+-Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware>
+-
+- * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
+- Some further simplifications in message number generation.
+-
+-Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware>
+-
+- * libintl.h.glibc: Use __const instead of const in prototypes.
+-
+- * Makefile.in (install-src):
+- Install libintl.h.install instead of libintl.h. This
+- is a stripped-down version. Suggested by Peter Miller.
+-
+- * libintl.h.install, libintl.h.glibc: Initial revision.
+-
+- * localealias.c (_nl_expand_alias, read_alias_file):
+- Protect prototypes in type casts by __P.
+-
+-Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware>
+-
+- * hash-string.h: Correct prototype for hash_string.
+-
+-Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware>
+-
+- * hash-string.h (hash_string): Add prototype.
+-
+- * gettextP.h: Fix copyright.
+- (SWAP): Add prototype.
+-
+-Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware>
+-
+- * localealias.c (read_alias_file): Forgot sizeof.
+- Avoid calling *printf function. This introduces a big overhead.
+- Patch by Roland McGrath.
+-
+-Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
+-
+- * finddomain.c (stpcpy):
+- Define substitution function local. The macro was to flaky.
+-
+- * cat-compat.c: Fix typo.
+-
+- * xopen-msg.sed, linux-msg.sed:
+- While bringing message number to right place only accept digits.
+-
+- * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
+- leading 0s we don't need to remove them. Reported by Marcus
+- Daniels.
+-
+- * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
+- dependency. Reported by Marcus Daniels.
+-
+- * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
+- Generally cleanup using #if instead of #ifndef.
+-
+- * Makefile.in: Correct typos in comment. By Franc,ois Pinard.
+-
+-Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (install-src): Don't install libintl.h and libintl.a
+- if we use an available gettext implementation.
+-
+-Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware>
+-
+- * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported
+- by Franc,ois Pinard.
+-
+- * libgettext.h: Use #if instead of #ifdef/#ifndef.
+-
+- * finddomain.c:
+- Comments describing what has to be done should start with FIXME.
+-
+-Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning.
+- DISTFILES.common names the files common to both dist goals.
+- DISTFILES.gettext are the files only distributed in GNU gettext.
+-
+-Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware>
+-
+- * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
+- This was necessary since a change in _nl_find_msg several weeks
+- ago. I really don't know this is still not fixed.
+-
+-Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware>
+-
+- * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This
+- might mark a special condition.
+-
+- * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
+-
+- * Makefile.in (dist): Suppress error message when ln failed.
+- Get files from $(srcdir) explicitly.
+-
+- * libgettext.h (gettext_const): Rename to gettext_noop.
+-
+-Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c (make_entry_rec):
+- Protect against wrong locale names by testing mask.
+-
+- * libgettext.h (gettext_const): Add macro definition.
+- Capitalize macro arguments.
+-
+-Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c (_nl_find_domain):
+- Test for pointer != NULL before accessing value.
+- Reported by Tom Tromey.
+-
+- * gettext.c (NULL):
+- Define as (void*)0 instad of 0. Reported by Franc,ois Pinard.
+-
+-Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware>
+-
+- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
+-
+-Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware>
+-
+- * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
+-
+- * localealias.c (alias_compare):
+- Peter Miller reported that tolower in some systems is
+- even dumber than I thought. Protect call by `isupper'.
+-
+-Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (libdir, includedir): New variables.
+- (install-src): Install libintl.a and libintl.h in correct dirs.
+-
+-Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
+-
+- * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
+-
+- * localealias.c:
+- Fix typo and superflous test. Reported by Christian von Roques.
+-
+-Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c (_nl_find_domain):
+- Correct some remainder from the pre-CEN syntax. Now
+- we don't have a constant number of successors anymore.
+-
+-Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (DISTFILES): Add libintl.h.glibc.
+-
+- * Makefile.in (dist-libc): Add goal for packing sources for glibc.
+- (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
+-
+- * loadmsgcat.c: Forget to continue #if line.
+-
+- * localealias.c:
+- [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
+- space clean.
+-
+- * dcgettext.c, finddomain.c: Better comment to last change.
+-
+- * loadmsgcat.c:
+- [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
+- __fstat, __open, __close, __read, __mmap, and __munmap resp
+- to keep ANSI C name space clean.
+-
+- * finddomain.c:
+- [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
+-
+- * dcgettext.c:
+- [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
+- keep ANSI C name space clean.
+-
+- * libgettext.h:
+- Include sys/types.h for those old SysV systems out there.
+- Reported by Francesco Potorti`.
+-
+- * loadmsgcat.c (use_mmap): Define if compiled for glibc.
+-
+- * bindtextdom.c: Include all those standard headers
+- unconditionally if _LIBC is defined.
+-
+- * finddomain.c: Fix 2 times defiend -> defined.
+-
+- * textdomain.c: Include libintl.h instead of libgettext.h when
+- compiling for glibc. Include all those standard headers
+- unconditionally if _LIBC is defined.
+-
+- * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
+-
+- * gettext.c:
+- Include libintl.h instead of libgettext.h when compiling for glibc.
+- Get NULL from stddef.h if we compile for glibc.
+-
+- * finddomain.c: Include libintl.h instead of libgettext.h when
+- compiling for glibc. Include all those standard headers
+- unconditionally if _LIBC is defined.
+-
+- * dcgettext.c: Include all those standard headers unconditionally
+- if _LIBC is defined.
+-
+- * dgettext.c: If compiled in glibc include libintl.h instead of
+- libgettext.h.
+- (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
+-
+- * dcgettext.c: If compiled in glibc include libintl.h instead of
+- libgettext.h.
+- (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
+-
+- * bindtextdom.c:
+- If compiled in glibc include libintl.h instead of libgettext.h.
+-
+-Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware>
+-
+- * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
+- Reported by Marcus Daniels.
+-
+- * cat-compat.c (bindtextdomain):
+- String used in putenv must not be recycled.
+- Reported by Marcus Daniels.
+-
+- * libgettext.h (__USE_GNU_GETTEXT):
+- Additional symbol to signal that we use GNU gettext
+- library.
+-
+- * cat-compat.c (bindtextdomain):
+- Fix bug with the strange stpcpy replacement.
+- Reported by Nelson Beebe.
+-
+-Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware>
+-
+- * cat-compat.c: Include <string.h> for stpcpy prototype.
+-
+- * localealias.c (read_alias_file):
+- While expand strdup code temporary variable `cp' hided
+- higher level variable with same name. Rename to `tp'.
+-
+- * textdomain.c (textdomain):
+- Avoid warning by using temporary variable in strdup code.
+-
+- * finddomain.c (_nl_find_domain): Remove unused variable `application'.
+-
+-Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware>
+-
+- * localealias.c (alias_compare):
+- Use strcasecmp() only if available. Else use
+- implementation in place.
+-
+- * intl-compat.c:
+- Wrapper functions now call *__ functions instead of __*.
+-
+- * libgettext.h: Declare prototypes for *__ functions instead for __*.
+-
+- * cat-compat.c, loadmsgcat.c:
+- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+- of the standard libc and so prevent libintl.a from being used
+- standalone.
+-
+- * bindtextdom.c:
+- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+- of the standard libc and so prevent libintl.a from being used
+- standalone.
+- Rename to bindtextdomain__ if not used in GNU C Library.
+-
+- * dgettext.c:
+- Rename function to dgettext__ if not used in GNU C Library.
+-
+- * gettext.c:
+- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+- of the standard libc and so prevent libintl.a from being used
+- standalone.
+- Functions now called gettext__ if not used in GNU C Library.
+-
+- * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
+- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+- of the standard libc and so prevent libintl.a from being used
+- standalone.
+-
+-Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c: Correct some bugs in handling of CEN standard
+- locale definitions.
+-
+-Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c: Implement CEN syntax.
+-
+- * gettextP.h (loaded_domain): Extend number of successors to 31.
+-
+-Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (aliaspath): Remove path to X11 locale dir.
+-
+- * Makefile.in: Make install-src depend on install. This helps
+- gettext to install the sources and other packages can use the
+- install goal.
+-
+-Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (uninstall): Remove stuff installed by install-src.
+-
+-Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware>
+-
+- * VERSION.in: Initial revision.
+-
+- * Makefile.in (DISTFILES):
+- Add VERSION file. This is not necessary for gettext, but
+- for other packages using this library.
+-
+-Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware>
+-
+- * gettextP.h (_nl_find_domain):
+- New prototype after changing search strategy.
+-
+- * finddomain.c (_nl_find_domain):
+- We now try only to find a specified catalog. Fall back to other
+- catalogs listed in the locale list is now done in __dcgettext.
+-
+- * dcgettext.c (__dcgettext):
+- Now we provide message fall back even to different languages.
+- I.e. if a message is not available in one language all the other
+- in the locale list a tried. Formerly fall back was only possible
+- within one language. Implemented by moving one loop from
+- _nl_find_domain to here.
+-
+-Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (gettextsrcdir):
+- Directory where source of GNU gettext library are made
+- available.
+- (INSTALL, INSTALL_DATA): Programs used for installing sources.
+- (gettext-src): New. Rule to install GNU gettext sources for use in
+- gettextize shell script.
+-
+-Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware>
+-
+- * loadmsgcat.c (_nl_load_domain):
+- Use mmap for loading only when munmap function is
+- also available.
+-
+- * Makefile.in (install): Depend on `all' goal.
+-
+-Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware>
+-
+- * localealias.c (read_alias_file):
+- Do not overwrite '\n' when terminating alias value string.
+-
+- * localealias.c (read_alias_file):
+- Handle long lines. Ignore the rest not fitting in
+- the buffer after the initial `fgets' call.
+-
+-Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware>
+-
+- * gettextP.h (_nl_load_domain):
+- Add prototype, replacing prototype for _nl_load_msg_cat.
+-
+- * finddomain.c (_nl_find_domain):
+- Remove unneeded variable filename and filename_len.
+- (expand_alias): Remove prototype because functions does not
+- exist anymore.
+-
+- * localealias.c (read_alias_file):
+- Change type of fname_len parameter to int.
+- (xmalloc): Add prototype.
+-
+- * loadmsgcat.c: Better prototypes for xmalloc.
+-
+-Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c (_nl_find_domain):
+- Allow alias name to be constructed from the four components.
+-
+- * Makefile.in (aliaspath): New variable. Set to preliminary value.
+- (SOURCES): Add localealias.c.
+- (OBJECTS): Add localealias.o.
+-
+- * gettextP.h: Add prototype for _nl_expand_alias.
+-
+- * finddomain.c: Aliasing handled in intl/localealias.c.
+-
+- * localealias.c: Aliasing for locale names.
+-
+- * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
+-
+-Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
+-
+- * cat-compat.c (bindtextdomain):
+- Correct implementation. dirname parameter was not used.
+- Reported by Marcus Daniels.
+-
+- * gettextP.h (loaded_domain):
+- New fields `successor' and `decided' for oo, lazy
+- message handling implementation.
+-
+- * dcgettext.c:
+- Adopt for oo, lazy message handliing.
+- Now we can inherit translations from less specific locales.
+- (find_msg): New function.
+-
+- * loadmsgcat.c, finddomain.c:
+- Complete rewrite. Implement oo, lazy message handling :-).
+- We now have an additional environment variable `LANGUAGE' with
+- a higher priority than LC_ALL for the LC_MESSAGE locale.
+- Here we can set a colon separated list of specifications each
+- of the form `language[_territory[.codeset]][@modifier]'.
+-
+-Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c (unistd.h):
+- Include to get _PC_PATH_MAX defined on system having it.
+-
+-Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware>
+-
+- * finddomain.c (stpcpy): Include prototype.
+-
+- * Makefile.in (dist): Remove `copying instead' message.
+-
+-Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (ID, TAGS): Do not use $^.
+-
+-Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (TAGS, ID): Use $^ as command argument.
+- (TAGS): Give etags -o option t write to current directory,
+- not $(srcdir).
+- (ID): Use $(srcdir) instead os $(top_srcdir)/src.
+- (distclean): Remove ID.
+-
+-Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (gnulocaledir):
+- New variable, always using share/ for data directory.
+- (DEFS): Add GNULOCALEDIR, used in finddomain.c.
+-
+- * finddomain.c (_nl_default_dirname):
+- Set to GNULOCALEDIR, because it always has to point
+- to the directory where GNU gettext Library writes it to.
+-
+- * intl-compat.c (textdomain, bindtextdomain):
+- Undefine macros before function definition.
+-
+-Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware>
+-
+- * libgettext.h (_LIBINTL_H):
+- Protect definition in case where this file is included as
+- libgettext.h on Solaris machines. Add comment about this.
+-
+-Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware>
+-
+- * intl-compat.c (textdomain): Correct typo.
+-
+-Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware>
+-
+- * dcgettext.c (dcgettext): Function now called __dcgettext.
+-
+- * dgettext.c (dgettext): Now called __dgettext and calls
+- __dcgettext.
+-
+- * gettext.c (gettext):
+- Function now called __gettext and calls __dgettext.
+-
+- * textdomain.c (textdomain): Function now called __textdomain.
+-
+- * bindtextdom.c (bindtextdomain): Function now called
+- __bindtextdomain.
+-
+- * intl-compat.c: Initial revision.
+-
+- * Makefile.in (SOURCES): Add intl-compat.c.
+- (OBJECTS): We always compile the GNU gettext library functions.
+- OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
+- and intl-compat.o.
+- (GETTOBJS): Contains now only intl-compat.o.
+-
+- * libgettext.h:
+- Re-include protection matches dualistic character of libgettext.h.
+- For all functions in GNU gettext library define __ counter part.
+-
+- * finddomain.c (strchr): Define as index if not found in C library.
+- (_nl_find_domain): For relative paths paste / in between.
+-
+-Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware>
+-
+- * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
+-
+- * xopen-msg.sed: Fix bug with `msgstr ""' lines.
+- A little bit better comments.
+-
+-Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in:
+- po-mode.el, makelinks, combine-sh are now found in ../misc.
+-
+- * po-mode.el, makelinks, combine-sh, elisp-comp:
+- Moved to ../misc/.
+-
+- * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
+-
+-Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (INSTALL, INSTALL_DATA): New variables.
+- (install-data, uninstall): Install/uninstall .elc file.
+-
+- * po-mode.el (Installation comment):
+- Add .pox as possible extension of .po files.
+-
+-Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware>
+-
+- * elisp-comp: Complete new version by Franc,ois: This does not
+- fail when not compiling in the source directory.
+-
+-Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (../po/cat-id-tbl.o):
+- Use $(MAKE) instead of make for recursive make.
+-
+- * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
+- (install-exec): Add missing dummy goal.
+- (install-data, uninstall): @ in multi-line shell command at
+- beginning, not in front of echo. Reported by Eric Backus.
+-
+-Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (DISTFILES):
+- Rename libgettext.perl to gettext.perl to fit in 14 chars
+- file systems.
+-
+- * gettext.perl:
+- Rename to gettext.perl to fit in 14 chars file systems.
+-
+-Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware>
+-
+- * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
+-
+-Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware>
+-
+- * po2tbl.sed.in: Pretty printing.
+-
+- * linux-msg.sed, xopen-msg.sed:
+- Correct bugs with handling substitute flags in branches.
+-
+- * hash-string.h (hash_string):
+- Old K&R compilers don't under stand `unsigned char'.
+-
+- * gettext.h (nls_uint32):
+- Some old K&R compilers (eg HP) don't understand `unsigned int'.
+-
+- * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
+-
+-Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (ELCFILES): New variable.
+- (DISTFILES): Add elisp-comp.
+- Add implicit rule for .el -> .elc compilation.
+- (install-data): install $ELCFILES
+- (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
+-
+- * elisp-comp: Initial revision
+-
+-Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in:
+- cat-id-tbl.c is now found in po/. This enables us to use an identical
+- intl/ directory in all packages.
+-
+- * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
+-
+- * textdomain.c: fix typo (#if def -> #if defined)
+-
+-Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in (stamp-cat-id): use top_srcdir to address source files
+- (DISTFILES,distclean): move tupdate.perl to src/
+-
+- * po-to-tbl.sed.in:
+- add additional jump to clear change flag to recognize multiline strings
+-
+-Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware>
+-
+- * textdomain.c: Protect inclusion of stdlib.h and string.h.
+-
+- * loadmsgcat.c: Protect inclusion of stdlib.h.
+-
+- * libgettext.h: Protect inclusion of locale.h.
+- Allow use in C++ programs.
+- Define NULL is not happened already.
+-
+- * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
+- po-to-tbl.sed.
+- (distclean): remove po-to-tbl.sed and tupdate.perl.
+-
+- * tupdate.perl.in: Substitute Perl path even in exec line.
+- Don't include entries without translation from old .po file.
+-
+-Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware>
+-
+- * tupdate.perl.in: use "Updated: " in msgid "".
+-
+- * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
+- Define getenv if !__STDC__.
+-
+- * bindtextdom.c: Protect stdlib.h and string.h inclusion.
+- Define free if !__STDC__.
+-
+- * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
+- Define free if !__STDC__.
+-
+- * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
+-
+-Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware>
+-
+- * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
+- Remove unneeded $(srcdir) from Makefile.in dependency.
+-
+- * makelinks: Add copyright and short description.
+-
+- * po-mode.el: Last version for 0.7.
+-
+- * tupdate.perl.in: Fix die message.
+-
+- * dcgettext.c: Protect include of string.h.
+-
+- * gettext.c: Protect include of stdlib.h and further tries to get NULL.
+-
+- * finddomain.c: Some corrections in includes.
+-
+- * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
+-
+- * po-to-tbl.sed: Adopt for new .po file format.
+-
+- * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
+-
+-Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware>
+-
+- * tupdate.perl.in: Complete rewrite for new .po file format.
+-
+-Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware>
+-
+- * First official release. This directory contains all the code
+- needed to internationalize own packages. It provides functions
+- which allow to use the X/Open catgets function with an interface
+- like the Uniforum gettext function. For system which does not
+- have neither of those a complete implementation is provided.
+diff -uprN clean/lrzsz-0.12.20/intl/dcgettext.c lrzsz-0.12.20/intl/dcgettext.c
+--- clean/lrzsz-0.12.20/intl/dcgettext.c 1998-04-26 14:22:36.000000000 +0100
++++ lrzsz-0.12.20/intl/dcgettext.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,593 +0,0 @@
+-/* Implementation of the dcgettext(3) function
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#include <sys/types.h>
+-
+-#ifdef __GNUC__
+-# define alloca __builtin_alloca
+-# define HAVE_ALLOCA 1
+-#else
+-# if defined HAVE_ALLOCA_H || defined _LIBC
+-# include <alloca.h>
+-# else
+-# ifdef _AIX
+- #pragma alloca
+-# else
+-# ifndef alloca
+-char *alloca ();
+-# endif
+-# endif
+-# endif
+-#endif
+-
+-#include <errno.h>
+-#ifndef errno
+-extern int errno;
+-#endif
+-#ifndef __set_errno
+-# define __set_errno(val) errno = (val)
+-#endif
+-
+-#if defined STDC_HEADERS || defined _LIBC
+-# include <stdlib.h>
+-#else
+-char *getenv ();
+-# ifdef HAVE_MALLOC_H
+-# include <malloc.h>
+-# else
+-void free ();
+-# endif
+-#endif
+-
+-#if defined HAVE_STRING_H || defined _LIBC
+-# ifndef _GNU_SOURCE
+-# define _GNU_SOURCE 1
+-# endif
+-# include <string.h>
+-#else
+-# include <strings.h>
+-#endif
+-#if !HAVE_STRCHR && !defined _LIBC
+-# ifndef strchr
+-# define strchr index
+-# endif
+-#endif
+-
+-#if defined HAVE_UNISTD_H || defined _LIBC
+-# include <unistd.h>
+-#endif
+-
+-#include "gettext.h"
+-#include "gettextP.h"
+-#ifdef _LIBC
+-# include <libintl.h>
+-#else
+-# include "libgettext.h"
+-#endif
+-#include "hash-string.h"
+-
+-/* @@ end of prolog @@ */
+-
+-#ifdef _LIBC
+-/* Rename the non ANSI C functions. This is required by the standard
+- because some ANSI C functions will require linking with this object
+- file and the name space must not be polluted. */
+-# define getcwd __getcwd
+-# define stpcpy __stpcpy
+-#else
+-# if !defined HAVE_GETCWD
+-char *getwd ();
+-# define getcwd(buf, max) getwd (buf)
+-# else
+-char *getcwd ();
+-# endif
+-# ifndef HAVE_STPCPY
+-static char *stpcpy PARAMS ((char *dest, const char *src));
+-# endif
+-#endif
+-
+-/* Amount to increase buffer size by in each try. */
+-#define PATH_INCR 32
+-
+-/* The following is from pathmax.h. */
+-/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
+- PATH_MAX but might cause redefinition warnings when sys/param.h is
+- later included (as on MORE/BSD 4.3). */
+-#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
+-# include <limits.h>
+-#endif
+-
+-#ifndef _POSIX_PATH_MAX
+-# define _POSIX_PATH_MAX 255
+-#endif
+-
+-#if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
+-# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
+-#endif
+-
+-/* Don't include sys/param.h if it already has been. */
+-#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
+-# include <sys/param.h>
+-#endif
+-
+-#if !defined(PATH_MAX) && defined(MAXPATHLEN)
+-# define PATH_MAX MAXPATHLEN
+-#endif
+-
+-#ifndef PATH_MAX
+-# define PATH_MAX _POSIX_PATH_MAX
+-#endif
+-
+-/* XPG3 defines the result of `setlocale (category, NULL)' as:
+- ``Directs `setlocale()' to query `category' and return the current
+- setting of `local'.''
+- However it does not specify the exact format. And even worse: POSIX
+- defines this not at all. So we can use this feature only on selected
+- system (e.g. those using GNU C Library). */
+-#ifdef _LIBC
+-# define HAVE_LOCALE_NULL
+-#endif
+-
+-/* Name of the default domain used for gettext(3) prior any call to
+- textdomain(3). The default value for this is "messages". */
+-const char _nl_default_default_domain[] = "messages";
+-
+-/* Value used as the default domain for gettext(3). */
+-const char *_nl_current_default_domain = _nl_default_default_domain;
+-
+-/* Contains the default location of the message catalogs. */
+-const char _nl_default_dirname[] = GNULOCALEDIR;
+-
+-/* List with bindings of specific domains created by bindtextdomain()
+- calls. */
+-struct binding *_nl_domain_bindings;
+-
+-/* Prototypes for local functions. */
+-static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
+- const char *msgid));
+-static const char *category_to_name PARAMS ((int category));
+-static const char *guess_category_value PARAMS ((int category,
+- const char *categoryname));
+-
+-
+-/* For those loosing systems which don't have `alloca' we have to add
+- some additional code emulating it. */
+-#ifdef HAVE_ALLOCA
+-/* Nothing has to be done. */
+-# define ADD_BLOCK(list, address) /* nothing */
+-# define FREE_BLOCKS(list) /* nothing */
+-#else
+-struct block_list
+-{
+- void *address;
+- struct block_list *next;
+-};
+-# define ADD_BLOCK(list, addr) \
+- do { \
+- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+- /* If we cannot get a free block we cannot add the new element to \
+- the list. */ \
+- if (newp != NULL) { \
+- newp->address = (addr); \
+- newp->next = (list); \
+- (list) = newp; \
+- } \
+- } while (0)
+-# define FREE_BLOCKS(list) \
+- do { \
+- while (list != NULL) { \
+- struct block_list *old = list; \
+- list = list->next; \
+- free (old); \
+- } \
+- } while (0)
+-# undef alloca
+-# define alloca(size) (malloc (size))
+-#endif /* have alloca */
+-
+-
+-/* Names for the libintl functions are a problem. They must not clash
+- with existing names and they should follow ANSI C. But this source
+- code is also used in GNU C Library where the names have a __
+- prefix. So we have to make a difference here. */
+-#ifdef _LIBC
+-# define DCGETTEXT __dcgettext
+-#else
+-# define DCGETTEXT dcgettext__
+-#endif
+-
+-/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+- locale. */
+-char *
+-DCGETTEXT (domainname, msgid, category)
+- const char *domainname;
+- const char *msgid;
+- int category;
+-{
+-#ifndef HAVE_ALLOCA
+- struct block_list *block_list = NULL;
+-#endif
+- struct loaded_l10nfile *domain;
+- struct binding *binding;
+- const char *categoryname;
+- const char *categoryvalue;
+- char *dirname, *xdomainname;
+- char *single_locale;
+- char *retval;
+- int saved_errno = errno;
+-
+- /* If no real MSGID is given return NULL. */
+- if (msgid == NULL)
+- return NULL;
+-
+- /* If DOMAINNAME is NULL, we are interested in the default domain. If
+- CATEGORY is not LC_MESSAGES this might not make much sense but the
+- defintion left this undefined. */
+- if (domainname == NULL)
+- domainname = _nl_current_default_domain;
+-
+- /* First find matching binding. */
+- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+- {
+- int compare = strcmp (domainname, binding->domainname);
+- if (compare == 0)
+- /* We found it! */
+- break;
+- if (compare < 0)
+- {
+- /* It is not in the list. */
+- binding = NULL;
+- break;
+- }
+- }
+-
+- if (binding == NULL)
+- dirname = (char *) _nl_default_dirname;
+- else if (binding->dirname[0] == '/')
+- dirname = binding->dirname;
+- else
+- {
+- /* We have a relative path. Make it absolute now. */
+- size_t dirname_len = strlen (binding->dirname) + 1;
+- size_t path_max;
+- char *ret;
+-
+- path_max = (unsigned) PATH_MAX;
+- path_max += 2; /* The getcwd docs say to do this. */
+-
+- dirname = (char *) alloca (path_max + dirname_len);
+- ADD_BLOCK (block_list, dirname);
+-
+- __set_errno (0);
+- while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
+- {
+- path_max += PATH_INCR;
+- dirname = (char *) alloca (path_max + dirname_len);
+- ADD_BLOCK (block_list, dirname);
+- __set_errno (0);
+- }
+-
+- if (ret == NULL)
+- {
+- /* We cannot get the current working directory. Don't signal an
+- error but simply return the default string. */
+- FREE_BLOCKS (block_list);
+- __set_errno (saved_errno);
+- return (char *) msgid;
+- }
+-
+- stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
+- }
+-
+- /* Now determine the symbolic name of CATEGORY and its value. */
+- categoryname = category_to_name (category);
+- categoryvalue = guess_category_value (category, categoryname);
+-
+- xdomainname = (char *) alloca (strlen (categoryname)
+- + strlen (domainname) + 5);
+- ADD_BLOCK (block_list, xdomainname);
+-
+- stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
+- domainname),
+- ".mo");
+-
+- /* Creating working area. */
+- single_locale = (char *) alloca (strlen (categoryvalue) + 1);
+- ADD_BLOCK (block_list, single_locale);
+-
+-
+- /* Search for the given string. This is a loop because we perhaps
+- got an ordered list of languages to consider for th translation. */
+- while (1)
+- {
+- /* Make CATEGORYVALUE point to the next element of the list. */
+- while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
+- ++categoryvalue;
+- if (categoryvalue[0] == '\0')
+- {
+- /* The whole contents of CATEGORYVALUE has been searched but
+- no valid entry has been found. We solve this situation
+- by implicitly appending a "C" entry, i.e. no translation
+- will take place. */
+- single_locale[0] = 'C';
+- single_locale[1] = '\0';
+- }
+- else
+- {
+- char *cp = single_locale;
+- while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
+- *cp++ = *categoryvalue++;
+- *cp = '\0';
+- }
+-
+- /* If the current locale value is C (or POSIX) we don't load a
+- domain. Return the MSGID. */
+- if (strcmp (single_locale, "C") == 0
+- || strcmp (single_locale, "POSIX") == 0)
+- {
+- FREE_BLOCKS (block_list);
+- __set_errno (saved_errno);
+- return (char *) msgid;
+- }
+-
+-
+- /* Find structure describing the message catalog matching the
+- DOMAINNAME and CATEGORY. */
+- domain = _nl_find_domain (dirname, single_locale, xdomainname);
+-
+- if (domain != NULL)
+- {
+- retval = find_msg (domain, msgid);
+-
+- if (retval == NULL)
+- {
+- int cnt;
+-
+- for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
+- {
+- retval = find_msg (domain->successor[cnt], msgid);
+-
+- if (retval != NULL)
+- break;
+- }
+- }
+-
+- if (retval != NULL)
+- {
+- FREE_BLOCKS (block_list);
+- __set_errno (saved_errno);
+- return retval;
+- }
+- }
+- }
+- /* NOTREACHED */
+-}
+-
+-#ifdef _LIBC
+-/* Alias for function name in GNU C Library. */
+-weak_alias (__dcgettext, dcgettext);
+-#endif
+-
+-
+-static char *
+-find_msg (domain_file, msgid)
+- struct loaded_l10nfile *domain_file;
+- const char *msgid;
+-{
+- size_t top, act, bottom;
+- struct loaded_domain *domain;
+-
+- if (domain_file->decided == 0)
+- _nl_load_domain (domain_file);
+-
+- if (domain_file->data == NULL)
+- return NULL;
+-
+- domain = (struct loaded_domain *) domain_file->data;
+-
+- /* Locate the MSGID and its translation. */
+- if (domain->hash_size > 2 && domain->hash_tab != NULL)
+- {
+- /* Use the hashing table. */
+- nls_uint32 len = strlen (msgid);
+- nls_uint32 hash_val = hash_string (msgid);
+- nls_uint32 idx = hash_val % domain->hash_size;
+- nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
+- nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
+-
+- if (nstr == 0)
+- /* Hash table entry is empty. */
+- return NULL;
+-
+- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
+- && strcmp (msgid,
+- domain->data + W (domain->must_swap,
+- domain->orig_tab[nstr - 1].offset)) == 0)
+- return (char *) domain->data + W (domain->must_swap,
+- domain->trans_tab[nstr - 1].offset);
+-
+- while (1)
+- {
+- if (idx >= domain->hash_size - incr)
+- idx -= domain->hash_size - incr;
+- else
+- idx += incr;
+-
+- nstr = W (domain->must_swap, domain->hash_tab[idx]);
+- if (nstr == 0)
+- /* Hash table entry is empty. */
+- return NULL;
+-
+- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
+- && strcmp (msgid,
+- domain->data + W (domain->must_swap,
+- domain->orig_tab[nstr - 1].offset))
+- == 0)
+- return (char *) domain->data
+- + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
+- }
+- /* NOTREACHED */
+- }
+-
+- /* Now we try the default method: binary search in the sorted
+- array of messages. */
+- bottom = 0;
+- top = domain->nstrings;
+- while (bottom < top)
+- {
+- int cmp_val;
+-
+- act = (bottom + top) / 2;
+- cmp_val = strcmp (msgid, domain->data
+- + W (domain->must_swap,
+- domain->orig_tab[act].offset));
+- if (cmp_val < 0)
+- top = act;
+- else if (cmp_val > 0)
+- bottom = act + 1;
+- else
+- break;
+- }
+-
+- /* If an translation is found return this. */
+- return bottom >= top ? NULL : (char *) domain->data
+- + W (domain->must_swap,
+- domain->trans_tab[act].offset);
+-}
+-
+-
+-/* Return string representation of locale CATEGORY. */
+-static const char *
+-category_to_name (category)
+- int category;
+-{
+- const char *retval;
+-
+- switch (category)
+- {
+-#ifdef LC_COLLATE
+- case LC_COLLATE:
+- retval = "LC_COLLATE";
+- break;
+-#endif
+-#ifdef LC_CTYPE
+- case LC_CTYPE:
+- retval = "LC_CTYPE";
+- break;
+-#endif
+-#ifdef LC_MONETARY
+- case LC_MONETARY:
+- retval = "LC_MONETARY";
+- break;
+-#endif
+-#ifdef LC_NUMERIC
+- case LC_NUMERIC:
+- retval = "LC_NUMERIC";
+- break;
+-#endif
+-#ifdef LC_TIME
+- case LC_TIME:
+- retval = "LC_TIME";
+- break;
+-#endif
+-#ifdef LC_MESSAGES
+- case LC_MESSAGES:
+- retval = "LC_MESSAGES";
+- break;
+-#endif
+-#ifdef LC_RESPONSE
+- case LC_RESPONSE:
+- retval = "LC_RESPONSE";
+- break;
+-#endif
+-#ifdef LC_ALL
+- case LC_ALL:
+- /* This might not make sense but is perhaps better than any other
+- value. */
+- retval = "LC_ALL";
+- break;
+-#endif
+- default:
+- /* If you have a better idea for a default value let me know. */
+- retval = "LC_XXX";
+- }
+-
+- return retval;
+-}
+-
+-/* Guess value of current locale from value of the environment variables. */
+-static const char *
+-guess_category_value (category, categoryname)
+- int category;
+- const char *categoryname;
+-{
+- const char *retval;
+-
+- /* The highest priority value is the `LANGUAGE' environment
+- variable. This is a GNU extension. */
+- retval = getenv ("LANGUAGE");
+- if (retval != NULL && retval[0] != '\0')
+- return retval;
+-
+- /* `LANGUAGE' is not set. So we have to proceed with the POSIX
+- methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some
+- systems this can be done by the `setlocale' function itself. */
+-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+- return setlocale (category, NULL);
+-#else
+- /* Setting of LC_ALL overwrites all other. */
+- retval = getenv ("LC_ALL");
+- if (retval != NULL && retval[0] != '\0')
+- return retval;
+-
+- /* Next comes the name of the desired category. */
+- retval = getenv (categoryname);
+- if (retval != NULL && retval[0] != '\0')
+- return retval;
+-
+- /* Last possibility is the LANG environment variable. */
+- retval = getenv ("LANG");
+- if (retval != NULL && retval[0] != '\0')
+- return retval;
+-
+- /* We use C as the default domain. POSIX says this is implementation
+- defined. */
+- return "C";
+-#endif
+-}
+-
+-/* @@ begin of epilog @@ */
+-
+-/* We don't want libintl.a to depend on any other library. So we
+- avoid the non-standard function stpcpy. In GNU C Library this
+- function is available, though. Also allow the symbol HAVE_STPCPY
+- to be defined. */
+-#if !_LIBC && !HAVE_STPCPY
+-static char *
+-stpcpy (dest, src)
+- char *dest;
+- const char *src;
+-{
+- while ((*dest++ = *src++) != '\0')
+- /* Do nothing. */ ;
+- return dest - 1;
+-}
+-#endif
+diff -uprN clean/lrzsz-0.12.20/intl/dgettext.c lrzsz-0.12.20/intl/dgettext.c
+--- clean/lrzsz-0.12.20/intl/dgettext.c 1998-04-26 14:20:52.000000000 +0100
++++ lrzsz-0.12.20/intl/dgettext.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,59 +0,0 @@
+-/* dgettext.c -- implementation of the dgettext(3) function
+- Copyright (C) 1995 Software Foundation, Inc.
+-
+-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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#if defined HAVE_LOCALE_H || defined _LIBC
+-# include <locale.h>
+-#endif
+-
+-#ifdef _LIBC
+-# include <libintl.h>
+-#else
+-# include "libgettext.h"
+-#endif
+-
+-/* @@ end of prolog @@ */
+-
+-/* Names for the libintl functions are a problem. They must not clash
+- with existing names and they should follow ANSI C. But this source
+- code is also used in GNU C Library where the names have a __
+- prefix. So we have to make a difference here. */
+-#ifdef _LIBC
+-# define DGETTEXT __dgettext
+-# define DCGETTEXT __dcgettext
+-#else
+-# define DGETTEXT dgettext__
+-# define DCGETTEXT dcgettext__
+-#endif
+-
+-/* Look up MSGID in the DOMAINNAME message catalog of the current
+- LC_MESSAGES locale. */
+-char *
+-DGETTEXT (domainname, msgid)
+- const char *domainname;
+- const char *msgid;
+-{
+- return DCGETTEXT (domainname, msgid, LC_MESSAGES);
+-}
+-
+-#ifdef _LIBC
+-/* Alias for function name in GNU C Library. */
+-weak_alias (__dgettext, dgettext);
+-#endif
+diff -uprN clean/lrzsz-0.12.20/intl/explodename.c lrzsz-0.12.20/intl/explodename.c
+--- clean/lrzsz-0.12.20/intl/explodename.c 1998-04-26 14:22:37.000000000 +0100
++++ lrzsz-0.12.20/intl/explodename.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,181 +0,0 @@
+-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#include <stdlib.h>
+-#include <string.h>
+-#include <sys/types.h>
+-
+-#include "loadinfo.h"
+-
+-/* On some strange systems still no definition of NULL is found. Sigh! */
+-#ifndef NULL
+-# if defined __STDC__ && __STDC__
+-# define NULL ((void *) 0)
+-# else
+-# define NULL 0
+-# endif
+-#endif
+-
+-/* @@ end of prolog @@ */
+-
+-int
+-_nl_explode_name (name, language, modifier, territory, codeset,
+- normalized_codeset, special, sponsor, revision)
+- char *name;
+- const char **language;
+- const char **modifier;
+- const char **territory;
+- const char **codeset;
+- const char **normalized_codeset;
+- const char **special;
+- const char **sponsor;
+- const char **revision;
+-{
+- enum { undecided, xpg, cen } syntax;
+- char *cp;
+- int mask;
+-
+- *modifier = NULL;
+- *territory = NULL;
+- *codeset = NULL;
+- *normalized_codeset = NULL;
+- *special = NULL;
+- *sponsor = NULL;
+- *revision = NULL;
+-
+- /* Now we determine the single parts of the locale name. First
+- look for the language. Termination symbols are `_' and `@' if
+- we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+- mask = 0;
+- syntax = undecided;
+- *language = cp = name;
+- while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@'
+- && cp[0] != '+' && cp[0] != ',')
+- ++cp;
+-
+- if (*language == cp)
+- /* This does not make sense: language has to be specified. Use
+- this entry as it is without exploding. Perhaps it is an alias. */
+- cp = strchr (*language, '\0');
+- else if (cp[0] == '_')
+- {
+- /* Next is the territory. */
+- cp[0] = '\0';
+- *territory = ++cp;
+-
+- while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'
+- && cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
+- ++cp;
+-
+- mask |= TERRITORY;
+-
+- if (cp[0] == '.')
+- {
+- /* Next is the codeset. */
+- syntax = xpg;
+- cp[0] = '\0';
+- *codeset = ++cp;
+-
+- while (cp[0] != '\0' && cp[0] != '@')
+- ++cp;
+-
+- mask |= XPG_CODESET;
+-
+- if (*codeset != cp && (*codeset)[0] != '\0')
+- {
+- *normalized_codeset = _nl_normalize_codeset (*codeset,
+- cp - *codeset);
+- if (strcmp (*codeset, *normalized_codeset) == 0)
+- free ((char *) *normalized_codeset);
+- else
+- mask |= XPG_NORM_CODESET;
+- }
+- }
+- }
+-
+- if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))
+- {
+- /* Next is the modifier. */
+- syntax = cp[0] == '@' ? xpg : cen;
+- cp[0] = '\0';
+- *modifier = ++cp;
+-
+- while (syntax == cen && cp[0] != '\0' && cp[0] != '+'
+- && cp[0] != ',' && cp[0] != '_')
+- ++cp;
+-
+- mask |= XPG_MODIFIER | CEN_AUDIENCE;
+- }
+-
+- if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
+- {
+- syntax = cen;
+-
+- if (cp[0] == '+')
+- {
+- /* Next is special application (CEN syntax). */
+- cp[0] = '\0';
+- *special = ++cp;
+-
+- while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
+- ++cp;
+-
+- mask |= CEN_SPECIAL;
+- }
+-
+- if (cp[0] == ',')
+- {
+- /* Next is sponsor (CEN syntax). */
+- cp[0] = '\0';
+- *sponsor = ++cp;
+-
+- while (cp[0] != '\0' && cp[0] != '_')
+- ++cp;
+-
+- mask |= CEN_SPONSOR;
+- }
+-
+- if (cp[0] == '_')
+- {
+- /* Next is revision (CEN syntax). */
+- cp[0] = '\0';
+- *revision = ++cp;
+-
+- mask |= CEN_REVISION;
+- }
+- }
+-
+- /* For CEN syntax values it might be important to have the
+- separator character in the file name, not for XPG syntax. */
+- if (syntax == xpg)
+- {
+- if (*territory != NULL && (*territory)[0] == '\0')
+- mask &= ~TERRITORY;
+-
+- if (*codeset != NULL && (*codeset)[0] == '\0')
+- mask &= ~XPG_CODESET;
+-
+- if (*modifier != NULL && (*modifier)[0] == '\0')
+- mask &= ~XPG_MODIFIER;
+- }
+-
+- return mask;
+-}
+diff -uprN clean/lrzsz-0.12.20/intl/finddomain.c lrzsz-0.12.20/intl/finddomain.c
+--- clean/lrzsz-0.12.20/intl/finddomain.c 1998-04-26 14:22:36.000000000 +0100
++++ lrzsz-0.12.20/intl/finddomain.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,189 +0,0 @@
+-/* Handle list of needed message catalogs
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#include <ctype.h>
+-#include <errno.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-
+-#if defined STDC_HEADERS || defined _LIBC
+-# include <stdlib.h>
+-#else
+-# ifdef HAVE_MALLOC_H
+-# include <malloc.h>
+-# else
+-void free ();
+-# endif
+-#endif
+-
+-#if defined HAVE_STRING_H || defined _LIBC
+-# include <string.h>
+-#else
+-# include <strings.h>
+-# ifndef memcpy
+-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+-# endif
+-#endif
+-#if !HAVE_STRCHR && !defined _LIBC
+-# ifndef strchr
+-# define strchr index
+-# endif
+-#endif
+-
+-#if defined HAVE_UNISTD_H || defined _LIBC
+-# include <unistd.h>
+-#endif
+-
+-#include "gettext.h"
+-#include "gettextP.h"
+-#ifdef _LIBC
+-# include <libintl.h>
+-#else
+-# include "libgettext.h"
+-#endif
+-
+-/* @@ end of prolog @@ */
+-/* List of already loaded domains. */
+-static struct loaded_l10nfile *_nl_loaded_domains;
+-
+-
+-/* Return a data structure describing the message catalog described by
+- the DOMAINNAME and CATEGORY parameters with respect to the currently
+- established bindings. */
+-struct loaded_l10nfile *
+-_nl_find_domain (dirname, locale, domainname)
+- const char *dirname;
+- char *locale;
+- const char *domainname;
+-{
+- struct loaded_l10nfile *retval;
+- const char *language;
+- const char *modifier;
+- const char *territory;
+- const char *codeset;
+- const char *normalized_codeset;
+- const char *special;
+- const char *sponsor;
+- const char *revision;
+- const char *alias_value;
+- int mask;
+-
+- /* LOCALE can consist of up to four recognized parts for the XPG syntax:
+-
+- language[_territory[.codeset]][@modifier]
+-
+- and six parts for the CEN syntax:
+-
+- language[_territory][+audience][+special][,[sponsor][_revision]]
+-
+- Beside the first all of them are allowed to be missing. If the
+- full specified locale is not found, the less specific one are
+- looked for. The various part will be stripped of according to
+- the following order:
+- (1) revision
+- (2) sponsor
+- (3) special
+- (4) codeset
+- (5) normalized codeset
+- (6) territory
+- (7) audience/modifier
+- */
+-
+- /* If we have already tested for this locale entry there has to
+- be one data set in the list of loaded domains. */
+- retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+- strlen (dirname) + 1, 0, locale, NULL, NULL,
+- NULL, NULL, NULL, NULL, NULL, domainname, 0);
+- if (retval != NULL)
+- {
+- /* We know something about this locale. */
+- int cnt;
+-
+- if (retval->decided == 0)
+- _nl_load_domain (retval);
+-
+- if (retval->data != NULL)
+- return retval;
+-
+- for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+- {
+- if (retval->successor[cnt]->decided == 0)
+- _nl_load_domain (retval->successor[cnt]);
+-
+- if (retval->successor[cnt]->data != NULL)
+- break;
+- }
+- return cnt >= 0 ? retval : NULL;
+- /* NOTREACHED */
+- }
+-
+- /* See whether the locale value is an alias. If yes its value
+- *overwrites* the alias name. No test for the original value is
+- done. */
+- alias_value = _nl_expand_alias (locale);
+- if (alias_value != NULL)
+- {
+- size_t len = strlen (alias_value) + 1;
+- locale = (char *) malloc (len);
+- if (locale == NULL)
+- return NULL;
+-
+- memcpy (locale, alias_value, len);
+- }
+-
+- /* Now we determine the single parts of the locale name. First
+- look for the language. Termination symbols are `_' and `@' if
+- we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+- mask = _nl_explode_name (locale, &language, &modifier, &territory,
+- &codeset, &normalized_codeset, &special,
+- &sponsor, &revision);
+-
+- /* Create all possible locale entries which might be interested in
+- generalization. */
+- retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+- strlen (dirname) + 1, mask, language, territory,
+- codeset, normalized_codeset, modifier, special,
+- sponsor, revision, domainname, 1);
+- if (retval == NULL)
+- /* This means we are out of core. */
+- return NULL;
+-
+- if (retval->decided == 0)
+- _nl_load_domain (retval);
+- if (retval->data == NULL)
+- {
+- int cnt;
+- for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+- {
+- if (retval->successor[cnt]->decided == 0)
+- _nl_load_domain (retval->successor[cnt]);
+- if (retval->successor[cnt]->data != NULL)
+- break;
+- }
+- }
+-
+- /* The room for an alias was dynamically allocated. Free it now. */
+- if (alias_value != NULL)
+- free (locale);
+-
+- return retval;
+-}
+diff -uprN clean/lrzsz-0.12.20/intl/gettext.c lrzsz-0.12.20/intl/gettext.c
+--- clean/lrzsz-0.12.20/intl/gettext.c 1998-04-26 14:22:36.000000000 +0100
++++ lrzsz-0.12.20/intl/gettext.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,70 +0,0 @@
+-/* Implementation of gettext(3) function
+- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#ifdef _LIBC
+-# define __need_NULL
+-# include <stddef.h>
+-#else
+-# ifdef STDC_HEADERS
+-# include <stdlib.h> /* Just for NULL. */
+-# else
+-# ifdef HAVE_STRING_H
+-# include <string.h>
+-# else
+-# define NULL ((void *) 0)
+-# endif
+-# endif
+-#endif
+-
+-#ifdef _LIBC
+-# include <libintl.h>
+-#else
+-# include "libgettext.h"
+-#endif
+-
+-/* @@ end of prolog @@ */
+-
+-/* Names for the libintl functions are a problem. They must not clash
+- with existing names and they should follow ANSI C. But this source
+- code is also used in GNU C Library where the names have a __
+- prefix. So we have to make a difference here. */
+-#ifdef _LIBC
+-# define GETTEXT __gettext
+-# define DGETTEXT __dgettext
+-#else
+-# define GETTEXT gettext__
+-# define DGETTEXT dgettext__
+-#endif
+-
+-/* Look up MSGID in the current default message catalog for the current
+- LC_MESSAGES locale. If not found, returns MSGID itself (the default
+- text). */
+-char *
+-GETTEXT (msgid)
+- const char *msgid;
+-{
+- return DGETTEXT (NULL, msgid);
+-}
+-
+-#ifdef _LIBC
+-/* Alias for function name in GNU C Library. */
+-weak_alias (__gettext, gettext);
+-#endif
+diff -uprN clean/lrzsz-0.12.20/intl/gettext.h lrzsz-0.12.20/intl/gettext.h
+--- clean/lrzsz-0.12.20/intl/gettext.h 1998-04-26 14:22:35.000000000 +0100
++++ lrzsz-0.12.20/intl/gettext.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,105 +0,0 @@
+-/* Internal header for GNU gettext internationalization functions
+- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+-
+- 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, 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 Library General Public
+- License along with the GNU C Library; see the file COPYING.LIB. If not,
+- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
+-
+-#ifndef _GETTEXT_H
+-#define _GETTEXT_H 1
+-
+-#include <stdio.h>
+-
+-#if HAVE_LIMITS_H || _LIBC
+-# include <limits.h>
+-#endif
+-
+-/* @@ end of prolog @@ */
+-
+-/* The magic number of the GNU message catalog format. */
+-#define _MAGIC 0x950412de
+-#define _MAGIC_SWAPPED 0xde120495
+-
+-/* Revision number of the currently used .mo (binary) file format. */
+-#define MO_REVISION_NUMBER 0
+-
+-/* The following contortions are an attempt to use the C preprocessor
+- to determine an unsigned integral type that is 32 bits wide. An
+- alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+- doing that would require that the configure script compile and *run*
+- the resulting executable. Locally running cross-compiled executables
+- is usually not possible. */
+-
+-#if __STDC__
+-# define UINT_MAX_32_BITS 4294967295U
+-#else
+-# define UINT_MAX_32_BITS 0xFFFFFFFF
+-#endif
+-
+-/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+- This should be valid for all systems GNU cares about because
+- that doesn't include 16-bit systems, and only modern systems
+- (that certainly have <limits.h>) have 64+-bit integral types. */
+-
+-#ifndef UINT_MAX
+-# define UINT_MAX UINT_MAX_32_BITS
+-#endif
+-
+-#if UINT_MAX == UINT_MAX_32_BITS
+-typedef unsigned nls_uint32;
+-#else
+-# if USHRT_MAX == UINT_MAX_32_BITS
+-typedef unsigned short nls_uint32;
+-# else
+-# if ULONG_MAX == UINT_MAX_32_BITS
+-typedef unsigned long nls_uint32;
+-# else
+- /* The following line is intended to throw an error. Using #error is
+- not portable enough. */
+- "Cannot determine unsigned 32-bit data type."
+-# endif
+-# endif
+-#endif
+-
+-
+-/* Header for binary .mo file format. */
+-struct mo_file_header
+-{
+- /* The magic number. */
+- nls_uint32 magic;
+- /* The revision number of the file format. */
+- nls_uint32 revision;
+- /* The number of strings pairs. */
+- nls_uint32 nstrings;
+- /* Offset of table with start offsets of original strings. */
+- nls_uint32 orig_tab_offset;
+- /* Offset of table with start offsets of translation strings. */
+- nls_uint32 trans_tab_offset;
+- /* Size of hashing table. */
+- nls_uint32 hash_tab_size;
+- /* Offset of first hashing entry. */
+- nls_uint32 hash_tab_offset;
+-};
+-
+-struct string_desc
+-{
+- /* Length of addressed string. */
+- nls_uint32 length;
+- /* Offset of string in file. */
+- nls_uint32 offset;
+-};
+-
+-/* @@ begin of epilog @@ */
+-
+-#endif /* gettext.h */
+diff -uprN clean/lrzsz-0.12.20/intl/gettextP.h lrzsz-0.12.20/intl/gettextP.h
+--- clean/lrzsz-0.12.20/intl/gettextP.h 1998-04-26 14:22:35.000000000 +0100
++++ lrzsz-0.12.20/intl/gettextP.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,73 +0,0 @@
+-/* Header describing internals of gettext library
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+-
+- 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, 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 _GETTEXTP_H
+-#define _GETTEXTP_H
+-
+-#include "loadinfo.h"
+-
+-/* @@ end of prolog @@ */
+-
+-#ifndef PARAMS
+-# if __STDC__
+-# define PARAMS(args) args
+-# else
+-# define PARAMS(args) ()
+-# endif
+-#endif
+-
+-#ifndef W
+-# define W(flag, data) ((flag) ? SWAP (data) : (data))
+-#endif
+-
+-
+-static nls_uint32 SWAP PARAMS ((nls_uint32 i));
+-
+-static inline nls_uint32
+-SWAP (i)
+- nls_uint32 i;
+-{
+- return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
+-}
+-
+-
+-struct loaded_domain
+-{
+- const char *data;
+- int must_swap;
+- nls_uint32 nstrings;
+- struct string_desc *orig_tab;
+- struct string_desc *trans_tab;
+- nls_uint32 hash_size;
+- nls_uint32 *hash_tab;
+-};
+-
+-struct binding
+-{
+- struct binding *next;
+- char *domainname;
+- char *dirname;
+-};
+-
+-struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
+- char *__locale,
+- const char *__domainname));
+-void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain));
+-
+-/* @@ begin of epilog @@ */
+-
+-#endif /* gettextP.h */
+diff -uprN clean/lrzsz-0.12.20/intl/hash-string.h lrzsz-0.12.20/intl/hash-string.h
+--- clean/lrzsz-0.12.20/intl/hash-string.h 1998-04-26 14:22:36.000000000 +0100
++++ lrzsz-0.12.20/intl/hash-string.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,63 +0,0 @@
+-/* Implements a string hashing function.
+- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+-
+- 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, 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 Library General Public
+- License along with the GNU C Library; see the file COPYING.LIB. If not,
+- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
+-
+-#ifdef HAVE_VALUES_H
+-# include <values.h>
+-#endif
+-
+-/* @@ end of prolog @@ */
+-
+-#ifndef PARAMS
+-# if __STDC__
+-# define PARAMS(Args) Args
+-# else
+-# define PARAMS(Args) ()
+-# endif
+-#endif
+-
+-/* We assume to have `unsigned long int' value with at least 32 bits. */
+-#define HASHWORDBITS 32
+-
+-
+-/* Defines the so called `hashpjw' function by P.J. Weinberger
+- [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+- 1986, 1987 Bell Telephone Laboratories, Inc.] */
+-static unsigned long hash_string PARAMS ((const char *__str_param));
+-
+-static inline unsigned long
+-hash_string (str_param)
+- const char *str_param;
+-{
+- unsigned long int hval, g;
+- const char *str = str_param;
+-
+- /* Compute the hash value for the given string. */
+- hval = 0;
+- while (*str != '\0')
+- {
+- hval <<= 4;
+- hval += (unsigned long) *str++;
+- g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4));
+- if (g != 0)
+- {
+- hval ^= g >> (HASHWORDBITS - 8);
+- hval ^= g;
+- }
+- }
+- return hval;
+-}
+diff -uprN clean/lrzsz-0.12.20/intl/intl-compat.c lrzsz-0.12.20/intl/intl-compat.c
+--- clean/lrzsz-0.12.20/intl/intl-compat.c 1998-04-26 14:20:52.000000000 +0100
++++ lrzsz-0.12.20/intl/intl-compat.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,76 +0,0 @@
+-/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
+- Library.
+- Copyright (C) 1995 Software Foundation, Inc.
+-
+-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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#include "libgettext.h"
+-
+-/* @@ end of prolog @@ */
+-
+-
+-#undef gettext
+-#undef dgettext
+-#undef dcgettext
+-#undef textdomain
+-#undef bindtextdomain
+-
+-
+-char *
+-bindtextdomain (domainname, dirname)
+- const char *domainname;
+- const char *dirname;
+-{
+- return bindtextdomain__ (domainname, dirname);
+-}
+-
+-
+-char *
+-dcgettext (domainname, msgid, category)
+- const char *domainname;
+- const char *msgid;
+- int category;
+-{
+- return dcgettext__ (domainname, msgid, category);
+-}
+-
+-
+-char *
+-dgettext (domainname, msgid)
+- const char *domainname;
+- const char *msgid;
+-{
+- return dgettext__ (domainname, msgid);
+-}
+-
+-
+-char *
+-gettext (msgid)
+- const char *msgid;
+-{
+- return gettext__ (msgid);
+-}
+-
+-
+-char *
+-textdomain (domainname)
+- const char *domainname;
+-{
+- return textdomain__ (domainname);
+-}
+diff -uprN clean/lrzsz-0.12.20/intl/l10nflist.c lrzsz-0.12.20/intl/l10nflist.c
+--- clean/lrzsz-0.12.20/intl/l10nflist.c 1998-04-26 14:22:37.000000000 +0100
++++ lrzsz-0.12.20/intl/l10nflist.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,409 +0,0 @@
+-/* Handle list of needed message catalogs
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-
+-#if defined HAVE_STRING_H || defined _LIBC
+-# ifndef _GNU_SOURCE
+-# define _GNU_SOURCE 1
+-# endif
+-# include <string.h>
+-#else
+-# include <strings.h>
+-# ifndef memcpy
+-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+-# endif
+-#endif
+-#if !HAVE_STRCHR && !defined _LIBC
+-# ifndef strchr
+-# define strchr index
+-# endif
+-#endif
+-
+-#if defined _LIBC || defined HAVE_ARGZ_H
+-# include <argz.h>
+-#endif
+-#include <ctype.h>
+-#include <sys/types.h>
+-
+-#if defined STDC_HEADERS || defined _LIBC
+-# include <stdlib.h>
+-#endif
+-
+-#include "loadinfo.h"
+-
+-/* On some strange systems still no definition of NULL is found. Sigh! */
+-#ifndef NULL
+-# if defined __STDC__ && __STDC__
+-# define NULL ((void *) 0)
+-# else
+-# define NULL 0
+-# endif
+-#endif
+-
+-/* @@ end of prolog @@ */
+-
+-#ifdef _LIBC
+-/* Rename the non ANSI C functions. This is required by the standard
+- because some ANSI C functions will require linking with this object
+- file and the name space must not be polluted. */
+-# define stpcpy(dest, src) __stpcpy(dest, src)
+-#else
+-# ifndef HAVE_STPCPY
+-static char *stpcpy PARAMS ((char *dest, const char *src));
+-# endif
+-#endif
+-
+-/* Define function which are usually not available. */
+-
+-#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
+-/* Returns the number of strings in ARGZ. */
+-static size_t argz_count__ PARAMS ((const char *argz, size_t len));
+-
+-static size_t
+-argz_count__ (argz, len)
+- const char *argz;
+- size_t len;
+-{
+- size_t count = 0;
+- while (len > 0)
+- {
+- size_t part_len = strlen (argz);
+- argz += part_len + 1;
+- len -= part_len + 1;
+- count++;
+- }
+- return count;
+-}
+-# undef __argz_count
+-# define __argz_count(argz, len) argz_count__ (argz, len)
+-#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
+-
+-#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
+-/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
+- except the last into the character SEP. */
+-static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
+-
+-static void
+-argz_stringify__ (argz, len, sep)
+- char *argz;
+- size_t len;
+- int sep;
+-{
+- while (len > 0)
+- {
+- size_t part_len = strlen (argz);
+- argz += part_len;
+- len -= part_len + 1;
+- if (len > 0)
+- *argz++ = sep;
+- }
+-}
+-# undef __argz_stringify
+-# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
+-#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
+-
+-#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
+-static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
+- const char *entry));
+-
+-static char *
+-argz_next__ (argz, argz_len, entry)
+- char *argz;
+- size_t argz_len;
+- const char *entry;
+-{
+- if (entry)
+- {
+- if (entry < argz + argz_len)
+- entry = strchr (entry, '\0') + 1;
+-
+- return entry >= argz + argz_len ? NULL : (char *) entry;
+- }
+- else
+- if (argz_len > 0)
+- return argz;
+- else
+- return 0;
+-}
+-# undef __argz_next
+-# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
+-#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
+-
+-
+-/* Return number of bits set in X. */
+-static int pop PARAMS ((int x));
+-
+-static inline int
+-pop (x)
+- int x;
+-{
+- /* We assume that no more than 16 bits are used. */
+- x = ((x & ~0x5555) >> 1) + (x & 0x5555);
+- x = ((x & ~0x3333) >> 2) + (x & 0x3333);
+- x = ((x >> 4) + x) & 0x0f0f;
+- x = ((x >> 8) + x) & 0xff;
+-
+- return x;
+-}
+-
+-
+-struct loaded_l10nfile *
+-_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
+- territory, codeset, normalized_codeset, modifier, special,
+- sponsor, revision, filename, do_allocate)
+- struct loaded_l10nfile **l10nfile_list;
+- const char *dirlist;
+- size_t dirlist_len;
+- int mask;
+- const char *language;
+- const char *territory;
+- const char *codeset;
+- const char *normalized_codeset;
+- const char *modifier;
+- const char *special;
+- const char *sponsor;
+- const char *revision;
+- const char *filename;
+- int do_allocate;
+-{
+- char *abs_filename;
+- struct loaded_l10nfile *last = NULL;
+- struct loaded_l10nfile *retval;
+- char *cp;
+- size_t entries;
+- int cnt;
+-
+- /* Allocate room for the full file name. */
+- abs_filename = (char *) malloc (dirlist_len
+- + strlen (language)
+- + ((mask & TERRITORY) != 0
+- ? strlen (territory) + 1 : 0)
+- + ((mask & XPG_CODESET) != 0
+- ? strlen (codeset) + 1 : 0)
+- + ((mask & XPG_NORM_CODESET) != 0
+- ? strlen (normalized_codeset) + 1 : 0)
+- + (((mask & XPG_MODIFIER) != 0
+- || (mask & CEN_AUDIENCE) != 0)
+- ? strlen (modifier) + 1 : 0)
+- + ((mask & CEN_SPECIAL) != 0
+- ? strlen (special) + 1 : 0)
+- + (((mask & CEN_SPONSOR) != 0
+- || (mask & CEN_REVISION) != 0)
+- ? (1 + ((mask & CEN_SPONSOR) != 0
+- ? strlen (sponsor) + 1 : 0)
+- + ((mask & CEN_REVISION) != 0
+- ? strlen (revision) + 1 : 0)) : 0)
+- + 1 + strlen (filename) + 1);
+-
+- if (abs_filename == NULL)
+- return NULL;
+-
+- retval = NULL;
+- last = NULL;
+-
+- /* Construct file name. */
+- memcpy (abs_filename, dirlist, dirlist_len);
+- __argz_stringify (abs_filename, dirlist_len, ':');
+- cp = abs_filename + (dirlist_len - 1);
+- *cp++ = '/';
+- cp = stpcpy (cp, language);
+-
+- if ((mask & TERRITORY) != 0)
+- {
+- *cp++ = '_';
+- cp = stpcpy (cp, territory);
+- }
+- if ((mask & XPG_CODESET) != 0)
+- {
+- *cp++ = '.';
+- cp = stpcpy (cp, codeset);
+- }
+- if ((mask & XPG_NORM_CODESET) != 0)
+- {
+- *cp++ = '.';
+- cp = stpcpy (cp, normalized_codeset);
+- }
+- if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
+- {
+- /* This component can be part of both syntaces but has different
+- leading characters. For CEN we use `+', else `@'. */
+- *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
+- cp = stpcpy (cp, modifier);
+- }
+- if ((mask & CEN_SPECIAL) != 0)
+- {
+- *cp++ = '+';
+- cp = stpcpy (cp, special);
+- }
+- if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
+- {
+- *cp++ = ',';
+- if ((mask & CEN_SPONSOR) != 0)
+- cp = stpcpy (cp, sponsor);
+- if ((mask & CEN_REVISION) != 0)
+- {
+- *cp++ = '_';
+- cp = stpcpy (cp, revision);
+- }
+- }
+-
+- *cp++ = '/';
+- stpcpy (cp, filename);
+-
+- /* Look in list of already loaded domains whether it is already
+- available. */
+- last = NULL;
+- for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
+- if (retval->filename != NULL)
+- {
+- int compare = strcmp (retval->filename, abs_filename);
+- if (compare == 0)
+- /* We found it! */
+- break;
+- if (compare < 0)
+- {
+- /* It's not in the list. */
+- retval = NULL;
+- break;
+- }
+-
+- last = retval;
+- }
+-
+- if (retval != NULL || do_allocate == 0)
+- {
+- free (abs_filename);
+- return retval;
+- }
+-
+- retval = (struct loaded_l10nfile *)
+- malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
+- * (1 << pop (mask))
+- * sizeof (struct loaded_l10nfile *)));
+- if (retval == NULL)
+- return NULL;
+-
+- retval->filename = abs_filename;
+- retval->decided = (__argz_count (dirlist, dirlist_len) != 1
+- || ((mask & XPG_CODESET) != 0
+- && (mask & XPG_NORM_CODESET) != 0));
+- retval->data = NULL;
+-
+- if (last == NULL)
+- {
+- retval->next = *l10nfile_list;
+- *l10nfile_list = retval;
+- }
+- else
+- {
+- retval->next = last->next;
+- last->next = retval;
+- }
+-
+- entries = 0;
+- /* If the DIRLIST is a real list the RETVAL entry corresponds not to
+- a real file. So we have to use the DIRLIST separation mechanism
+- of the inner loop. */
+- cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
+- for (; cnt >= 0; --cnt)
+- if ((cnt & ~mask) == 0
+- && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
+- && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
+- {
+- /* Iterate over all elements of the DIRLIST. */
+- char *dir = NULL;
+-
+- while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
+- != NULL)
+- retval->successor[entries++]
+- = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
+- language, territory, codeset,
+- normalized_codeset, modifier, special,
+- sponsor, revision, filename, 1);
+- }
+- retval->successor[entries] = NULL;
+-
+- return retval;
+-}
+-
+-/* Normalize codeset name. There is no standard for the codeset
+- names. Normalization allows the user to use any of the common
+- names. */
+-const char *
+-_nl_normalize_codeset (codeset, name_len)
+- const char *codeset;
+- size_t name_len;
+-{
+- int len = 0;
+- int only_digit = 1;
+- char *retval;
+- char *wp;
+- size_t cnt;
+-
+- for (cnt = 0; cnt < name_len; ++cnt)
+- if (isalnum (codeset[cnt]))
+- {
+- ++len;
+-
+- if (isalpha (codeset[cnt]))
+- only_digit = 0;
+- }
+-
+- retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
+-
+- if (retval != NULL)
+- {
+- if (only_digit)
+- wp = stpcpy (retval, "iso");
+- else
+- wp = retval;
+-
+- for (cnt = 0; cnt < name_len; ++cnt)
+- if (isalpha (codeset[cnt]))
+- *wp++ = tolower (codeset[cnt]);
+- else if (isdigit (codeset[cnt]))
+- *wp++ = codeset[cnt];
+-
+- *wp = '\0';
+- }
+-
+- return (const char *) retval;
+-}
+-
+-
+-/* @@ begin of epilog @@ */
+-
+-/* We don't want libintl.a to depend on any other library. So we
+- avoid the non-standard function stpcpy. In GNU C Library this
+- function is available, though. Also allow the symbol HAVE_STPCPY
+- to be defined. */
+-#if !_LIBC && !HAVE_STPCPY
+-static char *
+-stpcpy (dest, src)
+- char *dest;
+- const char *src;
+-{
+- while ((*dest++ = *src++) != '\0')
+- /* Do nothing. */ ;
+- return dest - 1;
+-}
+-#endif
+diff -uprN clean/lrzsz-0.12.20/intl/libgettext.h lrzsz-0.12.20/intl/libgettext.h
+--- clean/lrzsz-0.12.20/intl/libgettext.h 1998-04-26 14:22:36.000000000 +0100
++++ lrzsz-0.12.20/intl/libgettext.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,182 +0,0 @@
+-/* Message catalogs for internationalization.
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+-
+- 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, 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. */
+-
+-/* Because on some systems (e.g. Solaris) we sometimes have to include
+- the systems libintl.h as well as this file we have more complex
+- include protection above. But the systems header might perhaps also
+- define _LIBINTL_H and therefore we have to protect the definition here. */
+-
+-#if !defined (_LIBINTL_H) || !defined (_LIBGETTEXT_H)
+-#if !defined (_LIBINTL_H)
+-# define _LIBINTL_H 1
+-#endif
+-#define _LIBGETTEXT_H 1
+-
+-/* We define an additional symbol to signal that we use the GNU
+- implementation of gettext. */
+-#define __USE_GNU_GETTEXT 1
+-
+-#include <sys/types.h>
+-
+-#if HAVE_LOCALE_H
+-# include <locale.h>
+-#endif
+-
+-
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-/* @@ end of prolog @@ */
+-
+-#ifndef PARAMS
+-# if __STDC__
+-# define PARAMS(args) args
+-# else
+-# define PARAMS(args) ()
+-# endif
+-#endif
+-
+-#ifndef NULL
+-# if !defined __cplusplus || defined __GNUC__
+-# define NULL ((void *) 0)
+-# else
+-# define NULL (0)
+-# endif
+-#endif
+-
+-#if !HAVE_LC_MESSAGES
+-/* This value determines the behaviour of the gettext() and dgettext()
+- function. But some system does not have this defined. Define it
+- to a default value. */
+-# define LC_MESSAGES (-1)
+-#endif
+-
+-
+-/* Declarations for gettext-using-catgets interface. Derived from
+- Jim Meyering's libintl.h. */
+-struct _msg_ent
+-{
+- const char *_msg;
+- int _msg_number;
+-};
+-
+-
+-#if HAVE_CATGETS
+-/* These two variables are defined in the automatically by po-to-tbl.sed
+- generated file `cat-id-tbl.c'. */
+-extern const struct _msg_ent _msg_tbl[];
+-extern int _msg_tbl_length;
+-#endif
+-
+-
+-/* For automatical extraction of messages sometimes no real
+- translation is needed. Instead the string itself is the result. */
+-#define gettext_noop(Str) (Str)
+-
+-/* Look up MSGID in the current default message catalog for the current
+- LC_MESSAGES locale. If not found, returns MSGID itself (the default
+- text). */
+-extern char *gettext PARAMS ((const char *__msgid));
+-extern char *gettext__ PARAMS ((const char *__msgid));
+-
+-/* Look up MSGID in the DOMAINNAME message catalog for the current
+- LC_MESSAGES locale. */
+-extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
+-extern char *dgettext__ PARAMS ((const char *__domainname,
+- const char *__msgid));
+-
+-/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+- locale. */
+-extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
+- int __category));
+-extern char *dcgettext__ PARAMS ((const char *__domainname,
+- const char *__msgid, int __category));
+-
+-
+-/* Set the current default message catalog to DOMAINNAME.
+- If DOMAINNAME is null, return the current default.
+- If DOMAINNAME is "", reset to the default of "messages". */
+-extern char *textdomain PARAMS ((const char *__domainname));
+-extern char *textdomain__ PARAMS ((const char *__domainname));
+-
+-/* Specify that the DOMAINNAME message catalog will be found
+- in DIRNAME rather than in the system locale data base. */
+-extern char *bindtextdomain PARAMS ((const char *__domainname,
+- const char *__dirname));
+-extern char *bindtextdomain__ PARAMS ((const char *__domainname,
+- const char *__dirname));
+-
+-#if ENABLE_NLS
+-
+-/* Solaris 2.3 has the gettext function but dcgettext is missing.
+- So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4
+- has dcgettext. */
+-# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT)
+-
+-# define gettext(Msgid) \
+- dgettext (NULL, Msgid)
+-
+-# define dgettext(Domainname, Msgid) \
+- dcgettext (Domainname, Msgid, LC_MESSAGES)
+-
+-# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
+-/* This global variable is defined in loadmsgcat.c. We need a sign,
+- whether a new catalog was loaded, which can be associated with all
+- translations. */
+-extern int _nl_msg_cat_cntr;
+-
+-# define dcgettext(Domainname, Msgid, Category) \
+- (__extension__ \
+- ({ \
+- char *__result; \
+- if (__builtin_constant_p (Msgid)) \
+- { \
+- static char *__translation__; \
+- static int __catalog_counter__; \
+- if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \
+- { \
+- __translation__ = \
+- dcgettext__ (Domainname, Msgid, Category); \
+- __catalog_counter__ = _nl_msg_cat_cntr; \
+- } \
+- __result = __translation__; \
+- } \
+- else \
+- __result = dcgettext__ (Domainname, Msgid, Category); \
+- __result; \
+- }))
+-# endif
+-# endif
+-
+-#else
+-
+-# define gettext(Msgid) (Msgid)
+-# define dgettext(Domainname, Msgid) (Msgid)
+-# define dcgettext(Domainname, Msgid, Category) (Msgid)
+-# define textdomain(Domainname) while (0) /* nothing */
+-# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
+-
+-#endif
+-
+-/* @@ begin of epilog @@ */
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-
+-#endif
+diff -uprN clean/lrzsz-0.12.20/intl/linux-msg.sed lrzsz-0.12.20/intl/linux-msg.sed
+--- clean/lrzsz-0.12.20/intl/linux-msg.sed 1998-04-26 14:20:52.000000000 +0100
++++ lrzsz-0.12.20/intl/linux-msg.sed 1970-01-01 01:00:00.000000000 +0100
+@@ -1,100 +0,0 @@
+-# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
+-# Copyright (C) 1995 Free Software Foundation, Inc.
+-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+-#
+-# 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, 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.
+-#
+-#
+-# The first directive in the .msg should be the definition of the
+-# message set number. We use always set number 1.
+-#
+-1 {
+- i\
+-$set 1 # Automatically created by po2msg.sed
+- h
+- s/.*/0/
+- x
+-}
+-#
+-# Mitch's old catalog format does not allow comments.
+-#
+-# We copy the original message as a comment into the .msg file.
+-#
+-/^msgid/ {
+- s/msgid[ ]*"//
+-#
+-# This does not work now with the new format.
+-# /"$/! {
+-# s/\\$//
+-# s/$/ ... (more lines following)"/
+-# }
+- x
+-# The following nice solution is by
+-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+- td
+-# Increment a decimal number in pattern space.
+-# First hide trailing `9' digits.
+- :d
+- s/9\(_*\)$/_\1/
+- td
+-# Assure at least one digit is available.
+- s/^\(_*\)$/0\1/
+-# Increment the last digit.
+- s/8\(_*\)$/9\1/
+- s/7\(_*\)$/8\1/
+- s/6\(_*\)$/7\1/
+- s/5\(_*\)$/6\1/
+- s/4\(_*\)$/5\1/
+- s/3\(_*\)$/4\1/
+- s/2\(_*\)$/3\1/
+- s/1\(_*\)$/2\1/
+- s/0\(_*\)$/1\1/
+-# Convert the hidden `9' digits to `0's.
+- s/_/0/g
+- x
+- G
+- s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
+-}
+-#
+-# The .msg file contains, other then the .po file, only the translations
+-# but each given a unique ID. Starting from 1 and incrementing by 1 for
+-# each message we assign them to the messages.
+-# It is important that the .po file used to generate the cat-id-tbl.c file
+-# (with po-to-tbl) is the same as the one used here. (At least the order
+-# of declarations must not be changed.)
+-#
+-/^msgstr/ {
+- s/msgstr[ ]*"\(.*\)"/# \1/
+-# Clear substitution flag.
+- tb
+-# Append the next line.
+- :b
+- N
+-# Look whether second part is continuation line.
+- s/\(.*\n\)"\(.*\)"/\1\2/
+-# Yes, then branch.
+- ta
+- P
+- D
+-# Note that D includes a jump to the start!!
+-# We found a continuation line. But before printing insert '\'.
+- :a
+- s/\(.*\)\(\n.*\)/\1\\\2/
+- P
+-# We cannot use D here.
+- s/.*\n\(.*\)/\1/
+- tb
+-}
+-d
+diff -uprN clean/lrzsz-0.12.20/intl/loadinfo.h lrzsz-0.12.20/intl/loadinfo.h
+--- clean/lrzsz-0.12.20/intl/loadinfo.h 1998-04-26 14:20:52.000000000 +0100
++++ lrzsz-0.12.20/intl/loadinfo.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,58 +0,0 @@
+-#ifndef PARAMS
+-# if __STDC__
+-# define PARAMS(args) args
+-# else
+-# define PARAMS(args) ()
+-# endif
+-#endif
+-
+-/* Encoding of locale name parts. */
+-#define CEN_REVISION 1
+-#define CEN_SPONSOR 2
+-#define CEN_SPECIAL 4
+-#define XPG_NORM_CODESET 8
+-#define XPG_CODESET 16
+-#define TERRITORY 32
+-#define CEN_AUDIENCE 64
+-#define XPG_MODIFIER 128
+-
+-#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
+-#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
+-
+-
+-struct loaded_l10nfile
+-{
+- const char *filename;
+- int decided;
+-
+- const void *data;
+-
+- struct loaded_l10nfile *next;
+- struct loaded_l10nfile *successor[1];
+-};
+-
+-
+-extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
+- size_t name_len));
+-
+-extern struct loaded_l10nfile *
+-_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
+- const char *dirlist, size_t dirlist_len, int mask,
+- const char *language, const char *territory,
+- const char *codeset,
+- const char *normalized_codeset,
+- const char *modifier, const char *special,
+- const char *sponsor, const char *revision,
+- const char *filename, int do_allocate));
+-
+-
+-extern const char *_nl_expand_alias PARAMS ((const char *name));
+-
+-extern int _nl_explode_name PARAMS ((char *name, const char **language,
+- const char **modifier,
+- const char **territory,
+- const char **codeset,
+- const char **normalized_codeset,
+- const char **special,
+- const char **sponsor,
+- const char **revision));
+diff -uprN clean/lrzsz-0.12.20/intl/loadmsgcat.c lrzsz-0.12.20/intl/loadmsgcat.c
+--- clean/lrzsz-0.12.20/intl/loadmsgcat.c 1998-04-26 14:22:37.000000000 +0100
++++ lrzsz-0.12.20/intl/loadmsgcat.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,199 +0,0 @@
+-/* Load needed message catalogs
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#include <fcntl.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-
+-#if defined STDC_HEADERS || defined _LIBC
+-# include <stdlib.h>
+-#endif
+-
+-#if defined HAVE_UNISTD_H || defined _LIBC
+-# include <unistd.h>
+-#endif
+-
+-#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
+-# include <sys/mman.h>
+-#endif
+-
+-#include "gettext.h"
+-#include "gettextP.h"
+-
+-/* @@ end of prolog @@ */
+-
+-#ifdef _LIBC
+-/* Rename the non ISO C functions. This is required by the standard
+- because some ISO C functions will require linking with this object
+- file and the name space must not be polluted. */
+-# define fstat __fstat
+-# define open __open
+-# define close __close
+-# define read __read
+-# define mmap __mmap
+-# define munmap __munmap
+-#endif
+-
+-/* We need a sign, whether a new catalog was loaded, which can be associated
+- with all translations. This is important if the translations are
+- cached by one of GCC's features. */
+-int _nl_msg_cat_cntr = 0;
+-
+-
+-/* Load the message catalogs specified by FILENAME. If it is no valid
+- message catalog do nothing. */
+-void
+-_nl_load_domain (domain_file)
+- struct loaded_l10nfile *domain_file;
+-{
+- int fd;
+- struct stat st;
+- struct mo_file_header *data = (struct mo_file_header *) -1;
+-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+- || defined _LIBC
+- int use_mmap = 0;
+-#endif
+- struct loaded_domain *domain;
+-
+- domain_file->decided = 1;
+- domain_file->data = NULL;
+-
+- /* If the record does not represent a valid locale the FILENAME
+- might be NULL. This can happen when according to the given
+- specification the locale file name is different for XPG and CEN
+- syntax. */
+- if (domain_file->filename == NULL)
+- return;
+-
+- /* Try to open the addressed file. */
+- fd = open (domain_file->filename, O_RDONLY);
+- if (fd == -1)
+- return;
+-
+- /* We must know about the size of the file. */
+- if (fstat (fd, &st) != 0
+- && st.st_size < (off_t) sizeof (struct mo_file_header))
+- {
+- /* Something went wrong. */
+- close (fd);
+- return;
+- }
+-
+-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+- || defined _LIBC
+- /* Now we are ready to load the file. If mmap() is available we try
+- this first. If not available or it failed we try to load it. */
+- data = (struct mo_file_header *) mmap (NULL, st.st_size, PROT_READ,
+- MAP_PRIVATE, fd, 0);
+-
+- if (data != (struct mo_file_header *) -1)
+- {
+- /* mmap() call was successful. */
+- close (fd);
+- use_mmap = 1;
+- }
+-#endif
+-
+- /* If the data is not yet available (i.e. mmap'ed) we try to load
+- it manually. */
+- if (data == (struct mo_file_header *) -1)
+- {
+- off_t to_read;
+- char *read_ptr;
+-
+- data = (struct mo_file_header *) malloc (st.st_size);
+- if (data == NULL)
+- return;
+-
+- to_read = st.st_size;
+- read_ptr = (char *) data;
+- do
+- {
+- long int nb = (long int) read (fd, read_ptr, to_read);
+- if (nb == -1)
+- {
+- close (fd);
+- return;
+- }
+-
+- read_ptr += nb;
+- to_read -= nb;
+- }
+- while (to_read > 0);
+-
+- close (fd);
+- }
+-
+- /* Using the magic number we can test whether it really is a message
+- catalog file. */
+- if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
+- {
+- /* The magic number is wrong: not a message catalog file. */
+-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+- || defined _LIBC
+- if (use_mmap)
+- munmap ((caddr_t) data, st.st_size);
+- else
+-#endif
+- free (data);
+- return;
+- }
+-
+- domain_file->data
+- = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
+- if (domain_file->data == NULL)
+- return;
+-
+- domain = (struct loaded_domain *) domain_file->data;
+- domain->data = (char *) data;
+- domain->must_swap = data->magic != _MAGIC;
+-
+- /* Fill in the information about the available tables. */
+- switch (W (domain->must_swap, data->revision))
+- {
+- case 0:
+- domain->nstrings = W (domain->must_swap, data->nstrings);
+- domain->orig_tab = (struct string_desc *)
+- ((char *) data + W (domain->must_swap, data->orig_tab_offset));
+- domain->trans_tab = (struct string_desc *)
+- ((char *) data + W (domain->must_swap, data->trans_tab_offset));
+- domain->hash_size = W (domain->must_swap, data->hash_tab_size);
+- domain->hash_tab = (nls_uint32 *)
+- ((char *) data + W (domain->must_swap, data->hash_tab_offset));
+- break;
+- default:
+- /* This is an illegal revision. */
+-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+- || defined _LIBC
+- if (use_mmap)
+- munmap ((caddr_t) data, st.st_size);
+- else
+-#endif
+- free (data);
+- free (domain);
+- domain_file->data = NULL;
+- return;
+- }
+-
+- /* Show that one domain is changed. This might make some cached
+- translations invalid. */
+- ++_nl_msg_cat_cntr;
+-}
+diff -uprN clean/lrzsz-0.12.20/intl/localealias.c lrzsz-0.12.20/intl/localealias.c
+--- clean/lrzsz-0.12.20/intl/localealias.c 1998-04-26 14:22:37.000000000 +0100
++++ lrzsz-0.12.20/intl/localealias.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,378 +0,0 @@
+-/* Handle aliases for locale names
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#include <ctype.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-
+-#ifdef __GNUC__
+-# define alloca __builtin_alloca
+-# define HAVE_ALLOCA 1
+-#else
+-# if defined HAVE_ALLOCA_H || defined _LIBC
+-# include <alloca.h>
+-# else
+-# ifdef _AIX
+- #pragma alloca
+-# else
+-# ifndef alloca
+-char *alloca ();
+-# endif
+-# endif
+-# endif
+-#endif
+-
+-#if defined STDC_HEADERS || defined _LIBC
+-# include <stdlib.h>
+-#else
+-char *getenv ();
+-# ifdef HAVE_MALLOC_H
+-# include <malloc.h>
+-# else
+-void free ();
+-# endif
+-#endif
+-
+-#if defined HAVE_STRING_H || defined _LIBC
+-# ifndef _GNU_SOURCE
+-# define _GNU_SOURCE 1
+-# endif
+-# include <string.h>
+-#else
+-# include <strings.h>
+-# ifndef memcpy
+-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+-# endif
+-#endif
+-#if !HAVE_STRCHR && !defined _LIBC
+-# ifndef strchr
+-# define strchr index
+-# endif
+-#endif
+-
+-#include "gettext.h"
+-#include "gettextP.h"
+-
+-/* @@ end of prolog @@ */
+-
+-#ifdef _LIBC
+-/* Rename the non ANSI C functions. This is required by the standard
+- because some ANSI C functions will require linking with this object
+- file and the name space must not be polluted. */
+-# define strcasecmp __strcasecmp
+-#endif
+-
+-
+-/* For those loosing systems which don't have `alloca' we have to add
+- some additional code emulating it. */
+-#ifdef HAVE_ALLOCA
+-/* Nothing has to be done. */
+-# define ADD_BLOCK(list, address) /* nothing */
+-# define FREE_BLOCKS(list) /* nothing */
+-#else
+-struct block_list
+-{
+- void *address;
+- struct block_list *next;
+-};
+-# define ADD_BLOCK(list, addr) \
+- do { \
+- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+- /* If we cannot get a free block we cannot add the new element to \
+- the list. */ \
+- if (newp != NULL) { \
+- newp->address = (addr); \
+- newp->next = (list); \
+- (list) = newp; \
+- } \
+- } while (0)
+-# define FREE_BLOCKS(list) \
+- do { \
+- while (list != NULL) { \
+- struct block_list *old = list; \
+- list = list->next; \
+- free (old); \
+- } \
+- } while (0)
+-# undef alloca
+-# define alloca(size) (malloc (size))
+-#endif /* have alloca */
+-
+-
+-struct alias_map
+-{
+- const char *alias;
+- const char *value;
+-};
+-
+-
+-static struct alias_map *map;
+-static size_t nmap = 0;
+-static size_t maxmap = 0;
+-
+-
+-/* Prototypes for local functions. */
+-static size_t read_alias_file PARAMS ((const char *fname, int fname_len));
+-static void extend_alias_table PARAMS ((void));
+-static int alias_compare PARAMS ((const struct alias_map *map1,
+- const struct alias_map *map2));
+-
+-
+-const char *
+-_nl_expand_alias (name)
+- const char *name;
+-{
+- static const char *locale_alias_path = LOCALE_ALIAS_PATH;
+- struct alias_map *retval;
+- size_t added;
+-
+- do
+- {
+- struct alias_map item;
+-
+- item.alias = name;
+-
+- if (nmap > 0)
+- retval = (struct alias_map *) bsearch (&item, map, nmap,
+- sizeof (struct alias_map),
+- (int (*) PARAMS ((const void *,
+- const void *))
+- ) alias_compare);
+- else
+- retval = NULL;
+-
+- /* We really found an alias. Return the value. */
+- if (retval != NULL)
+- return retval->value;
+-
+- /* Perhaps we can find another alias file. */
+- added = 0;
+- while (added == 0 && locale_alias_path[0] != '\0')
+- {
+- const char *start;
+-
+- while (locale_alias_path[0] == ':')
+- ++locale_alias_path;
+- start = locale_alias_path;
+-
+- while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
+- ++locale_alias_path;
+-
+- if (start < locale_alias_path)
+- added = read_alias_file (start, locale_alias_path - start);
+- }
+- }
+- while (added != 0);
+-
+- return NULL;
+-}
+-
+-
+-static size_t
+-read_alias_file (fname, fname_len)
+- const char *fname;
+- int fname_len;
+-{
+-#ifndef HAVE_ALLOCA
+- struct block_list *block_list = NULL;
+-#endif
+- FILE *fp;
+- char *full_fname;
+- size_t added;
+- static const char aliasfile[] = "/locale.alias";
+-
+- full_fname = (char *) alloca (fname_len + sizeof aliasfile);
+- ADD_BLOCK (block_list, full_fname);
+- memcpy (full_fname, fname, fname_len);
+- memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
+-
+- fp = fopen (full_fname, "r");
+- if (fp == NULL)
+- {
+- FREE_BLOCKS (block_list);
+- return 0;
+- }
+-
+- added = 0;
+- while (!feof (fp))
+- {
+- /* It is a reasonable approach to use a fix buffer here because
+- a) we are only interested in the first two fields
+- b) these fields must be usable as file names and so must not
+- be that long
+- */
+- char buf[BUFSIZ];
+- char *alias;
+- char *value;
+- char *cp;
+-
+- if (fgets (buf, BUFSIZ, fp) == NULL)
+- /* EOF reached. */
+- break;
+-
+- cp = buf;
+- /* Ignore leading white space. */
+- while (isspace (cp[0]))
+- ++cp;
+-
+- /* A leading '#' signals a comment line. */
+- if (cp[0] != '\0' && cp[0] != '#')
+- {
+- alias = cp++;
+- while (cp[0] != '\0' && !isspace (cp[0]))
+- ++cp;
+- /* Terminate alias name. */
+- if (cp[0] != '\0')
+- *cp++ = '\0';
+-
+- /* Now look for the beginning of the value. */
+- while (isspace (cp[0]))
+- ++cp;
+-
+- if (cp[0] != '\0')
+- {
+- char *tp;
+- size_t len;
+-
+- value = cp++;
+- while (cp[0] != '\0' && !isspace (cp[0]))
+- ++cp;
+- /* Terminate value. */
+- if (cp[0] == '\n')
+- {
+- /* This has to be done to make the following test
+- for the end of line possible. We are looking for
+- the terminating '\n' which do not overwrite here. */
+- *cp++ = '\0';
+- *cp = '\n';
+- }
+- else if (cp[0] != '\0')
+- *cp++ = '\0';
+-
+- if (nmap >= maxmap)
+- extend_alias_table ();
+-
+- /* We cannot depend on strdup available in the libc. Sigh! */
+- len = strlen (alias) + 1;
+- tp = (char *) malloc (len);
+- if (tp == NULL)
+- {
+- FREE_BLOCKS (block_list);
+- return added;
+- }
+- memcpy (tp, alias, len);
+- map[nmap].alias = tp;
+-
+- len = strlen (value) + 1;
+- tp = (char *) malloc (len);
+- if (tp == NULL)
+- {
+- FREE_BLOCKS (block_list);
+- return added;
+- }
+- memcpy (tp, value, len);
+- map[nmap].value = tp;
+-
+- ++nmap;
+- ++added;
+- }
+- }
+-
+- /* Possibly not the whole line fits into the buffer. Ignore
+- the rest of the line. */
+- while (strchr (cp, '\n') == NULL)
+- {
+- cp = buf;
+- if (fgets (buf, BUFSIZ, fp) == NULL)
+- /* Make sure the inner loop will be left. The outer loop
+- will exit at the `feof' test. */
+- *cp = '\n';
+- }
+- }
+-
+- /* Should we test for ferror()? I think we have to silently ignore
+- errors. --drepper */
+- fclose (fp);
+-
+- if (added > 0)
+- qsort (map, nmap, sizeof (struct alias_map),
+- (int (*) PARAMS ((const void *, const void *))) alias_compare);
+-
+- FREE_BLOCKS (block_list);
+- return added;
+-}
+-
+-
+-static void
+-extend_alias_table ()
+-{
+- size_t new_size;
+- struct alias_map *new_map;
+-
+- new_size = maxmap == 0 ? 100 : 2 * maxmap;
+- new_map = (struct alias_map *) malloc (new_size
+- * sizeof (struct alias_map));
+- if (new_map == NULL)
+- /* Simply don't extend: we don't have any more core. */
+- return;
+-
+- memcpy (new_map, map, nmap * sizeof (struct alias_map));
+-
+- if (maxmap != 0)
+- free (map);
+-
+- map = new_map;
+- maxmap = new_size;
+-}
+-
+-
+-static int
+-alias_compare (map1, map2)
+- const struct alias_map *map1;
+- const struct alias_map *map2;
+-{
+-#if defined _LIBC || defined HAVE_STRCASECMP
+- return strcasecmp (map1->alias, map2->alias);
+-#else
+- const unsigned char *p1 = (const unsigned char *) map1->alias;
+- const unsigned char *p2 = (const unsigned char *) map2->alias;
+- unsigned char c1, c2;
+-
+- if (p1 == p2)
+- return 0;
+-
+- do
+- {
+- /* I know this seems to be odd but the tolower() function in
+- some systems libc cannot handle nonalpha characters. */
+- c1 = isupper (*p1) ? tolower (*p1) : *p1;
+- c2 = isupper (*p2) ? tolower (*p2) : *p2;
+- if (c1 == '\0')
+- break;
+- ++p1;
+- ++p2;
+- }
+- while (c1 == c2);
+-
+- return c1 - c2;
+-#endif
+-}
+diff -uprN clean/lrzsz-0.12.20/intl/Makefile.in lrzsz-0.12.20/intl/Makefile.in
+--- clean/lrzsz-0.12.20/intl/Makefile.in 1998-04-26 14:22:35.000000000 +0100
++++ lrzsz-0.12.20/intl/Makefile.in 1970-01-01 01:00:00.000000000 +0100
+@@ -1,214 +0,0 @@
+-# Makefile for directory with message catalog handling in GNU NLS Utilities.
+-# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+-#
+-# 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, 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.
+-
+-PACKAGE = @PACKAGE@
+-VERSION = @VERSION@
+-
+-SHELL = /bin/sh
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-top_builddir = ..
+-VPATH = @srcdir@
+-
+-prefix = @prefix@
+-exec_prefix = @exec_prefix@
+-transform = @program_transform_name@
+-libdir = $(exec_prefix)/lib
+-includedir = $(prefix)/include
+-datadir = $(prefix)/@DATADIRNAME@
+-localedir = $(datadir)/locale
+-gnulocaledir = $(prefix)/share/locale
+-gettextsrcdir = @datadir@/gettext/intl
+-aliaspath = $(localedir):.
+-subdir = intl
+-
+-INSTALL = @INSTALL@
+-INSTALL_DATA = @INSTALL_DATA@
+-MKINSTALLDIRS = @MKINSTALLDIRS@
+-
+-l = @l@
+-
+-AR = ar
+-CC = @CC@
+-LIBTOOL = @LIBTOOL@
+-RANLIB = @RANLIB@
+-
+-DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
+--DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
+-CPPFLAGS = @CPPFLAGS@
+-CFLAGS = @CFLAGS@
+-LDFLAGS = @LDFLAGS@
+-
+-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+-
+-HEADERS = $(COMHDRS) libgettext.h loadinfo.h
+-COMHDRS = gettext.h gettextP.h hash-string.h
+-SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
+-COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
+-finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
+-explodename.c
+-OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
+-finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
+-explodename.$lo
+-CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
+-GETTOBJS = intl-compat.$lo
+-DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
+-xopen-msg.sed $(HEADERS) $(SOURCES)
+-DISTFILES.normal = VERSION
+-DISTFILES.gettext = libintl.glibc intlh.inst.in
+-
+-.SUFFIXES:
+-.SUFFIXES: .c .o .lo
+-.c.o:
+- $(COMPILE) $<
+-.c.lo:
+- $(LIBTOOL) --mode=compile $(COMPILE) $<
+-
+-INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
+-
+-all: all-@USE_INCLUDED_LIBINTL@
+-
+-all-yes: libintl.$la intlh.inst
+-all-no:
+-
+-libintl.a: $(OBJECTS)
+- rm -f $@
+- $(AR) cru $@ $(OBJECTS)
+- $(RANLIB) $@
+-
+-libintl.la: $(OBJECTS)
+- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
+- -version-info 1:0 -rpath $(libdir)
+-
+-../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
+- cd ../po && $(MAKE) cat-id-tbl.$lo
+-
+-check: all
+-
+-# This installation goal is only used in GNU gettext. Packages which
+-# only use the library should use install instead.
+-
+-# We must not install the libintl.h/libintl.a files if we are on a
+-# system which has the gettext() function in its C library or in a
+-# separate library or use the catgets interface. A special case is
+-# where configure found a previously installed GNU gettext library.
+-# If you want to use the one which comes with this version of the
+-# package, you have to use `configure --with-included-gettext'.
+-install: install-exec install-data
+-install-exec: all
+- if test "$(PACKAGE)" = "gettext" \
+- && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
+- if test -r $(MKINSTALLDIRS); then \
+- $(MKINSTALLDIRS) $(libdir) $(includedir); \
+- else \
+- $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
+- fi; \
+- $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
+- $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
+- else \
+- : ; \
+- fi
+-install-data: all
+- if test "$(PACKAGE)" = "gettext"; then \
+- if test -r $(MKINSTALLDIRS); then \
+- $(MKINSTALLDIRS) $(gettextsrcdir); \
+- else \
+- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+- fi; \
+- $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
+- dists="$(DISTFILES.common)"; \
+- for file in $$dists; do \
+- $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
+- done; \
+- else \
+- : ; \
+- fi
+-
+-# Define this as empty until I found a useful application.
+-installcheck:
+-
+-uninstall:
+- dists="$(DISTFILES.common)"; \
+- for file in $$dists; do \
+- rm -f $(gettextsrcdir)/$$file; \
+- done
+-
+-info dvi:
+-
+-$(OBJECTS): ../config.h libgettext.h
+-bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
+-dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
+-
+-tags: TAGS
+-
+-TAGS: $(HEADERS) $(SOURCES)
+- here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
+-
+-id: ID
+-
+-ID: $(HEADERS) $(SOURCES)
+- here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
+-
+-
+-mostlyclean:
+- rm -f *.a *.o *.lo core core.*
+-
+-clean: mostlyclean
+-
+-distclean: clean
+- rm -f Makefile ID TAGS po2msg.sed po2tbl.sed libintl.h
+-
+-maintainer-clean: distclean
+- @echo "This command is intended for maintainers to use;"
+- @echo "it deletes files that may require special tools to rebuild."
+-
+-
+-# GNU gettext needs not contain the file `VERSION' but contains some
+-# other files which should not be distributed in other packages.
+-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+-dist distdir: Makefile $(DISTFILES)
+- if test "$(PACKAGE)" = gettext; then \
+- additional="$(DISTFILES.gettext)"; \
+- else \
+- additional="$(DISTFILES.normal)"; \
+- fi; \
+- for file in $(DISTFILES.common) $$additional; do \
+- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+- || cp -p $(srcdir)/$$file $(distdir); \
+- done
+-
+-dist-libc:
+- tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
+-
+-Makefile: Makefile.in ../config.status
+- cd .. \
+- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+-
+-# The dependency for intlh.inst is different in gettext and all other
+-# packages. Because we cannot you GNU make features we have to solve
+-# the problem while rewriting Makefile.in.
+-@GT_YES@intlh.inst: intlh.inst.in ../config.status
+-@GT_YES@ cd .. \
+-@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
+-@GT_YES@ $(SHELL) ./config.status
+-@GT_NO@.PHONY: intlh.inst
+-@GT_NO@intlh.inst:
+-
+-# Tell versions [3.59,3.63) of GNU make not to export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff -uprN clean/lrzsz-0.12.20/intl/po2tbl.sed.in lrzsz-0.12.20/intl/po2tbl.sed.in
+--- clean/lrzsz-0.12.20/intl/po2tbl.sed.in 1998-04-26 14:20:52.000000000 +0100
++++ lrzsz-0.12.20/intl/po2tbl.sed.in 1970-01-01 01:00:00.000000000 +0100
+@@ -1,102 +0,0 @@
+-# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
+-# Copyright (C) 1995 Free Software Foundation, Inc.
+-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+-#
+-# 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, 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.
+-#
+-1 {
+- i\
+-/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
+-\
+-#if HAVE_CONFIG_H\
+-# include <config.h>\
+-#endif\
+-\
+-#include "libgettext.h"\
+-\
+-const struct _msg_ent _msg_tbl[] = {
+- h
+- s/.*/0/
+- x
+-}
+-#
+-# Write msgid entries in C array form.
+-#
+-/^msgid/ {
+- s/msgid[ ]*\(".*"\)/ {\1/
+- tb
+-# Append the next line
+- :b
+- N
+-# Look whether second part is continuation line.
+- s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
+-# Yes, then branch.
+- ta
+-# Because we assume that the input file correctly formed the line
+-# just read cannot be again be a msgid line. So it's safe to ignore
+-# it.
+- s/\(.*\)\n.*/\1/
+- bc
+-# We found a continuation line. But before printing insert '\'.
+- :a
+- s/\(.*\)\(\n.*\)/\1\\\2/
+- P
+-# We cannot use D here.
+- s/.*\n\(.*\)/\1/
+-# Some buggy seds do not clear the `successful substitution since last ``t'''
+-# flag on `N', so we do a `t' here to clear it.
+- tb
+-# Not reached
+- :c
+- x
+-# The following nice solution is by
+-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+- td
+-# Increment a decimal number in pattern space.
+-# First hide trailing `9' digits.
+- :d
+- s/9\(_*\)$/_\1/
+- td
+-# Assure at least one digit is available.
+- s/^\(_*\)$/0\1/
+-# Increment the last digit.
+- s/8\(_*\)$/9\1/
+- s/7\(_*\)$/8\1/
+- s/6\(_*\)$/7\1/
+- s/5\(_*\)$/6\1/
+- s/4\(_*\)$/5\1/
+- s/3\(_*\)$/4\1/
+- s/2\(_*\)$/3\1/
+- s/1\(_*\)$/2\1/
+- s/0\(_*\)$/1\1/
+-# Convert the hidden `9' digits to `0's.
+- s/_/0/g
+- x
+- G
+- s/\(.*\)\n\([0-9]*\)/\1, \2},/
+- s/\(.*\)"$/\1/
+- p
+-}
+-#
+-# Last line.
+-#
+-$ {
+- i\
+-};\
+-
+- g
+- s/0*\(.*\)/int _msg_tbl_length = \1;/p
+-}
+-d
+diff -uprN clean/lrzsz-0.12.20/intl/textdomain.c lrzsz-0.12.20/intl/textdomain.c
+--- clean/lrzsz-0.12.20/intl/textdomain.c 1998-04-26 14:22:37.000000000 +0100
++++ lrzsz-0.12.20/intl/textdomain.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,106 +0,0 @@
+-/* Implementation of the textdomain(3) function
+- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+-
+- 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, 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. */
+-
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#if defined STDC_HEADERS || defined _LIBC
+-# include <stdlib.h>
+-#endif
+-
+-#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
+-# include <string.h>
+-#else
+-# include <strings.h>
+-# ifndef memcpy
+-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+-# endif
+-#endif
+-
+-#ifdef _LIBC
+-# include <libintl.h>
+-#else
+-# include "libgettext.h"
+-#endif
+-
+-/* @@ end of prolog @@ */
+-
+-/* Name of the default text domain. */
+-extern const char _nl_default_default_domain[];
+-
+-/* Default text domain in which entries for gettext(3) are to be found. */
+-extern const char *_nl_current_default_domain;
+-
+-
+-/* Names for the libintl functions are a problem. They must not clash
+- with existing names and they should follow ANSI C. But this source
+- code is also used in GNU C Library where the names have a __
+- prefix. So we have to make a difference here. */
+-#ifdef _LIBC
+-# define TEXTDOMAIN __textdomain
+-# define strdup(str) __strdup (str)
+-#else
+-# define TEXTDOMAIN textdomain__
+-#endif
+-
+-/* Set the current default message catalog to DOMAINNAME.
+- If DOMAINNAME is null, return the current default.
+- If DOMAINNAME is "", reset to the default of "messages". */
+-char *
+-TEXTDOMAIN (domainname)
+- const char *domainname;
+-{
+- char *old;
+-
+- /* A NULL pointer requests the current setting. */
+- if (domainname == NULL)
+- return (char *) _nl_current_default_domain;
+-
+- old = (char *) _nl_current_default_domain;
+-
+- /* If domain name is the null string set to default domain "messages". */
+- if (domainname[0] == '\0'
+- || strcmp (domainname, _nl_default_default_domain) == 0)
+- _nl_current_default_domain = _nl_default_default_domain;
+- else
+- {
+- /* If the following malloc fails `_nl_current_default_domain'
+- will be NULL. This value will be returned and so signals we
+- are out of core. */
+-#if defined _LIBC || defined HAVE_STRDUP
+- _nl_current_default_domain = strdup (domainname);
+-#else
+- size_t len = strlen (domainname) + 1;
+- char *cp = (char *) malloc (len);
+- if (cp != NULL)
+- memcpy (cp, domainname, len);
+- _nl_current_default_domain = cp;
+-#endif
+- }
+-
+- if (old != _nl_default_default_domain)
+- free (old);
+-
+- return (char *) _nl_current_default_domain;
+-}
+-
+-#ifdef _LIBC
+-/* Alias for function name in GNU C Library. */
+-weak_alias (__textdomain, textdomain);
+-#endif
+diff -uprN clean/lrzsz-0.12.20/intl/VERSION lrzsz-0.12.20/intl/VERSION
+--- clean/lrzsz-0.12.20/intl/VERSION 1998-04-26 14:22:37.000000000 +0100
++++ lrzsz-0.12.20/intl/VERSION 1970-01-01 01:00:00.000000000 +0100
+@@ -1 +0,0 @@
+-GNU gettext library from gettext-0.10.32
+diff -uprN clean/lrzsz-0.12.20/intl/xopen-msg.sed lrzsz-0.12.20/intl/xopen-msg.sed
+--- clean/lrzsz-0.12.20/intl/xopen-msg.sed 1998-04-26 14:20:52.000000000 +0100
++++ lrzsz-0.12.20/intl/xopen-msg.sed 1970-01-01 01:00:00.000000000 +0100
+@@ -1,104 +0,0 @@
+-# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
+-# Copyright (C) 1995 Free Software Foundation, Inc.
+-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+-#
+-# 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, 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.
+-#
+-#
+-# The first directive in the .msg should be the definition of the
+-# message set number. We use always set number 1.
+-#
+-1 {
+- i\
+-$set 1 # Automatically created by po2msg.sed
+- h
+- s/.*/0/
+- x
+-}
+-#
+-# We copy all comments into the .msg file. Perhaps they can help.
+-#
+-/^#/ s/^#[ ]*/$ /p
+-#
+-# We copy the original message as a comment into the .msg file.
+-#
+-/^msgid/ {
+-# Does not work now
+-# /"$/! {
+-# s/\\$//
+-# s/$/ ... (more lines following)"/
+-# }
+- s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/
+- p
+-}
+-#
+-# The .msg file contains, other then the .po file, only the translations
+-# but each given a unique ID. Starting from 1 and incrementing by 1 for
+-# each message we assign them to the messages.
+-# It is important that the .po file used to generate the cat-id-tbl.c file
+-# (with po-to-tbl) is the same as the one used here. (At least the order
+-# of declarations must not be changed.)
+-#
+-/^msgstr/ {
+- s/msgstr[ ]*"\(.*\)"/\1/
+- x
+-# The following nice solution is by
+-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+- td
+-# Increment a decimal number in pattern space.
+-# First hide trailing `9' digits.
+- :d
+- s/9\(_*\)$/_\1/
+- td
+-# Assure at least one digit is available.
+- s/^\(_*\)$/0\1/
+-# Increment the last digit.
+- s/8\(_*\)$/9\1/
+- s/7\(_*\)$/8\1/
+- s/6\(_*\)$/7\1/
+- s/5\(_*\)$/6\1/
+- s/4\(_*\)$/5\1/
+- s/3\(_*\)$/4\1/
+- s/2\(_*\)$/3\1/
+- s/1\(_*\)$/2\1/
+- s/0\(_*\)$/1\1/
+-# Convert the hidden `9' digits to `0's.
+- s/_/0/g
+- x
+-# Bring the line in the format `<number> <message>'
+- G
+- s/^[^\n]*$/& /
+- s/\(.*\)\n\([0-9]*\)/\2 \1/
+-# Clear flag from last substitution.
+- tb
+-# Append the next line.
+- :b
+- N
+-# Look whether second part is a continuation line.
+- s/\(.*\n\)"\(.*\)"/\1\2/
+-# Yes, then branch.
+- ta
+- P
+- D
+-# Note that `D' includes a jump to the start!!
+-# We found a continuation line. But before printing insert '\'.
+- :a
+- s/\(.*\)\(\n.*\)/\1\\\2/
+- P
+-# We cannot use the sed command `D' here
+- s/.*\n\(.*\)/\1/
+- tb
+-}
+-d
+diff -uprN clean/lrzsz-0.12.20/lib/Makefile.am lrzsz-0.12.20/lib/Makefile.am
+--- clean/lrzsz-0.12.20/lib/Makefile.am 1998-12-27 16:25:26.000000000 +0000
++++ lrzsz-0.12.20/lib/Makefile.am 2019-11-25 16:22:34.000000000 +0000
+@@ -1,6 +1,4 @@
+ noinst_LIBRARIES=libzmodem.a
+-CFLAGS=@CFLAGS@
+-AUTOMAKE_OPTIONS=ansi2knr
+
+ EXTRA_DIST = alloca.c ansi2knr.1 ansi2knr.c \
+ getopt.c getopt1.c mkdir.c mktime.c \
+diff -uprN clean/lrzsz-0.12.20/Makefile.am lrzsz-0.12.20/Makefile.am
+--- clean/lrzsz-0.12.20/Makefile.am 1998-12-30 11:19:40.000000000 +0000
++++ lrzsz-0.12.20/Makefile.am 2019-11-26 11:47:29.000000000 +0000
+@@ -1,5 +1,5 @@
+-SUBDIRS = lib intl src po man testsuite
+-EXTRA_DIST = check.lrzsz COMPATABILITY README.cvs README.isdn4linux \
++SUBDIRS = lib src po man testsuite
++EXTRA_DIST = config.rpath m4/ChangeLog check.lrzsz COMPATABILITY README.cvs README.isdn4linux \
+ README.gettext rpmrc buildrpm systype.in fastcheck.sh README.tests \
+ beos-runpiped.c fastcheck.beos
+ noinst_SCRIPTS=systype
+@@ -7,7 +7,6 @@ PR=@PACKAGE@-@VERSION@
+ CLEAN_FILES=fastcheck.done
+
+ dist-hook:
+- mkdir $(distdir)/debian
+ cp -fa $(srcdir)/debian/changelog $(distdir)/debian/
+ cp -fa $(srcdir)/debian/control $(distdir)/debian/
+ cp -fa $(srcdir)/debian/copyright $(distdir)/debian/
+@@ -83,3 +82,5 @@ cvs-dist:
+ rpm: $(PR).tar.gz Specfile
+ $(srcdir)/buildrpm $(srcdir)
+
++
++ACLOCAL_AMFLAGS = -I m4
+diff -uprN clean/lrzsz-0.12.20/po/cat-id-tbl.c lrzsz-0.12.20/po/cat-id-tbl.c
+--- clean/lrzsz-0.12.20/po/cat-id-tbl.c 1998-12-29 09:24:24.000000000 +0000
++++ lrzsz-0.12.20/po/cat-id-tbl.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,234 +0,0 @@
+-/* Automatically generated by po2tbl.sed from lrzsz.pot. */
+-
+-#if HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+-#include "libgettext.h"
+-
+-const struct _msg_ent _msg_tbl[] = {
+- {"", 1},
+- {"io_mode(,2) in rbsb.c not implemented\n", 2},
+- {"caught signal %d; exiting", 3},
+- {"command tries", 4},
+- {"packetlength", 5},
+- {"packetlength out of range 24..%ld", 6},
+- {"framelength", 7},
+- {"framelength out of range 32..%ld", 8},
+- {"min_bps", 9},
+- {"min_bps must be >= 0", 10},
+- {"min_bps_time", 11},
+- {"min_bps_time must be > 1", 12},
+- {"hour to large (0..23)", 13},
+- {"unparsable stop time\n", 14},
+- {"minute to large (0..59)", 15},
+- {"stop time to small", 16},
+- {"stop-at", 17},
+- {"timeout", 18},
+- {"timeout out of range 10..1000", 19},
+- {"security violation: can't do that under restricted shell\n", 20},
+- {"window size", 21},
+- {"cannot turnoff syslog", 22},
+- {"startup delay", 23},
+- {"out of memory", 24},
+- {"this program was never intended to be used setuid\n", 25},
+- {"need at least one file to send", 26},
+- {"Can't send command in restricted mode\n", 27},
+- {"hostname too long\n", 28},
+- {"illegal server address\n", 29},
+- {"can read only one file from stdin", 30},
+- {"Transfer incomplete\n", 31},
+- {"Transfer complete\n", 32},
+- {"send_pseudo %s: cannot open tmpfile %s: %s", 33},
+- {"send_pseudo %s: cannot lstat tmpfile %s: %s", 34},
+- {"send_pseudo %s: avoiding symlink trap", 35},
+- {"send_pseudo %s: cannot write to tmpfile %s: %s", 36},
+- {"send_pseudo %s: failed", 37},
+- {"send_pseudo %s: ok", 38},
+- {"tcp protocol init failed\n", 39},
+- {"Answering TIMESYNC at %s", 40},
+- {"timezone", 41},
+- {"timezone unknown", 42},
+- {"Can't open any requested files.", 43},
+- {"security violation: not allowed to upload from %s", 44},
+- {"cannot open %s", 45},
+- {"is not a file: %s", 46},
+- {"%s/%s: error occured", 47},
+- {"skipped: %s", 48},
+- {"%s/%s: skipped", 49},
+- {"Bytes Sent:%7ld BPS:%-8ld \n", 50},
+- {"Sending %s, %ld blocks: ", 51},
+- {"Give your local XMODEM receive command now.", 52},
+- {"Sending: %s\n", 53},
+- {"Timeout on pathname", 54},
+- {"Receiver Cancelled", 55},
+- {"No ACK on EOT", 56},
+- {"Xmodem sectors/kbytes sent: %3d/%2dk", 57},
+- {"Ymodem sectors/kbytes sent: %3d/%2dk", 58},
+- {"Cancelled", 59},
+- {"Timeout on sector ACK", 60},
+- {"NAK on sector", 61},
+- {"Got burst for sector ACK", 62},
+- {"Got %02x for sector ACK", 63},
+- {"Retry Count Exceeded", 64},
+- {"Try `%s --help' for more information.\n", 65},
+- {"%s version %s\n", 66},
+- {"Usage: %s [options] file ...\n", 67},
+- {" or: %s [options] -{c|i} COMMAND\n", 68},
+- {"Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n", 69},
+- {"\
+- (X) = option applies to XMODEM only\n\
+- (Y) = option applies to YMODEM only\n\
+- (Z) = option applies to ZMODEM only\n", 70},
+- {"\
+- -+, --append append to existing destination file (Z)\n\
+- -2, --twostop use 2 stop bits\n\
+- -4, --try-4k go up to 4K blocksize\n\
+- --start-4k start with 4K blocksize (doesn't try 8)\n\
+- -8, --try-8k go up to 8K blocksize\n\
+- --start-8k start with 8K blocksize\n\
+- -a, --ascii ASCII transfer (change CR/LF to LF)\n\
+- -b, --binary binary transfer\n\
+- -B, --bufsize N buffer N bytes (N==auto: buffer whole file)\n\
+- -c, --command COMMAND execute remote command COMMAND (Z)\n\
+- -C, --command-tries N try N times to execute a command (Z)\n\
+- -d, --dot-to-slash change '.' to '/' in pathnames (Y/Z)\n\
+- --delay-startup N sleep N seconds before doing anything\n\
+- -e, --escape escape all control characters (Z)\n\
+- -E, --rename force receiver to rename files it already has\n\
+- -f, --full-path send full pathname (Y/Z)\n\
+- -i, --immediate-command CMD send remote CMD, return immediately (Z)\n\
+- -h, --help print this usage message\n\
+- -k, --1k send 1024 byte packets (X)\n\
+- -L, --packetlen N limit subpacket length to N bytes (Z)\n\
+- -l, --framelen N limit frame length to N bytes (l>=L) (Z)\n\
+- -m, --min-bps N stop transmission if BPS below N\n\
+- -M, --min-bps-time N for at least N seconds (default: 120)\n", 71},
+- {"\
+- -n, --newer send file if source newer (Z)\n\
+- -N, --newer-or-longer send file if source newer or longer (Z)\n\
+- -o, --16-bit-crc use 16 bit CRC instead of 32 bit CRC (Z)\n\
+- -O, --disable-timeouts disable timeout code, wait forever\n\
+- -p, --protect protect existing destination file (Z)\n\
+- -r, --resume resume interrupted file transfer (Z)\n\
+- -R, --restricted restricted, more secure mode\n\
+- -q, --quiet quiet (no progress reports)\n\
+- -s, --stop-at {HH:MM|+N} stop transmission at HH:MM or in N seconds\n\
+- --tcp build a TCP connection to transmit files\n\
+- --tcp-server open socket, wait for connection\n\
+- -u, --unlink unlink file after transmission\n\
+- -U, --unrestrict turn off restricted mode (if allowed to)\n\
+- -v, --verbose be verbose, provide debugging information\n\
+- -w, --windowsize N Window is N bytes (Z)\n\
+- -X, --xmodem use XMODEM protocol\n\
+- -y, --overwrite overwrite existing files\n\
+- -Y, --overwrite-or-skip overwrite existing files, else skip\n\
+- --ymodem use YMODEM protocol\n\
+- -Z, --zmodem use ZMODEM protocol\n\
+-\n\
+-short options use the same arguments as the long ones\n", 72},
+- {"got ZRQINIT", 73},
+- {"got ZCAN", 74},
+- {"blklen now %d\n", 75},
+- {"zsendfdata: bps rate %ld below min %ld", 76},
+- {"zsendfdata: reached stop time", 77},
+- {"Bytes Sent:%7ld/%7ld BPS:%-8ld ETA %02d:%02d ", 78},
+- {"calc_blklen: reduced to %d due to error\n", 79},
+- {"calc_blklen: returned old value %d due to low bpe diff\n", 80},
+- {"calc_blklen: old %ld, new %ld, d %ld\n", 81},
+- {"calc_blklen: calc total_bytes=%ld, bpe=%ld, ec=%ld\n", 82},
+- {"calc_blklen: blklen %d, ok %ld, failed %ld -> %lu\n", 83},
+- {"calc_blklen: returned %d as best\n", 84},
+- {"\
+-\n\
+-countem: Total %d %ld\n", 85},
+- {"Bad escape sequence %x", 86},
+- {"Sender Canceled", 87},
+- {"TIMEOUT", 88},
+- {"Bad data subpacket", 89},
+- {"Data subpacket too long", 90},
+- {"Garbage count exceeded", 91},
+- {"Got %s", 92},
+- {"Retry %d: ", 93},
+- {"don't have settimeofday, will not set time\n", 94},
+- {"not running as root (this is good!), can not set time\n", 95},
+- {"bytes_per_error", 96},
+- {"bytes-per-error should be >100", 97},
+- {"O_SYNC not supported by the kernel", 98},
+- {"garbage on commandline", 99},
+- {"Usage: %s [options] [filename.if.xmodem]\n", 100},
+- {"Receive files with ZMODEM/YMODEM/XMODEM protocol\n", 101},
+- {"\
+- -+, --append append to existing files\n\
+- -a, --ascii ASCII transfer (change CR/LF to LF)\n\
+- -b, --binary binary transfer\n\
+- -B, --bufsize N buffer N bytes (N==auto: buffer whole file)\n\
+- -c, --with-crc Use 16 bit CRC (X)\n\
+- -C, --allow-remote-commands allow execution of remote commands (Z)\n\
+- -D, --null write all received data to /dev/null\n\
+- --delay-startup N sleep N seconds before doing anything\n\
+- -e, --escape Escape control characters (Z)\n\
+- -E, --rename rename any files already existing\n\
+- --errors N generate CRC error every N bytes (debugging)\n\
+- -h, --help Help, print this usage message\n\
+- -m, --min-bps N stop transmission if BPS below N\n\
+- -M, --min-bps-time N for at least N seconds (default: 120)\n\
+- -O, --disable-timeouts disable timeout code, wait forever for data\n\
+- --o-sync open output file(s) in synchronous write mode\n\
+- -p, --protect protect existing files\n\
+- -q, --quiet quiet, no progress reports\n\
+- -r, --resume try to resume interrupted file transfer (Z)\n\
+- -R, --restricted restricted, more secure mode\n\
+- -s, --stop-at {HH:MM|+N} stop transmission at HH:MM or in N seconds\n\
+- -S, --timesync request remote time (twice: set local time)\n\
+- --syslog[=off] turn syslog on or off, if possible\n\
+- -t, --timeout N set timeout to N tenths of a second\n\
+- -u, --keep-uppercase keep upper case filenames\n\
+- -U, --unrestrict disable restricted mode (if allowed to)\n\
+- -v, --verbose be verbose, provide debugging information\n\
+- -w, --windowsize N Window is N bytes (Z)\n\
+- -X --xmodem use XMODEM protocol\n\
+- -y, --overwrite Yes, clobber existing file if any\n\
+- --ymodem use YMODEM protocol\n\
+- -Z, --zmodem use ZMODEM protocol\n\
+-\n\
+-short options use the same arguments as the long ones\n", 102},
+- {"%s waiting to receive.", 103},
+- {"\rBytes received: %7ld/%7ld BPS:%-6ld \r\n", 104},
+- {"%s: ready to receive %s", 105},
+- {"\rBytes received: %7ld BPS:%-6ld \r\n", 106},
+- {"\
+-\r\n\
+-%s: %s removed.\r\n", 107},
+- {"Pathname fetch returned EOT", 108},
+- {"Received dup Sector", 109},
+- {"Sync Error", 110},
+- {"CRC", 111},
+- {"Checksum", 112},
+- {"Sector number garbled", 113},
+- {"Sender Cancelled", 114},
+- {"Got 0%o sector header", 115},
+- {"file name ends with a /, skipped: %s\n", 116},
+- {"zmanag=%d, Lzmanag=%d\n", 117},
+- {"zconv=%d\n", 118},
+- {"file exists, skipped: %s\n", 119},
+- {"TIMESYNC: here %ld, remote %ld, diff %ld seconds\n", 120},
+- {"TIMESYNC: cannot set time: %s\n", 121},
+- {"cannot tmpfile() for tcp protocol synchronization", 122},
+- {"Topipe", 123},
+- {"Receiving: %s\n", 124},
+- {"Blocks received: %d", 125},
+- {"%s: %s exists\n", 126},
+- {"%s:\tSecurity Violation", 127},
+- {"remote command execution requested", 128},
+- {"not executed", 129},
+- {"got ZRINIT", 130},
+- {"Skipped", 131},
+- {"rzfile: bps rate %ld below min %ld", 132},
+- {"rzfile: reached stop time", 133},
+- {"\rBytes received: %7ld/%7ld BPS:%-6ld ETA %02d:%02d ", 134},
+- {"fgets for tcp protocol synchronization failed: ", 135},
+- {"file close error", 136},
+-};
+-
+-int _msg_tbl_length = 136;
+Binary files clean/lrzsz-0.12.20/po/de.gmo and lrzsz-0.12.20/po/de.gmo differ
+diff -uprN clean/lrzsz-0.12.20/po/de.po lrzsz-0.12.20/po/de.po
+--- clean/lrzsz-0.12.20/po/de.po 1998-12-30 16:31:46.000000000 +0000
++++ lrzsz-0.12.20/po/de.po 2019-11-26 11:42:07.000000000 +0000
+@@ -6,10 +6,12 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+-"POT-Creation-Date: 1998-12-30 08:49+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2019-11-26 11:39+0000\n"
+ "PO-Revision-Date: 1997-06-01 19:00+0200\n"
+ "Last-Translator: FULL NAME <uwe@ohse.de>\n"
+ "Language-Team: none. try <uwe@ohse.de>\n"
++"Language: de\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=iso-8859-1\n"
+ "Content-Transfer-Encoding: 8bit\n"
+@@ -18,7 +20,7 @@ msgstr ""
+ msgid "io_mode(,2) in rbsb.c not implemented\n"
+ msgstr "io_mode(2) in rbsb.c nicht implementiert\n"
+
+-#: src/lrz.c:201 src/lsz.c:230
++#: src/lsz.c:230 src/lrz.c:201
+ #, c-format
+ msgid "caught signal %d; exiting"
+ msgstr "erhielt Signal %d; Programmabbruch"
+@@ -45,7 +47,7 @@ msgstr "Framelänge"
+ msgid "framelength out of range 32..%ld"
+ msgstr "Argument der Option l außerhalb des Bereichs 32..%ld"
+
+-#: src/lrz.c:323 src/lsz.c:450
++#: src/lsz.c:450 src/lrz.c:323
+ msgid "min_bps"
+ msgstr "minimale BPS-Rate"
+
+@@ -53,65 +55,65 @@ msgstr "minimale BPS-Rate"
+ msgid "min_bps must be >= 0"
+ msgstr "minimale BPS-Rate muß >= 0 sein"
+
+-#: src/lrz.c:329 src/lsz.c:458
++#: src/lsz.c:458 src/lrz.c:329
+ msgid "min_bps_time"
+ msgstr ""
+
+-#: src/lrz.c:331 src/lsz.c:460
++#: src/lsz.c:460 src/lrz.c:331
+ msgid "min_bps_time must be > 1"
+ msgstr "Zeitfenster für minimale BPS-Rate muß > 1 Sekunde sein"
+
+-#: src/lrz.c:347 src/lsz.c:484
++#: src/lsz.c:484 src/lrz.c:347
+ msgid "hour to large (0..23)"
+ msgstr "Stunde zu gross (0..23)"
+
+-#: src/lrz.c:349 src/lsz.c:486
++#: src/lsz.c:486 src/lrz.c:349
+ msgid "unparsable stop time\n"
+ msgstr "unparsbare Endzeit\n"
+
+-#: src/lrz.c:353 src/lsz.c:490
++#: src/lsz.c:490 src/lrz.c:353
+ msgid "minute to large (0..59)"
+ msgstr "Minute zu groß (0..59)"
+
+-#: src/lrz.c:363 src/lrz.c:370 src/lsz.c:500 src/lsz.c:507
++#: src/lsz.c:500 src/lsz.c:507 src/lrz.c:363 src/lrz.c:370
+ msgid "stop time to small"
+ msgstr "Stopzeit zu kurz"
+
+-#: src/lrz.c:368 src/lsz.c:505
++#: src/lsz.c:505 src/lrz.c:368
+ msgid "stop-at"
+ msgstr ""
+
+-#: src/lrz.c:399 src/lsz.c:516
++#: src/lsz.c:516 src/lrz.c:399
+ msgid "timeout"
+ msgstr "Timeout"
+
+-#: src/lrz.c:401 src/lsz.c:518
++#: src/lsz.c:518 src/lrz.c:401
+ msgid "timeout out of range 10..1000"
+ msgstr "Argument der Option t außerhalb des Bereichs 10..1000"
+
+-#: src/lrz.c:417 src/lsz.c:526
++#: src/lsz.c:526 src/lrz.c:417
+ msgid "security violation: can't do that under restricted shell\n"
+ msgstr "Sicherheitsverstoß: Ausführung unter eingeschränkter Shell verboten\n"
+
+-#: src/lrz.c:407 src/lsz.c:533
++#: src/lsz.c:533 src/lrz.c:407
+ msgid "window size"
+ msgstr "Fenstergröße"
+
+-#: src/lrz.c:432 src/lrz.c:439 src/lsz.c:556 src/lsz.c:563
++#: src/lsz.c:556 src/lsz.c:563 src/lrz.c:432 src/lrz.c:439
+ msgid "cannot turnoff syslog"
+ msgstr "kann syslogging nicht abschalten"
+
+-#: src/lrz.c:454 src/lsz.c:571
++#: src/lsz.c:571 src/lrz.c:454
+ msgid "startup delay"
+ msgstr "Startverzögerung"
+
++#: src/lsz.c:583 src/lsz.c:692 src/lsz.c:831 src/lsz.c:1080 src/zreadline.c:127
+ #: src/lrz.c:470 src/lrz.c:755 src/lrz.c:1117 src/lrz.c:1243 src/lrz.c:1300
+-#: src/lrz.c:1317 src/lrz.c:1332 src/lrz.c:1431 src/lsz.c:583 src/lsz.c:692
+-#: src/lsz.c:831 src/lsz.c:1080 src/zreadline.c:127
++#: src/lrz.c:1317 src/lrz.c:1332 src/lrz.c:1431
+ msgid "out of memory"
+ msgstr "Kein Speicher mehr frei"
+
+-#: src/lrz.c:480 src/lsz.c:595
++#: src/lsz.c:595 src/lrz.c:480
+ msgid "this program was never intended to be used setuid\n"
+ msgstr "dieses Programm darf nicht setuid laufen\n"
+
+@@ -120,14 +122,15 @@ msgid "need at least one file to send"
+ msgstr "es muß mindestens ein Name einer zu sendenden Datei angegeben werden"
+
+ #: src/lsz.c:628
++#, c-format
+ msgid "Can't send command in restricted mode\n"
+ msgstr "Im eingeschränkten Modus ist das Senden von Kommandos verboten\n"
+
+-#: src/lrz.c:524 src/lsz.c:655
++#: src/lsz.c:655 src/lrz.c:524
+ msgid "hostname too long\n"
+ msgstr "Hostname zu lang\n"
+
+-#: src/lrz.c:539 src/lsz.c:670
++#: src/lsz.c:670 src/lrz.c:539
+ msgid "illegal server address\n"
+ msgstr "Illegale Serveraddresse\n"
+
+@@ -135,11 +138,11 @@ msgstr "Illegale Serveraddresse\n"
+ msgid "can read only one file from stdin"
+ msgstr "kann nur eine Datei von der Standardeingabe lesen"
+
+-#: src/lrz.c:571 src/lsz.c:806
++#: src/lsz.c:806 src/lrz.c:571
+ msgid "Transfer incomplete\n"
+ msgstr "Übertragung nicht abgeschlossen\n"
+
+-#: src/lrz.c:573 src/lsz.c:808
++#: src/lsz.c:808 src/lrz.c:573
+ msgid "Transfer complete\n"
+ msgstr "Übertragung abgeschlossen\n"
+
+@@ -197,9 +200,9 @@ msgstr "Kann keine der angeforderten Dat
+ #: src/lsz.c:1028
+ #, c-format
+ msgid "security violation: not allowed to upload from %s"
+-msgstr "Sicherheitsverstoß: Ausführung unter eingeschränkter Shell verboten"
++msgstr "Sicherheitsverstoß: Ausführung unter %s verboten"
+
+-#: src/lrz.c:1392 src/lsz.c:1046
++#: src/lsz.c:1046 src/lrz.c:1392
+ #, c-format
+ msgid "cannot open %s"
+ msgstr "kann %s nicht öffnen"
+@@ -290,12 +293,12 @@ msgstr "Erhielt %02x als Sektorbestätigu
+ msgid "Retry Count Exceeded"
+ msgstr "Maximale Wiederholungsanzahl überschritten"
+
+-#: src/lrz.c:593 src/lsz.c:1521
++#: src/lsz.c:1521 src/lrz.c:593
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "`%s --help' gibt weitere Informationen.\n"
+
+-#: src/lrz.c:598 src/lsz.c:1526
++#: src/lsz.c:1526 src/lrz.c:598
+ #, c-format
+ msgid "%s version %s\n"
+ msgstr "%s Version %s\n"
+@@ -315,7 +318,7 @@ msgid "Send file(s) with ZMODEM/YMODEM/X
+ msgstr "Dateien mit ZMODEM/YMODEM/XMODEM übertragen\n"
+
+ # src/lrz.c:475 src/lsz.c:1330 xx
+-#: src/lrz.c:604 src/lsz.c:1534
++#: src/lsz.c:1534 src/lrz.c:604
+ msgid ""
+ " (X) = option applies to XMODEM only\n"
+ " (Y) = option applies to YMODEM only\n"
+@@ -431,7 +434,7 @@ msgstr ""
+ msgid "got ZRQINIT"
+ msgstr "erhielt ZRQINIT"
+
+-#: src/lrz.c:1074 src/lrz.c:1787 src/lsz.c:1792
++#: src/lsz.c:1792 src/lrz.c:1074 src/lrz.c:1787
+ msgid "got ZCAN"
+ msgstr "erhielt ZCAN"
+
+@@ -472,7 +475,7 @@ msgstr "calc_blklen: alt %ld, neu %ld, D
+ #: src/lsz.c:2272
+ #, c-format
+ msgid "calc_blklen: calc total_bytes=%ld, bpe=%ld, ec=%ld\n"
+-msgstr "calc_blklen: kalkuliere gesamt_bytes=%ld, bpe=%le, ec=%ld\n"
++msgstr "calc_blklen: kalkuliere gesamt_bytes=%ld, bpe=%ld, ec=%ld\n"
+
+ #: src/lsz.c:2283
+ #, c-format
+@@ -493,6 +496,10 @@ msgstr ""
+ "\n"
+ "countem: Gesamt %d %ld\n"
+
++#: src/zm.c:91
++msgid "Bad CRC"
++msgstr ""
++
+ #: src/zm.c:244
+ #, c-format
+ msgid "Bad escape sequence %x"
+@@ -502,7 +509,7 @@ msgstr "Falsche Escapesequenz %x"
+ msgid "Sender Canceled"
+ msgstr "Sender brach ab"
+
+-#: src/lrz.c:997 src/zm.c:585 src/zm.c:644
++#: src/zm.c:585 src/zm.c:644 src/lrz.c:997
+ msgid "TIMEOUT"
+ msgstr "TIMEOUT"
+
+@@ -772,13 +779,11 @@ msgstr "Erhielt unerwartetes ZRINIT"
+ msgid "Skipped"
+ msgstr "Übersprungen"
+
+-#. too bad
+ #: src/lrz.c:2064
+ #, c-format
+ msgid "rzfile: bps rate %ld below min %ld"
+ msgstr "rzfile: BPS-Rate %ld unter Minimum %ld"
+
+-#. too bad
+ #: src/lrz.c:2079
+ msgid "rzfile: reached stop time"
+ msgstr "rzfile: Abbruchzeit erreicht"
+diff -uprN clean/lrzsz-0.12.20/po/lrzsz.pot lrzsz-0.12.20/po/lrzsz.pot
+--- clean/lrzsz-0.12.20/po/lrzsz.pot 1998-12-30 07:50:00.000000000 +0000
++++ lrzsz-0.12.20/po/lrzsz.pot 2019-11-26 11:39:12.000000000 +0000
+@@ -1,24 +1,27 @@
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR Free Software Foundation, Inc.
++# This file is distributed under the same license as the lrzsz package.
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: PACKAGE VERSION\n"
+-"POT-Creation-Date: 1998-12-30 08:49+0100\n"
++"Project-Id-Version: lrzsz 0.12.20\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2019-11-26 11:39+0000\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
++"Language: \n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+-"Content-Transfer-Encoding: ENCODING\n"
++"Content-Transfer-Encoding: 8bit\n"
+
+ #: src/lsz.c:228
+ msgid "io_mode(,2) in rbsb.c not implemented\n"
+ msgstr ""
+
+-#: src/lrz.c:201 src/lsz.c:230
++#: src/lsz.c:230 src/lrz.c:201
+ #, c-format
+ msgid "caught signal %d; exiting"
+ msgstr ""
+@@ -45,7 +48,7 @@ msgstr ""
+ msgid "framelength out of range 32..%ld"
+ msgstr ""
+
+-#: src/lrz.c:323 src/lsz.c:450
++#: src/lsz.c:450 src/lrz.c:323
+ msgid "min_bps"
+ msgstr ""
+
+@@ -53,65 +56,65 @@ msgstr ""
+ msgid "min_bps must be >= 0"
+ msgstr ""
+
+-#: src/lrz.c:329 src/lsz.c:458
++#: src/lsz.c:458 src/lrz.c:329
+ msgid "min_bps_time"
+ msgstr ""
+
+-#: src/lrz.c:331 src/lsz.c:460
++#: src/lsz.c:460 src/lrz.c:331
+ msgid "min_bps_time must be > 1"
+ msgstr ""
+
+-#: src/lrz.c:347 src/lsz.c:484
++#: src/lsz.c:484 src/lrz.c:347
+ msgid "hour to large (0..23)"
+ msgstr ""
+
+-#: src/lrz.c:349 src/lsz.c:486
++#: src/lsz.c:486 src/lrz.c:349
+ msgid "unparsable stop time\n"
+ msgstr ""
+
+-#: src/lrz.c:353 src/lsz.c:490
++#: src/lsz.c:490 src/lrz.c:353
+ msgid "minute to large (0..59)"
+ msgstr ""
+
+-#: src/lrz.c:363 src/lrz.c:370 src/lsz.c:500 src/lsz.c:507
++#: src/lsz.c:500 src/lsz.c:507 src/lrz.c:363 src/lrz.c:370
+ msgid "stop time to small"
+ msgstr ""
+
+-#: src/lrz.c:368 src/lsz.c:505
++#: src/lsz.c:505 src/lrz.c:368
+ msgid "stop-at"
+ msgstr ""
+
+-#: src/lrz.c:399 src/lsz.c:516
++#: src/lsz.c:516 src/lrz.c:399
+ msgid "timeout"
+ msgstr ""
+
+-#: src/lrz.c:401 src/lsz.c:518
++#: src/lsz.c:518 src/lrz.c:401
+ msgid "timeout out of range 10..1000"
+ msgstr ""
+
+-#: src/lrz.c:417 src/lsz.c:526
++#: src/lsz.c:526 src/lrz.c:417
+ msgid "security violation: can't do that under restricted shell\n"
+ msgstr ""
+
+-#: src/lrz.c:407 src/lsz.c:533
++#: src/lsz.c:533 src/lrz.c:407
+ msgid "window size"
+ msgstr ""
+
+-#: src/lrz.c:432 src/lrz.c:439 src/lsz.c:556 src/lsz.c:563
++#: src/lsz.c:556 src/lsz.c:563 src/lrz.c:432 src/lrz.c:439
+ msgid "cannot turnoff syslog"
+ msgstr ""
+
+-#: src/lrz.c:454 src/lsz.c:571
++#: src/lsz.c:571 src/lrz.c:454
+ msgid "startup delay"
+ msgstr ""
+
++#: src/lsz.c:583 src/lsz.c:692 src/lsz.c:831 src/lsz.c:1080 src/zreadline.c:127
+ #: src/lrz.c:470 src/lrz.c:755 src/lrz.c:1117 src/lrz.c:1243 src/lrz.c:1300
+-#: src/lrz.c:1317 src/lrz.c:1332 src/lrz.c:1431 src/lsz.c:583 src/lsz.c:692
+-#: src/lsz.c:831 src/lsz.c:1080 src/zreadline.c:127
++#: src/lrz.c:1317 src/lrz.c:1332 src/lrz.c:1431
+ msgid "out of memory"
+ msgstr ""
+
+-#: src/lrz.c:480 src/lsz.c:595
++#: src/lsz.c:595 src/lrz.c:480
+ msgid "this program was never intended to be used setuid\n"
+ msgstr ""
+
+@@ -120,14 +123,15 @@ msgid "need at least one file to send"
+ msgstr ""
+
+ #: src/lsz.c:628
++#, c-format
+ msgid "Can't send command in restricted mode\n"
+ msgstr ""
+
+-#: src/lrz.c:524 src/lsz.c:655
++#: src/lsz.c:655 src/lrz.c:524
+ msgid "hostname too long\n"
+ msgstr ""
+
+-#: src/lrz.c:539 src/lsz.c:670
++#: src/lsz.c:670 src/lrz.c:539
+ msgid "illegal server address\n"
+ msgstr ""
+
+@@ -135,11 +139,11 @@ msgstr ""
+ msgid "can read only one file from stdin"
+ msgstr ""
+
+-#: src/lrz.c:571 src/lsz.c:806
++#: src/lsz.c:806 src/lrz.c:571
+ msgid "Transfer incomplete\n"
+ msgstr ""
+
+-#: src/lrz.c:573 src/lsz.c:808
++#: src/lsz.c:808 src/lrz.c:573
+ msgid "Transfer complete\n"
+ msgstr ""
+
+@@ -199,7 +203,7 @@ msgstr ""
+ msgid "security violation: not allowed to upload from %s"
+ msgstr ""
+
+-#: src/lrz.c:1392 src/lsz.c:1046
++#: src/lsz.c:1046 src/lrz.c:1392
+ #, c-format
+ msgid "cannot open %s"
+ msgstr ""
+@@ -290,12 +294,12 @@ msgstr ""
+ msgid "Retry Count Exceeded"
+ msgstr ""
+
+-#: src/lrz.c:593 src/lsz.c:1521
++#: src/lsz.c:1521 src/lrz.c:593
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr ""
+
+-#: src/lrz.c:598 src/lsz.c:1526
++#: src/lsz.c:1526 src/lrz.c:598
+ #, c-format
+ msgid "%s version %s\n"
+ msgstr ""
+@@ -314,7 +318,7 @@ msgstr ""
+ msgid "Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n"
+ msgstr ""
+
+-#: src/lrz.c:604 src/lsz.c:1534
++#: src/lsz.c:1534 src/lrz.c:604
+ msgid ""
+ " (X) = option applies to XMODEM only\n"
+ " (Y) = option applies to YMODEM only\n"
+@@ -378,7 +382,7 @@ msgstr ""
+ msgid "got ZRQINIT"
+ msgstr ""
+
+-#: src/lrz.c:1074 src/lrz.c:1787 src/lsz.c:1792
++#: src/lsz.c:1792 src/lrz.c:1074 src/lrz.c:1787
+ msgid "got ZCAN"
+ msgstr ""
+
+@@ -438,6 +442,10 @@ msgid ""
+ "countem: Total %d %ld\n"
+ msgstr ""
+
++#: src/zm.c:91
++msgid "Bad CRC"
++msgstr ""
++
+ #: src/zm.c:244
+ #, c-format
+ msgid "Bad escape sequence %x"
+@@ -447,7 +455,7 @@ msgstr ""
+ msgid "Sender Canceled"
+ msgstr ""
+
+-#: src/lrz.c:997 src/zm.c:585 src/zm.c:644
++#: src/zm.c:585 src/zm.c:644 src/lrz.c:997
+ msgid "TIMEOUT"
+ msgstr ""
+
+@@ -678,13 +686,11 @@ msgstr ""
+ msgid "Skipped"
+ msgstr ""
+
+-#. too bad
+ #: src/lrz.c:2064
+ #, c-format
+ msgid "rzfile: bps rate %ld below min %ld"
+ msgstr ""
+
+-#. too bad
+ #: src/lrz.c:2079
+ msgid "rzfile: reached stop time"
+ msgstr ""
+diff -uprN clean/lrzsz-0.12.20/po/Makevars lrzsz-0.12.20/po/Makevars
+--- clean/lrzsz-0.12.20/po/Makevars 1970-01-01 01:00:00.000000000 +0100
++++ lrzsz-0.12.20/po/Makevars 2019-11-25 18:09:52.000000000 +0000
+@@ -0,0 +1,78 @@
++# Makefile variables for PO directory in any package using GNU gettext.
++
++# Usually the message domain is the same as the package name.
++DOMAIN = $(PACKAGE)
++
++# These two variables depend on the location of this directory.
++subdir = po
++top_builddir = ..
++
++# These options get passed to xgettext.
++XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
++
++# This is the copyright holder that gets inserted into the header of the
++# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
++# package. (Note that the msgstr strings, extracted from the package's
++# sources, belong to the copyright holder of the package.) Translators are
++# expected to transfer the copyright for their translations to this person
++# or entity, or to disclaim their copyright. The empty string stands for
++# the public domain; in this case the translators are expected to disclaim
++# their copyright.
++COPYRIGHT_HOLDER = Free Software Foundation, Inc.
++
++# This tells whether or not to prepend "GNU " prefix to the package
++# name that gets inserted into the header of the $(DOMAIN).pot file.
++# Possible values are "yes", "no", or empty. If it is empty, try to
++# detect it automatically by scanning the files in $(top_srcdir) for
++# "GNU packagename" string.
++PACKAGE_GNU =
++
++# This is the email address or URL to which the translators shall report
++# bugs in the untranslated strings:
++# - Strings which are not entire sentences, see the maintainer guidelines
++# in the GNU gettext documentation, section 'Preparing Strings'.
++# - Strings which use unclear terms or require additional context to be
++# understood.
++# - Strings which make invalid assumptions about notation of date, time or
++# money.
++# - Pluralisation problems.
++# - Incorrect English spelling.
++# - Incorrect formatting.
++# It can be your email address, or a mailing list address where translators
++# can write to without being subscribed, or the URL of a web page through
++# which the translators can contact you.
++MSGID_BUGS_ADDRESS =
++
++# This is the list of locale categories, beyond LC_MESSAGES, for which the
++# message catalogs shall be used. It is usually empty.
++EXTRA_LOCALE_CATEGORIES =
++
++# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
++# context. Possible values are "yes" and "no". Set this to yes if the
++# package uses functions taking also a message context, like pgettext(), or
++# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
++USE_MSGCTXT = no
++
++# These options get passed to msgmerge.
++# Useful options are in particular:
++# --previous to keep previous msgids of translated messages,
++# --quiet to reduce the verbosity.
++MSGMERGE_OPTIONS =
++
++# These options get passed to msginit.
++# If you want to disable line wrapping when writing PO files, add
++# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
++# MSGINIT_OPTIONS.
++MSGINIT_OPTIONS =
++
++# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
++# has changed. Possible values are "yes" and "no". Set this to no if
++# the POT file is checked in the repository and the version control
++# program ignores timestamps.
++PO_DEPENDS_ON_POT = yes
++
++# This tells whether or not to forcibly update $(DOMAIN).pot and
++# regenerate PO files on "make dist". Possible values are "yes" and
++# "no". Set this to no if the POT file and PO files are maintained
++# externally.
++DIST_DEPENDS_ON_UPDATE_PO = yes
+diff -uprN clean/lrzsz-0.12.20/po/stamp-cat-id lrzsz-0.12.20/po/stamp-cat-id
+--- clean/lrzsz-0.12.20/po/stamp-cat-id 1998-12-30 07:50:01.000000000 +0000
++++ lrzsz-0.12.20/po/stamp-cat-id 1970-01-01 01:00:00.000000000 +0100
+@@ -1 +0,0 @@
+-timestamp
+diff -uprN clean/lrzsz-0.12.20/po/stamp-po lrzsz-0.12.20/po/stamp-po
+--- clean/lrzsz-0.12.20/po/stamp-po 1970-01-01 01:00:00.000000000 +0100
++++ lrzsz-0.12.20/po/stamp-po 2019-11-26 11:42:09.000000000 +0000
+@@ -0,0 +1 @@
++timestamp
+diff -uprN clean/lrzsz-0.12.20/src/Makefile.am lrzsz-0.12.20/src/Makefile.am
+--- clean/lrzsz-0.12.20/src/Makefile.am 1998-12-28 08:38:47.000000000 +0000
++++ lrzsz-0.12.20/src/Makefile.am 2019-11-25 16:22:49.000000000 +0000
+@@ -2,13 +2,11 @@ bin_PROGRAMS=lrz lsz
+ lrz_SOURCES=lrz.c timing.c zperr.c zreadline.c crctab.c rbsb.c zm.c protname.c tcp.c lsyslog.c canit.c
+ lsz_SOURCES=lsz.c timing.c zperr.c zreadline.c crctab.c rbsb.c zm.c protname.c tcp.c lsyslog.c canit.c
+ noinst_HEADERS = timing.h zglobal.h zmodem.h
+-datadir = $(prefix)/@DATADIRNAME@
++datadir = $(prefix)/share
+ localedir = $(datadir)/locale
+-CFLAGS=@CFLAGS@
+ DISTCLEAN_FILES=lrzszbug
+
+-LDADD = ../lib/libzmodem.a @INTLLIBS@
+-AUTOMAKE_OPTIONS=ansi2knr
++LDADD = ../lib/libzmodem.a @LIBINTL@
+ EXTRA_DIST = ansi2knr.1 ansi2knr.c lrzszbug.in
+ INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/src -I../intl -I$(top_srcdir)/lib
+ #DEFS = -DLOCALEDIR=\"$(localedir)\" -DOS=\"@host_os@\" -DCPU=\"@host_cpu@\"
+diff -uprN clean/lrzsz-0.12.20/src/zglobal.h lrzsz-0.12.20/src/zglobal.h
+--- clean/lrzsz-0.12.20/src/zglobal.h 1998-12-29 12:34:59.000000000 +0000
++++ lrzsz-0.12.20/src/zglobal.h 2019-11-25 16:32:42.000000000 +0000
+@@ -180,9 +180,6 @@ struct termios;
+ #if HAVE_LOCALE_H
+ # include <locale.h>
+ #endif
+-#if !HAVE_SETLOCALE
+-# define setlocale(Category, Locale) /* empty */
+-#endif
+
+ #if ENABLE_NLS
+ # include <libintl.h>
+diff -uprN clean/lrzsz-0.12.20/stamp-h.in lrzsz-0.12.20/stamp-h.in
+--- clean/lrzsz-0.12.20/stamp-h.in 1998-12-30 07:51:07.000000000 +0000
++++ lrzsz-0.12.20/stamp-h.in 1970-01-01 01:00:00.000000000 +0100
+@@ -1 +0,0 @@
+-timestamp
diff --git a/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/gettext.patch b/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/gettext.patch
deleted file mode 100644
index 1a24a1f05e..0000000000
--- a/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/gettext.patch
+++ /dev/null
@@ -1,21884 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
---- lrzsz-0.12.20.safe/ABOUT-NLS 1998-04-26 09:22:30.000000000 -0400
-+++ lrzsz-0.12.20/ABOUT-NLS 2004-09-12 14:40:34.323752952 -0400
-@@ -1,14 +1,14 @@
- Notes on the Free Translation Project
- *************************************
-
-- Free software is going international! The Free Translation Project
--is a way to get maintainers of free software, translators, and users all
-+Free software is going international! The Free Translation Project is
-+a way to get maintainers of free software, translators, and users all
- together, so that will gradually become able to speak many languages.
- A few packages already provide translations for their messages.
-
- If you found this `ABOUT-NLS' file inside a distribution, you may
- assume that the distributed package does use GNU `gettext' internally,
--itself available at your nearest GNU archive site. But you do *not*
-+itself available at your nearest GNU archive site. But you do _not_
- need to install GNU `gettext' prior to configuring, installing or using
- this package with messages translated.
-
-@@ -22,10 +22,10 @@
- `gettext' which is used. The information can be found in the
- `intl/VERSION' file, in internationalized packages.
-
--One advise in advance
--=====================
-+Quick configuration advice
-+==========================
-
-- If you want to exploit the full power of internationalization, you
-+If you want to exploit the full power of internationalization, you
- should configure it using
-
- ./configure --with-included-gettext
-@@ -34,42 +34,40 @@
- package, despite the existence of internationalizing capabilities in the
- operating system where this package is being installed. So far, only
- the `gettext' implementation in the GNU C library version 2 provides as
--many features (such as locale alias or message inheritance) as the
--implementation here. It is also not possible to offer this additional
--functionality on top of a `catgets' implementation. Future versions of
--GNU `gettext' will very likely convey even more functionality. So it
--might be a good idea to change to GNU `gettext' as soon as possible.
-+many features (such as locale alias, message inheritance, automatic
-+charset conversion or plural form handling) as the implementation here.
-+It is also not possible to offer this additional functionality on top
-+of a `catgets' implementation. Future versions of GNU `gettext' will
-+very likely convey even more functionality. So it might be a good idea
-+to change to GNU `gettext' as soon as possible.
-
-- So you need not provide this option if you are using GNU libc 2 or
-+ So you need _not_ provide this option if you are using GNU libc 2 or
- you have installed a recent copy of the GNU gettext package with the
- included `libintl'.
-
- INSTALL Matters
- ===============
-
-- Some packages are "localizable" when properly installed; the
--programs they contain can be made to speak your own native language.
--Most such packages use GNU `gettext'. Other packages have their own
--ways to internationalization, predating GNU `gettext'.
-+Some packages are "localizable" when properly installed; the programs
-+they contain can be made to speak your own native language. Most such
-+packages use GNU `gettext'. Other packages have their own ways to
-+internationalization, predating GNU `gettext'.
-
- By default, this package will be installed to allow translation of
--messages. It will automatically detect whether the system provides
--usable `catgets' (if using this is selected by the installer) or
--`gettext' functions. If neither is available, the GNU `gettext' own
-+messages. It will automatically detect whether the system already
-+provides the GNU `gettext' functions. If not, the GNU `gettext' own
- library will be used. This library is wholly contained within this
- package, usually in the `intl/' subdirectory, so prior installation of
--the GNU `gettext' package is *not* required. Installers may use
-+the GNU `gettext' package is _not_ required. Installers may use
- special options at configuration time for changing the default
- behaviour. The commands:
-
- ./configure --with-included-gettext
-- ./configure --with-catgets
- ./configure --disable-nls
-
--will respectively bypass any pre-existing `catgets' or `gettext' to use
--the internationalizing routines provided within this package, enable
--the use of the `catgets' functions (if found on the locale system), or
--else, *totally* disable translation of messages.
-+will respectively bypass any pre-existing `gettext' to use the
-+internationalizing routines provided within this package, or else,
-+_totally_ disable translation of messages.
-
- When you already have GNU `gettext' installed on your system and run
- configure without an option for your new package, `configure' will
-@@ -83,18 +81,10 @@
-
- to prevent auto-detection.
-
-- By default the configuration process will not test for the `catgets'
--function and therefore they will not be used. The reasons are already
--given above: the emulation on top of `catgets' cannot provide all the
--extensions provided by the GNU `gettext' library. If you nevertheless
--want to use the `catgets' functions use
--
-- ./configure --with-catgets
--
--to enable the test for `catgets' (this causes no harm if `catgets' is
--not available on your system). If you really select this option we
--would like to hear about the reasons because we cannot think of any
--good one ourself.
-+ The configuration process will not test for the `catgets' function
-+and therefore it will not be used. The reason is that even an
-+emulation of `gettext' on top of `catgets' could not provide all the
-+extensions of the GNU `gettext' library.
-
- Internationalized packages have usually many `po/LL.po' files, where
- LL gives an ISO 639 two-letter code identifying the language. Unless
-@@ -108,57 +98,73 @@
- Using This Package
- ==================
-
-- As a user, if your language has been installed for this package, you
-+As a user, if your language has been installed for this package, you
- only have to set the `LANG' environment variable to the appropriate
--ISO 639 `LL' two-letter code prior to using the programs in the
--package. For example, let's suppose that you speak German. At the
--shell prompt, merely execute `setenv LANG de' (in `csh'),
--`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
--can be done from your `.login' or `.profile' file, once and for all.
-+`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
-+and `CC' is an ISO 3166 two-letter country code. For example, let's
-+suppose that you speak German and live in Germany. At the shell
-+prompt, merely execute `setenv LANG de_DE' (in `csh'),
-+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
-+This can be done from your `.login' or `.profile' file, once and for
-+all.
-
-- An operating system might already offer message localization for
--many of its programs, while other programs have been installed locally
--with the full capabilities of GNU `gettext'. Just using `gettext'
--extended syntax for `LANG' would break proper localization of already
--available operating system programs. In this case, users should set
--both `LANGUAGE' and `LANG' variables in their environment, as programs
--using GNU `gettext' give preference to `LANGUAGE'. For example, some
--Swedish users would rather read translations in German than English for
--when Swedish is not available. This is easily accomplished by setting
--`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
-+ You might think that the country code specification is redundant.
-+But in fact, some languages have dialects in different countries. For
-+example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
-+country code serves to distinguish the dialects.
-+
-+ The locale naming convention of `LL_CC', with `LL' denoting the
-+language and `CC' denoting the country, is the one use on systems based
-+on GNU libc. On other systems, some variations of this scheme are
-+used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
-+locales supported by your system for your country by running the command
-+`locale -a | grep '^LL''.
-+
-+ Not all programs have translations for all languages. By default, an
-+English message is shown in place of a nonexistent translation. If you
-+understand other languages, you can set up a priority list of languages.
-+This is done through a different environment variable, called
-+`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
-+for the purpose of message handling, but you still need to have `LANG'
-+set to the primary language; this is required by other parts of the
-+system libraries. For example, some Swedish users who would rather
-+read translations in German than English for when Swedish is not
-+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
-+
-+ Special advice for Norwegian users: The language code for Norwegian
-+bokma*l changed from `no' to `nb' recently (in 2003). During the
-+transition period, while some message catalogs for this language are
-+installed under `nb' and some older ones under `no', it's recommended
-+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
-+older translations are used.
-+
-+ In the `LANGUAGE' environment variable, but not in the `LANG'
-+environment variable, `LL_CC' combinations can be abbreviated as `LL'
-+to denote the language's main dialect. For example, `de' is equivalent
-+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
-+(Portuguese as spoken in Portugal) in this context.
-
- Translating Teams
- =================
-
-- For the Free Translation Project to be a success, we need interested
-+For the Free Translation Project to be a success, we need interested
- people who like their own language and write it well, and who are also
- able to synergize with other translators speaking the same language.
--Each translation team has its own mailing list, courtesy of Linux
--International. You may reach your translation team at the address
--`LL@li.org', replacing LL by the two-letter ISO 639 code for your
--language. Language codes are *not* the same as the country codes given
--in ISO 3166. The following translation teams exist, as of August 1997:
--
-- Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
-- Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
-- `hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
-- Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
-- `pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
-- Swedish `sv', and Turkish `tr'.
--
--For example, you may reach the Chinese translation team by writing to
--`zh@li.org'.
-+Each translation team has its own mailing list. The up-to-date list of
-+teams can be found at the Free Translation Project's homepage,
-+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
-+area.
-
-- If you'd like to volunteer to *work* at translating messages, you
-+ If you'd like to volunteer to _work_ at translating messages, you
- should become a member of the translating team for your own language.
--The subscribing address is *not* the same as the list itself, it has
-+The subscribing address is _not_ the same as the list itself, it has
- `-request' appended. For example, speakers of Swedish can send a
- message to `sv-request@li.org', having this message body:
-
- subscribe
-
- Keep in mind that team members are expected to participate
--*actively* in translations, or at solving translational difficulties,
-+_actively_ in translations, or at solving translational difficulties,
- rather than merely lurking around. If your team does not exist yet and
- you want to start one, or if you are unsure about what to do or how to
- get started, please write to `translation@iro.umontreal.ca' to reach the
-@@ -171,43 +177,559 @@
- Available Packages
- ==================
-
-- Languages are not equally supported in all packages. The following
--matrix shows the current state of internationalization, as of August
--1997. The matrix shows, in regard of each package, for which languages
--PO files have been submitted to translation coordination.
-+Languages are not equally supported in all packages. The following
-+matrix shows the current state of internationalization, as of January
-+2004. The matrix shows, in regard of each package, for which languages
-+PO files have been submitted to translation coordination, with a
-+translation percentage of at least 50%.
-
-- Ready PO files cs da de en es fi fr it ja ko nl no pl pt sl sv
-- .-------------------------------------------------.
-- bash | [] [] [] | 3
-- bison | [] [] [] | 3
-- clisp | [] [] [] [] | 4
-- cpio | [] [] [] [] [] | 5
-- diffutils | [] [] [] [] [] | 5
-- enscript | [] [] [] [] [] [] | 6
-- fileutils | [] [] [] [] [] [] [] [] [] [] | 10
-- findutils | [] [] [] [] [] [] [] [] | 8
-- flex | [] [] [] [] | 4
-- gcal | [] [] [] [] [] | 5
-- gettext | [] [] [] [] [] [] [] [] [] [] | 11
-- grep | [] [] [] [] [] [] [] [] [] | 9
-- hello | [] [] [] [] [] [] [] [] [] [] | 10
-- id-utils | [] [] [] | 3
-- indent | [] [] [] [] | 4
-- libc | [] [] [] [] [] [] [] | 7
-- m4 | [] [] [] [] [] | 5
-- make | [] [] [] [] [] [] | 6
-- music | [] [] | 2
-- ptx | [] [] [] [] [] [] [] [] | 8
-- recode | [] [] [] [] [] [] [] [] [] | 9
-- sh-utils | [] [] [] [] [] [] [] | 7
-- sharutils | [] [] [] [] [] | 5
-- tar | [] [] [] [] [] [] [] [] [] [] | 10
-- texinfo | [] | 1
-- textutils | [] [] [] [] [] [] [] [] [] | 9
-- wdiff | [] [] [] [] [] [] [] [] | 8
-- `-------------------------------------------------'
-- 16 languages cs da de en es fi fr it ja ko nl no pl pt sl sv
-- 27 packages 3 2 24 1 17 1 26 2 1 11 20 9 19 7 7 17 167
-+ Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es
-+ +----------------------------------------------------+
-+ a2ps | [] [] [] [] |
-+ aegis | () |
-+ ant-phone | () |
-+ anubis | |
-+ ap-utils | |
-+ aspell | [] |
-+ bash | [] [] [] [] |
-+ batchelor | |
-+ bfd | [] [] |
-+ binutils | [] [] |
-+ bison | [] [] [] |
-+ bluez-pin | [] [] [] |
-+ clisp | |
-+ clisp | [] [] [] |
-+ console-tools | [] [] |
-+ coreutils | [] [] [] [] |
-+ cpio | [] [] [] |
-+ darkstat | [] () [] |
-+ diffutils | [] [] [] [] [] [] [] |
-+ e2fsprogs | [] [] [] |
-+ enscript | [] [] [] [] |
-+ error | [] [] [] [] [] |
-+ fetchmail | [] () [] [] [] [] |
-+ fileutils | [] [] [] |
-+ findutils | [] [] [] [] [] [] [] |
-+ flex | [] [] [] [] |
-+ fslint | |
-+ gas | [] |
-+ gawk | [] [] [] [] |
-+ gbiff | [] |
-+ gcal | [] |
-+ gcc | [] [] |
-+ gettext | [] [] [] [] [] |
-+ gettext-examples | [] [] [] [] |
-+ gettext-runtime | [] [] [] [] [] |
-+ gettext-tools | [] [] [] |
-+ gimp-print | [] [] [] [] [] |
-+ gliv | |
-+ glunarclock | [] [] |
-+ gnubiff | [] |
-+ gnucash | [] () [] [] |
-+ gnucash-glossary | [] () [] |
-+ gnupg | [] () [] [] [] [] |
-+ gpe-aerial | [] |
-+ gpe-beam | [] [] |
-+ gpe-calendar | [] [] |
-+ gpe-clock | [] [] |
-+ gpe-conf | [] [] |
-+ gpe-contacts | [] [] |
-+ gpe-edit | [] |
-+ gpe-go | [] |
-+ gpe-login | [] [] |
-+ gpe-ownerinfo | [] [] |
-+ gpe-sketchbook | [] [] |
-+ gpe-su | [] [] |
-+ gpe-taskmanager | [] [] |
-+ gpe-timesheet | [] |
-+ gpe-today | [] [] |
-+ gpe-todo | [] [] |
-+ gphoto2 | [] [] [] [] |
-+ gprof | [] [] [] |
-+ gpsdrive | () () () |
-+ gramadoir | [] |
-+ grep | [] [] [] [] [] [] |
-+ gretl | [] |
-+ gtick | [] () |
-+ hello | [] [] [] [] [] [] |
-+ id-utils | [] [] |
-+ indent | [] [] [] [] |
-+ iso_3166 | [] [] [] [] [] [] [] [] [] [] |
-+ iso_3166_1 | [] [] [] [] [] [] |
-+ iso_3166_2 | |
-+ iso_3166_3 | [] |
-+ iso_4217 | [] [] [] [] |
-+ iso_639 | |
-+ jpilot | [] [] [] |
-+ jtag | |
-+ jwhois | [] |
-+ kbd | [] [] [] [] [] |
-+ latrine | () |
-+ ld | [] [] |
-+ libc | [] [] [] [] [] [] |
-+ libgpewidget | [] [] |
-+ libiconv | [] [] [] [] [] |
-+ lifelines | [] () |
-+ lilypond | [] |
-+ lingoteach | |
-+ lingoteach_lessons | () () |
-+ lynx | [] [] [] [] |
-+ m4 | [] [] [] [] |
-+ mailutils | [] [] |
-+ make | [] [] [] |
-+ man-db | [] () [] [] () |
-+ minicom | [] [] [] |
-+ mysecretdiary | [] [] [] |
-+ nano | [] () [] [] [] |
-+ nano_1_0 | [] () [] [] [] |
-+ opcodes | [] |
-+ parted | [] [] [] [] [] |
-+ ptx | [] [] [] [] [] |
-+ python | |
-+ radius | [] |
-+ recode | [] [] [] [] [] [] [] |
-+ rpm | [] [] |
-+ screem | |
-+ scrollkeeper | [] [] [] [] [] [] |
-+ sed | [] [] [] [] [] [] |
-+ sh-utils | [] [] [] |
-+ shared-mime-info | |
-+ sharutils | [] [] [] [] [] [] |
-+ silky | () |
-+ skencil | [] () [] |
-+ sketch | [] () [] |
-+ soundtracker | [] [] [] |
-+ sp | [] |
-+ tar | [] [] [] [] |
-+ texinfo | [] [] [] |
-+ textutils | [] [] [] [] |
-+ tin | () () |
-+ tp-robot | |
-+ tuxpaint | [] [] [] [] [] [] [] |
-+ unicode-han-tra... | |
-+ unicode-transla... | |
-+ util-linux | [] [] [] [] [] |
-+ vorbis-tools | [] [] [] [] |
-+ wastesedge | () |
-+ wdiff | [] [] [] [] |
-+ wget | [] [] [] [] [] [] |
-+ xchat | [] [] [] [] |
-+ xfree86_xkb_xml | [] [] |
-+ xpad | [] |
-+ +----------------------------------------------------+
-+ af am ar az be bg bs ca cs da de el en en_GB eo es
-+ 4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68
-+
-+ et eu fa fi fr ga gl he hr hu id is it ja ko lg
-+ +-------------------------------------------------+
-+ a2ps | [] [] [] () () |
-+ aegis | |
-+ ant-phone | [] |
-+ anubis | [] |
-+ ap-utils | [] |
-+ aspell | [] [] |
-+ bash | [] [] |
-+ batchelor | [] [] |
-+ bfd | [] |
-+ binutils | [] [] |
-+ bison | [] [] [] [] |
-+ bluez-pin | [] [] [] [] [] |
-+ clisp | |
-+ clisp | [] |
-+ console-tools | |
-+ coreutils | [] [] [] [] [] [] |
-+ cpio | [] [] [] [] |
-+ darkstat | () [] [] [] |
-+ diffutils | [] [] [] [] [] [] [] |
-+ e2fsprogs | |
-+ enscript | [] [] |
-+ error | [] [] [] [] |
-+ fetchmail | [] |
-+ fileutils | [] [] [] [] [] [] |
-+ findutils | [] [] [] [] [] [] [] [] [] [] [] |
-+ flex | [] [] [] |
-+ fslint | [] |
-+ gas | [] |
-+ gawk | [] [] [] |
-+ gbiff | [] |
-+ gcal | [] |
-+ gcc | [] |
-+ gettext | [] [] [] |
-+ gettext-examples | [] [] |
-+ gettext-runtime | [] [] [] [] [] |
-+ gettext-tools | [] [] [] |
-+ gimp-print | [] [] |
-+ gliv | () |
-+ glunarclock | [] [] [] [] |
-+ gnubiff | [] |
-+ gnucash | () [] |
-+ gnucash-glossary | [] |
-+ gnupg | [] [] [] [] [] [] [] |
-+ gpe-aerial | [] |
-+ gpe-beam | [] |
-+ gpe-calendar | [] [] [] |
-+ gpe-clock | [] |
-+ gpe-conf | [] |
-+ gpe-contacts | [] [] |
-+ gpe-edit | [] [] |
-+ gpe-go | [] |
-+ gpe-login | [] [] |
-+ gpe-ownerinfo | [] [] [] |
-+ gpe-sketchbook | [] |
-+ gpe-su | [] |
-+ gpe-taskmanager | [] |
-+ gpe-timesheet | [] [] [] |
-+ gpe-today | [] [] |
-+ gpe-todo | [] [] |
-+ gphoto2 | [] [] [] |
-+ gprof | [] [] |
-+ gpsdrive | () () () |
-+ gramadoir | [] [] |
-+ grep | [] [] [] [] [] [] [] [] [] [] [] |
-+ gretl | [] [] |
-+ gtick | [] [] [] |
-+ hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
-+ id-utils | [] [] [] [] |
-+ indent | [] [] [] [] [] [] [] [] [] |
-+ iso_3166 | [] [] [] [] [] [] [] |
-+ iso_3166_1 | [] [] [] [] [] |
-+ iso_3166_2 | |
-+ iso_3166_3 | |
-+ iso_4217 | [] [] [] [] [] [] |
-+ iso_639 | |
-+ jpilot | [] () |
-+ jtag | [] |
-+ jwhois | [] [] [] [] |
-+ kbd | [] |
-+ latrine | [] |
-+ ld | [] |
-+ libc | [] [] [] [] [] [] |
-+ libgpewidget | [] [] [] [] |
-+ libiconv | [] [] [] [] [] [] [] [] [] |
-+ lifelines | () |
-+ lilypond | [] |
-+ lingoteach | [] [] |
-+ lingoteach_lessons | |
-+ lynx | [] [] [] [] |
-+ m4 | [] [] [] [] |
-+ mailutils | |
-+ make | [] [] [] [] [] [] |
-+ man-db | () () |
-+ minicom | [] [] [] [] |
-+ mysecretdiary | [] [] |
-+ nano | [] [] [] [] |
-+ nano_1_0 | [] [] [] [] |
-+ opcodes | [] |
-+ parted | [] [] [] |
-+ ptx | [] [] [] [] [] [] [] |
-+ python | |
-+ radius | [] |
-+ recode | [] [] [] [] [] [] |
-+ rpm | [] [] |
-+ screem | |
-+ scrollkeeper | [] |
-+ sed | [] [] [] [] [] [] [] [] [] |
-+ sh-utils | [] [] [] [] [] [] [] |
-+ shared-mime-info | [] [] [] |
-+ sharutils | [] [] [] [] [] |
-+ silky | () [] () () |
-+ skencil | [] |
-+ sketch | [] |
-+ soundtracker | [] [] |
-+ sp | [] () |
-+ tar | [] [] [] [] [] [] [] [] [] |
-+ texinfo | [] [] [] [] |
-+ textutils | [] [] [] [] [] [] |
-+ tin | [] () |
-+ tp-robot | [] |
-+ tuxpaint | [] [] [] [] [] [] [] [] [] |
-+ unicode-han-tra... | |
-+ unicode-transla... | [] [] |
-+ util-linux | [] [] [] [] () [] |
-+ vorbis-tools | [] |
-+ wastesedge | () |
-+ wdiff | [] [] [] [] [] [] |
-+ wget | [] [] [] [] [] [] [] |
-+ xchat | [] [] [] |
-+ xfree86_xkb_xml | [] [] |
-+ xpad | [] [] |
-+ +-------------------------------------------------+
-+ et eu fa fi fr ga gl he hr hu id is it ja ko lg
-+ 22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0
-+
-+ lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
-+ +-----------------------------------------------------+
-+ a2ps | [] [] () () [] [] [] |
-+ aegis | () () () |
-+ ant-phone | [] [] |
-+ anubis | [] [] [] [] [] [] |
-+ ap-utils | [] () [] |
-+ aspell | [] |
-+ bash | [] [] [] |
-+ batchelor | [] |
-+ bfd | [] |
-+ binutils | [] |
-+ bison | [] [] [] [] [] |
-+ bluez-pin | [] [] [] |
-+ clisp | |
-+ clisp | [] |
-+ console-tools | [] |
-+ coreutils | [] [] |
-+ cpio | [] [] [] [] [] |
-+ darkstat | [] [] [] [] |
-+ diffutils | [] [] [] [] [] [] |
-+ e2fsprogs | [] |
-+ enscript | [] [] [] [] |
-+ error | [] [] [] |
-+ fetchmail | [] [] () [] |
-+ fileutils | [] [] [] |
-+ findutils | [] [] [] [] [] |
-+ flex | [] [] [] [] |
-+ fslint | [] [] |
-+ gas | |
-+ gawk | [] [] [] |
-+ gbiff | [] [] |
-+ gcal | |
-+ gcc | |
-+ gettext | [] [] [] |
-+ gettext-examples | [] [] [] |
-+ gettext-runtime | [] [] [] [] |
-+ gettext-tools | [] [] |
-+ gimp-print | [] |
-+ gliv | [] [] [] |
-+ glunarclock | [] [] [] [] |
-+ gnubiff | [] |
-+ gnucash | [] [] () [] |
-+ gnucash-glossary | [] [] |
-+ gnupg | [] |
-+ gpe-aerial | [] [] [] [] |
-+ gpe-beam | [] [] [] [] |
-+ gpe-calendar | [] [] [] [] |
-+ gpe-clock | [] [] [] [] |
-+ gpe-conf | [] [] [] [] |
-+ gpe-contacts | [] [] [] [] |
-+ gpe-edit | [] [] [] [] |
-+ gpe-go | [] [] [] |
-+ gpe-login | [] [] [] [] |
-+ gpe-ownerinfo | [] [] [] [] |
-+ gpe-sketchbook | [] [] [] [] |
-+ gpe-su | [] [] [] [] |
-+ gpe-taskmanager | [] [] [] [] |
-+ gpe-timesheet | [] [] [] [] |
-+ gpe-today | [] [] [] [] |
-+ gpe-todo | [] [] [] [] |
-+ gphoto2 | [] |
-+ gprof | [] [] |
-+ gpsdrive | () () [] |
-+ gramadoir | () [] |
-+ grep | [] [] [] [] [] |
-+ gretl | |
-+ gtick | [] [] [] |
-+ hello | [] [] [] [] [] [] [] [] [] [] |
-+ id-utils | [] [] [] [] |
-+ indent | [] [] [] [] |
-+ iso_3166 | [] [] [] |
-+ iso_3166_1 | [] [] |
-+ iso_3166_2 | |
-+ iso_3166_3 | [] |
-+ iso_4217 | [] [] [] [] [] [] [] [] |
-+ iso_639 | [] |
-+ jpilot | () () |
-+ jtag | |
-+ jwhois | [] [] [] [] () |
-+ kbd | [] [] [] |
-+ latrine | [] |
-+ ld | |
-+ libc | [] [] [] [] |
-+ libgpewidget | [] [] [] |
-+ libiconv | [] [] [] [] [] |
-+ lifelines | |
-+ lilypond | |
-+ lingoteach | |
-+ lingoteach_lessons | |
-+ lynx | [] [] [] |
-+ m4 | [] [] [] [] [] |
-+ mailutils | [] [] [] |
-+ make | [] [] [] [] |
-+ man-db | [] |
-+ minicom | [] [] [] [] |
-+ mysecretdiary | [] [] [] |
-+ nano | [] [] [] [] [] |
-+ nano_1_0 | [] [] [] [] [] [] |
-+ opcodes | [] [] |
-+ parted | [] [] [] [] |
-+ ptx | [] [] [] [] [] [] [] [] |
-+ python | |
-+ radius | [] [] |
-+ recode | [] [] [] [] |
-+ rpm | [] [] [] |
-+ screem | |
-+ scrollkeeper | [] [] [] [] [] |
-+ sed | [] [] [] |
-+ sh-utils | [] [] |
-+ shared-mime-info | [] [] |
-+ sharutils | [] [] |
-+ silky | () |
-+ skencil | [] [] |
-+ sketch | [] [] |
-+ soundtracker | |
-+ sp | |
-+ tar | [] [] [] [] [] [] |
-+ texinfo | [] [] [] [] |
-+ textutils | [] [] |
-+ tin | |
-+ tp-robot | [] |
-+ tuxpaint | [] [] [] [] [] [] [] [] |
-+ unicode-han-tra... | |
-+ unicode-transla... | |
-+ util-linux | [] [] [] |
-+ vorbis-tools | [] [] [] |
-+ wastesedge | |
-+ wdiff | [] [] [] [] [] |
-+ wget | [] [] [] |
-+ xchat | [] [] [] |
-+ xfree86_xkb_xml | [] [] |
-+ xpad | [] [] |
-+ +-----------------------------------------------------+
-+ lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
-+ 1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63
-+
-+ sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
-+ +-----------------------------------------------------+
-+ a2ps | [] [] [] [] | 16
-+ aegis | | 0
-+ ant-phone | | 3
-+ anubis | [] [] | 9
-+ ap-utils | () | 3
-+ aspell | | 4
-+ bash | | 9
-+ batchelor | | 3
-+ bfd | [] [] | 6
-+ binutils | [] [] [] | 8
-+ bison | [] [] | 14
-+ bluez-pin | [] [] [] | 14
-+ clisp | | 0
-+ clisp | | 5
-+ console-tools | | 3
-+ coreutils | [] [] [] [] | 16
-+ cpio | [] [] | 14
-+ darkstat | [] [] [] () () | 12
-+ diffutils | [] [] [] | 23
-+ e2fsprogs | [] [] | 6
-+ enscript | [] [] | 12
-+ error | [] [] [] | 15
-+ fetchmail | [] [] | 11
-+ fileutils | [] [] [] [] [] | 17
-+ findutils | [] [] [] [] [] [] | 29
-+ flex | [] [] | 13
-+ fslint | | 3
-+ gas | [] | 3
-+ gawk | [] [] | 12
-+ gbiff | | 4
-+ gcal | [] [] | 4
-+ gcc | [] | 4
-+ gettext | [] [] [] [] [] | 16
-+ gettext-examples | [] [] [] [] [] | 14
-+ gettext-runtime | [] [] [] [] [] [] [] [] | 22
-+ gettext-tools | [] [] [] [] [] [] | 14
-+ gimp-print | [] [] | 10
-+ gliv | | 3
-+ glunarclock | [] [] [] | 13
-+ gnubiff | | 3
-+ gnucash | [] [] | 9
-+ gnucash-glossary | [] [] [] | 8
-+ gnupg | [] [] [] [] | 17
-+ gpe-aerial | [] | 7
-+ gpe-beam | [] | 8
-+ gpe-calendar | [] [] [] [] | 13
-+ gpe-clock | [] [] [] | 10
-+ gpe-conf | [] [] | 9
-+ gpe-contacts | [] [] [] | 11
-+ gpe-edit | [] [] [] [] [] | 12
-+ gpe-go | | 5
-+ gpe-login | [] [] [] [] [] | 13
-+ gpe-ownerinfo | [] [] [] [] | 13
-+ gpe-sketchbook | [] [] | 9
-+ gpe-su | [] [] [] | 10
-+ gpe-taskmanager | [] [] [] | 10
-+ gpe-timesheet | [] [] [] [] | 12
-+ gpe-today | [] [] [] [] [] | 13
-+ gpe-todo | [] [] [] [] | 12
-+ gphoto2 | [] [] [] | 11
-+ gprof | [] [] | 9
-+ gpsdrive | [] [] | 3
-+ gramadoir | [] | 5
-+ grep | [] [] [] [] | 26
-+ gretl | | 3
-+ gtick | | 7
-+ hello | [] [] [] [] [] | 34
-+ id-utils | [] [] | 12
-+ indent | [] [] [] [] | 21
-+ iso_3166 | [] [] [] [] [] [] [] | 27
-+ iso_3166_1 | [] [] [] | 16
-+ iso_3166_2 | | 0
-+ iso_3166_3 | | 2
-+ iso_4217 | [] [] [] [] [] [] | 24
-+ iso_639 | | 1
-+ jpilot | [] [] [] [] [] | 9
-+ jtag | [] | 2
-+ jwhois | () [] [] | 11
-+ kbd | [] [] | 11
-+ latrine | | 2
-+ ld | [] [] | 5
-+ libc | [] [] [] [] | 20
-+ libgpewidget | [] [] [] [] | 13
-+ libiconv | [] [] [] [] [] [] [] [] | 27
-+ lifelines | [] | 2
-+ lilypond | [] | 3
-+ lingoteach | | 2
-+ lingoteach_lessons | () | 0
-+ lynx | [] [] [] | 14
-+ m4 | [] [] | 15
-+ mailutils | | 5
-+ make | [] [] [] | 16
-+ man-db | [] | 5
-+ minicom | | 11
-+ mysecretdiary | [] [] | 10
-+ nano | [] [] [] [] | 17
-+ nano_1_0 | [] [] [] | 17
-+ opcodes | [] [] | 6
-+ parted | [] [] [] | 15
-+ ptx | [] [] | 22
-+ python | | 0
-+ radius | | 4
-+ recode | [] [] [] | 20
-+ rpm | [] [] | 9
-+ screem | [] [] | 2
-+ scrollkeeper | [] [] [] | 15
-+ sed | [] [] [] [] [] [] | 24
-+ sh-utils | [] [] | 14
-+ shared-mime-info | [] [] | 7
-+ sharutils | [] [] [] [] | 17
-+ silky | () | 3
-+ skencil | [] | 6
-+ sketch | [] | 6
-+ soundtracker | [] [] | 7
-+ sp | [] | 3
-+ tar | [] [] [] [] [] | 24
-+ texinfo | [] [] [] | 14
-+ textutils | [] [] [] [] | 16
-+ tin | | 1
-+ tp-robot | | 2
-+ tuxpaint | [] [] [] [] [] | 29
-+ unicode-han-tra... | | 0
-+ unicode-transla... | | 2
-+ util-linux | [] [] | 15
-+ vorbis-tools | | 8
-+ wastesedge | | 0
-+ wdiff | [] [] [] | 18
-+ wget | [] [] [] [] [] [] [] [] | 24
-+ xchat | [] [] [] [] [] | 15
-+ xfree86_xkb_xml | [] [] [] [] [] | 11
-+ xpad | | 5
-+ +-----------------------------------------------------+
-+ 63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
-+ 131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373
-
- Some counters in the preceding matrix are higher than the number of
- visible blocks let us expect. This is because a few extra PO files are
-@@ -220,6 +742,27 @@
- lag between the mere existence a PO file and its wide availability in a
- distribution.
-
-- If August 1997 seems to be old, you may fetch a more recent copy of
--this `ABOUT-NLS' file on most GNU archive sites.
-+ If January 2004 seems to be old, you may fetch a more recent copy of
-+this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
-+matrix with full percentage details can be found at
-+`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
-+
-+Using `gettext' in new packages
-+===============================
-+
-+If you are writing a freely available program and want to
-+internationalize it you are welcome to use GNU `gettext' in your
-+package. Of course you have to respect the GNU Library General Public
-+License which covers the use of the GNU `gettext' library. This means
-+in particular that even non-free programs can use `libintl' as a shared
-+library, whereas only free software can use `libintl' as a static
-+library or use modified versions of `libintl'.
-+
-+ Once the sources are changed appropriately and the setup can handle
-+the use of `gettext' the only thing missing are the translations. The
-+Free Translation Project is also available for packages which are not
-+developed inside the GNU project. Therefore the information given above
-+applies also for every other Free Software Project. Contact
-+`translation@iro.umontreal.ca' to make the `.pot' files available to
-+the translation teams.
-
---- lrzsz-0.12.20.safe/ChangeLog 1998-12-29 17:49:56.000000000 -0500
-+++ lrzsz-0.12.20/ChangeLog 2004-09-12 14:40:35.846521456 -0400
-@@ -1,3 +1,11 @@
-+2004-09-12 gettextize <bug-gnu-gettext@gnu.org>
-+
-+ * Makefile.am (ACLOCAL_AMFLAGS): New variable.
-+ (EXTRA_DIST): Add config.rpath.
-+ * configure.in (AC_OUTPUT): Add m4/Makefile.
-+ (AC_OUTPUT): Remove command that created po/Makefile.
-+ (AC_LINK_FILES): Remove invocation.
-+
- 1998-12-29 Uwe Ohse <uwe@ohse.de>
-
- * src/lrz.c: removed stpcpy call.
---- lrzsz-0.12.20.safe/config.rpath 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/config.rpath 2004-09-12 14:40:34.329752040 -0400
-@@ -0,0 +1,548 @@
-+#! /bin/sh
-+# Output a system dependent set of variables, describing how to set the
-+# run time search path of shared libraries in an executable.
-+#
-+# Copyright 1996-2003 Free Software Foundation, Inc.
-+# Taken from GNU libtool, 2001
-+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-+#
-+# 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.
-+#
-+# As a special exception to the GNU General Public License, if you
-+# distribute this file as part of a program that contains a
-+# configuration script generated by Autoconf, you may include it under
-+# the same distribution terms that you use for the rest of that program.
-+#
-+# The first argument passed to this file is the canonical host specification,
-+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-+# or
-+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
-+# should be set by the caller.
-+#
-+# The set of defined variables is at the end of this script.
-+
-+# Known limitations:
-+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
-+# than 256 bytes, otherwise the compiler driver will dump core. The only
-+# known workaround is to choose shorter directory names for the build
-+# directory and/or the installation directory.
-+
-+# All known linkers require a `.a' archive for static linking (except M$VC,
-+# which needs '.lib').
-+libext=a
-+shrext=.so
-+
-+host="$1"
-+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+
-+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
-+
-+wl=
-+if test "$GCC" = yes; then
-+ wl='-Wl,'
-+else
-+ case "$host_os" in
-+ aix*)
-+ wl='-Wl,'
-+ ;;
-+ mingw* | pw32* | os2*)
-+ ;;
-+ hpux9* | hpux10* | hpux11*)
-+ wl='-Wl,'
-+ ;;
-+ irix5* | irix6* | nonstopux*)
-+ wl='-Wl,'
-+ ;;
-+ newsos6)
-+ ;;
-+ linux*)
-+ case $CC in
-+ icc|ecc)
-+ wl='-Wl,'
-+ ;;
-+ ccc)
-+ wl='-Wl,'
-+ ;;
-+ esac
-+ ;;
-+ osf3* | osf4* | osf5*)
-+ wl='-Wl,'
-+ ;;
-+ sco3.2v5*)
-+ ;;
-+ solaris*)
-+ wl='-Wl,'
-+ ;;
-+ sunos4*)
-+ wl='-Qoption ld '
-+ ;;
-+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-+ wl='-Wl,'
-+ ;;
-+ sysv4*MP*)
-+ ;;
-+ uts4*)
-+ ;;
-+ esac
-+fi
-+
-+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
-+
-+hardcode_libdir_flag_spec=
-+hardcode_libdir_separator=
-+hardcode_direct=no
-+hardcode_minus_L=no
-+
-+case "$host_os" in
-+ cygwin* | mingw* | pw32*)
-+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
-+ # When not using gcc, we currently assume that we are using
-+ # Microsoft Visual C++.
-+ if test "$GCC" != yes; then
-+ with_gnu_ld=no
-+ fi
-+ ;;
-+ openbsd*)
-+ with_gnu_ld=no
-+ ;;
-+esac
-+
-+ld_shlibs=yes
-+if test "$with_gnu_ld" = yes; then
-+ case "$host_os" in
-+ aix3* | aix4* | aix5*)
-+ # On AIX/PPC, the GNU linker is very broken
-+ if test "$host_cpu" != ia64; then
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ amigaos*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_minus_L=yes
-+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-+ # that the semantics of dynamic libraries on AmigaOS, at least up
-+ # to version 4, is to share data among multiple programs linked
-+ # with the same dynamic library. Since this doesn't match the
-+ # behavior of shared libraries on other platforms, we can use
-+ # them.
-+ ld_shlibs=no
-+ ;;
-+ beos*)
-+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ cygwin* | mingw* | pw32*)
-+ # hardcode_libdir_flag_spec is actually meaningless, as there is
-+ # no search path for DLLs.
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ netbsd*)
-+ ;;
-+ solaris* | sysv5*)
-+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-+ ld_shlibs=no
-+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ sunos4*)
-+ hardcode_direct=yes
-+ ;;
-+ *)
-+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ esac
-+ if test "$ld_shlibs" = yes; then
-+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
-+ # option of GNU ld is called -rpath, not --rpath.
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ fi
-+else
-+ case "$host_os" in
-+ aix3*)
-+ # Note: this linker hardcodes the directories in LIBPATH if there
-+ # are no directories specified by -L.
-+ hardcode_minus_L=yes
-+ if test "$GCC" = yes; then
-+ # Neither direct hardcoding nor static linking is supported with a
-+ # broken collect2.
-+ hardcode_direct=unsupported
-+ fi
-+ ;;
-+ aix4* | aix5*)
-+ if test "$host_cpu" = ia64; then
-+ # On IA64, the linker does run time linking by default, so we don't
-+ # have to do anything special.
-+ aix_use_runtimelinking=no
-+ else
-+ aix_use_runtimelinking=no
-+ # Test if we are trying to use run time linking or normal
-+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-+ # need to do runtime linking.
-+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-+ for ld_flag in $LDFLAGS; do
-+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-+ aix_use_runtimelinking=yes
-+ break
-+ fi
-+ done
-+ esac
-+ fi
-+ hardcode_direct=yes
-+ hardcode_libdir_separator=':'
-+ if test "$GCC" = yes; then
-+ case $host_os in aix4.[012]|aix4.[012].*)
-+ collect2name=`${CC} -print-prog-name=collect2`
-+ if test -f "$collect2name" && \
-+ strings "$collect2name" | grep resolve_lib_name >/dev/null
-+ then
-+ # We have reworked collect2
-+ hardcode_direct=yes
-+ else
-+ # We have old collect2
-+ hardcode_direct=unsupported
-+ hardcode_minus_L=yes
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_libdir_separator=
-+ fi
-+ esac
-+ fi
-+ # Begin _LT_AC_SYS_LIBPATH_AIX.
-+ echo 'int main () { return 0; }' > conftest.c
-+ ${CC} ${LDFLAGS} conftest.c -o conftest
-+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-+}'`
-+ if test -z "$aix_libpath"; then
-+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-+}'`
-+ fi
-+ if test -z "$aix_libpath"; then
-+ aix_libpath="/usr/lib:/lib"
-+ fi
-+ rm -f conftest.c conftest
-+ # End _LT_AC_SYS_LIBPATH_AIX.
-+ if test "$aix_use_runtimelinking" = yes; then
-+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-+ else
-+ if test "$host_cpu" = ia64; then
-+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-+ else
-+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-+ fi
-+ fi
-+ ;;
-+ amigaos*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_minus_L=yes
-+ # see comment about different semantics on the GNU ld section
-+ ld_shlibs=no
-+ ;;
-+ bsdi4*)
-+ ;;
-+ cygwin* | mingw* | pw32*)
-+ # 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=' '
-+ libext=lib
-+ ;;
-+ darwin* | rhapsody*)
-+ if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
-+ hardcode_direct=no
-+ fi
-+ ;;
-+ dgux*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ ;;
-+ freebsd1*)
-+ ld_shlibs=no
-+ ;;
-+ freebsd2.2*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ hardcode_direct=yes
-+ ;;
-+ freebsd2*)
-+ hardcode_direct=yes
-+ hardcode_minus_L=yes
-+ ;;
-+ freebsd*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ hardcode_direct=yes
-+ ;;
-+ hpux9*)
-+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ hardcode_direct=yes
-+ # hardcode_minus_L: Not really in the search PATH,
-+ # but as the default location of the library.
-+ hardcode_minus_L=yes
-+ ;;
-+ hpux10* | hpux11*)
-+ if test "$with_gnu_ld" = no; then
-+ case "$host_cpu" in
-+ hppa*64*)
-+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ hardcode_direct=no
-+ ;;
-+ ia64*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_direct=no
-+ # hardcode_minus_L: Not really in the search PATH,
-+ # but as the default location of the library.
-+ hardcode_minus_L=yes
-+ ;;
-+ *)
-+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ hardcode_direct=yes
-+ # hardcode_minus_L: Not really in the search PATH,
-+ # but as the default location of the library.
-+ hardcode_minus_L=yes
-+ ;;
-+ esac
-+ fi
-+ ;;
-+ irix5* | irix6* | nonstopux*)
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ ;;
-+ netbsd*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ hardcode_direct=yes
-+ ;;
-+ newsos6)
-+ hardcode_direct=yes
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ ;;
-+ openbsd*)
-+ hardcode_direct=yes
-+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-+ else
-+ case "$host_os" in
-+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ ;;
-+ *)
-+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-+ ;;
-+ esac
-+ fi
-+ ;;
-+ os2*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_minus_L=yes
-+ ;;
-+ osf3*)
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ ;;
-+ osf4* | osf5*)
-+ if test "$GCC" = yes; then
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ else
-+ # Both cc and cxx compiler support -rpath directly
-+ hardcode_libdir_flag_spec='-rpath $libdir'
-+ fi
-+ hardcode_libdir_separator=:
-+ ;;
-+ sco3.2v5*)
-+ ;;
-+ solaris*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ ;;
-+ sunos4*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_direct=yes
-+ hardcode_minus_L=yes
-+ ;;
-+ sysv4)
-+ case $host_vendor in
-+ sni)
-+ hardcode_direct=yes # is this really true???
-+ ;;
-+ siemens)
-+ hardcode_direct=no
-+ ;;
-+ motorola)
-+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-+ ;;
-+ esac
-+ ;;
-+ sysv4.3*)
-+ ;;
-+ sysv4*MP*)
-+ if test -d /usr/nec; then
-+ ld_shlibs=yes
-+ fi
-+ ;;
-+ sysv4.2uw2*)
-+ hardcode_direct=yes
-+ hardcode_minus_L=no
-+ ;;
-+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
-+ ;;
-+ sysv5*)
-+ hardcode_libdir_flag_spec=
-+ ;;
-+ uts4*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ ;;
-+ *)
-+ ld_shlibs=no
-+ ;;
-+ esac
-+fi
-+
-+# Check dynamic linker characteristics
-+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
-+libname_spec='lib$name'
-+case "$host_os" in
-+ aix3*)
-+ ;;
-+ aix4* | aix5*)
-+ ;;
-+ amigaos*)
-+ ;;
-+ beos*)
-+ ;;
-+ bsdi4*)
-+ ;;
-+ cygwin* | mingw* | pw32*)
-+ shrext=.dll
-+ ;;
-+ darwin* | rhapsody*)
-+ shrext=.dylib
-+ ;;
-+ dgux*)
-+ ;;
-+ freebsd1*)
-+ ;;
-+ freebsd*)
-+ ;;
-+ gnu*)
-+ ;;
-+ hpux9* | hpux10* | hpux11*)
-+ case "$host_cpu" in
-+ ia64*)
-+ shrext=.so
-+ ;;
-+ hppa*64*)
-+ shrext=.sl
-+ ;;
-+ *)
-+ shrext=.sl
-+ ;;
-+ esac
-+ ;;
-+ irix5* | irix6* | nonstopux*)
-+ case "$host_os" in
-+ irix5* | nonstopux*)
-+ libsuff= shlibsuff=
-+ ;;
-+ *)
-+ case $LD in
-+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
-+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
-+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
-+ *) libsuff= shlibsuff= ;;
-+ esac
-+ ;;
-+ esac
-+ ;;
-+ linux*oldld* | linux*aout* | linux*coff*)
-+ ;;
-+ linux*)
-+ ;;
-+ netbsd*)
-+ ;;
-+ newsos6)
-+ ;;
-+ nto-qnx)
-+ ;;
-+ openbsd*)
-+ ;;
-+ os2*)
-+ libname_spec='$name'
-+ shrext=.dll
-+ ;;
-+ osf3* | osf4* | osf5*)
-+ ;;
-+ sco3.2v5*)
-+ ;;
-+ solaris*)
-+ ;;
-+ sunos4*)
-+ ;;
-+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-+ ;;
-+ sysv4*MP*)
-+ ;;
-+ uts4*)
-+ ;;
-+esac
-+
-+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
-+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
-+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-+
-+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
-+
-+# How to pass a linker flag through the compiler.
-+wl="$escaped_wl"
-+
-+# Static library suffix (normally "a").
-+libext="$libext"
-+
-+# Shared library suffix (normally "so").
-+shlibext="$shlibext"
-+
-+# Flag to hardcode \$libdir into a binary during linking.
-+# This must work even if \$libdir does not exist.
-+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
-+
-+# Whether we need a single -rpath flag with a separated argument.
-+hardcode_libdir_separator="$hardcode_libdir_separator"
-+
-+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-+# resulting binary.
-+hardcode_direct="$hardcode_direct"
-+
-+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-+# resulting binary.
-+hardcode_minus_L="$hardcode_minus_L"
-+
-+EOF
---- lrzsz-0.12.20.safe/configure.in 2004-09-12 14:39:55.161706488 -0400
-+++ lrzsz-0.12.20/configure.in 2004-09-12 14:40:35.816526016 -0400
-@@ -260,11 +260,10 @@
- AM_GNU_GETTEXT
-
- AC_DEFINE_UNQUOTED(LOCALEDIR,"$prefix/$DATADIRNAME")
--AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
-
--AC_OUTPUT([Makefile intl/Makefile lib/Makefile testsuite/Makefile \
-+AC_OUTPUT([Makefile intl/Makefile lib/Makefile testsuite/Makefile m4/Makefile \
- man/Makefile po/Makefile.in src/Makefile debian/rules Specfile systype \
- src/lrzszbug],
--[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile;
-+[
- chmod +x debian/rules;
- test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h])
---- lrzsz-0.12.20.safe/intl/bindtextdom.c 1998-04-26 09:22:36.000000000 -0400
-+++ lrzsz-0.12.20/intl/bindtextdom.c 2004-09-12 14:40:34.343749912 -0400
-@@ -1,59 +1,75 @@
- /* Implementation of the bindtextdomain(3) function
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-+ Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
--#if defined STDC_HEADERS || defined _LIBC
--# include <stdlib.h>
--#else
--# ifdef HAVE_MALLOC_H
--# include <malloc.h>
--# else
--void free ();
--# endif
--#endif
-+#include <stddef.h>
-+#include <stdlib.h>
-+#include <string.h>
-
--#if defined HAVE_STRING_H || defined _LIBC
--# include <string.h>
-+#ifdef _LIBC
-+# include <libintl.h>
- #else
--# include <strings.h>
--# ifndef memcpy
--# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
--# endif
-+# include "libgnuintl.h"
- #endif
-+#include "gettextP.h"
-
- #ifdef _LIBC
--# include <libintl.h>
-+/* We have to handle multi-threaded applications. */
-+# include <bits/libc-lock.h>
- #else
--# include "libgettext.h"
-+/* Provide dummy implementation if this is outside glibc. */
-+# define __libc_rwlock_define(CLASS, NAME)
-+# define __libc_rwlock_wrlock(NAME)
-+# define __libc_rwlock_unlock(NAME)
-+#endif
-+
-+/* The internal variables in the standalone libintl.a must have different
-+ names than the internal variables in GNU libc, otherwise programs
-+ using libintl.a cannot be linked statically. */
-+#if !defined _LIBC
-+# define _nl_default_dirname libintl_nl_default_dirname
-+# define _nl_domain_bindings libintl_nl_domain_bindings
-+#endif
-+
-+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
-+#ifndef offsetof
-+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
- #endif
--#include "gettext.h"
--#include "gettextP.h"
-
- /* @@ end of prolog @@ */
-
- /* Contains the default location of the message catalogs. */
- extern const char _nl_default_dirname[];
-+#ifdef _LIBC
-+extern const char _nl_default_dirname_internal[] attribute_hidden;
-+#else
-+# define INTUSE(name) name
-+#endif
-
- /* List with bindings of specific domains. */
- extern struct binding *_nl_domain_bindings;
-
-+/* Lock variable to protect the global data in the gettext implementation. */
-+__libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
-+
-
- /* Names for the libintl functions are a problem. They must not clash
- with existing names and they should follow ANSI C. But this source
-@@ -61,23 +77,41 @@
- prefix. So we have to make a difference here. */
- #ifdef _LIBC
- # define BINDTEXTDOMAIN __bindtextdomain
--# define strdup(str) __strdup (str)
-+# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset
-+# ifndef strdup
-+# define strdup(str) __strdup (str)
-+# endif
- #else
--# define BINDTEXTDOMAIN bindtextdomain__
-+# define BINDTEXTDOMAIN libintl_bindtextdomain
-+# define BIND_TEXTDOMAIN_CODESET libintl_bind_textdomain_codeset
- #endif
-
--/* Specify that the DOMAINNAME message catalog will be found
-- in DIRNAME rather than in the system locale data base. */
--char *
--BINDTEXTDOMAIN (domainname, dirname)
-- const char *domainname;
-- const char *dirname;
-+/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
-+ to be used for the DOMAINNAME message catalog.
-+ If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
-+ modified, only the current value is returned.
-+ If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
-+ modified nor returned. */
-+static void
-+set_binding_values (const char *domainname,
-+ const char **dirnamep, const char **codesetp)
- {
- struct binding *binding;
-+ int modified;
-
- /* Some sanity checks. */
- if (domainname == NULL || domainname[0] == '\0')
-- return NULL;
-+ {
-+ if (dirnamep)
-+ *dirnamep = NULL;
-+ if (codesetp)
-+ *codesetp = NULL;
-+ return;
-+ }
-+
-+ __libc_rwlock_wrlock (_nl_state_lock);
-+
-+ modified = 0;
-
- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
- {
-@@ -93,81 +127,173 @@
- }
- }
-
-- if (dirname == NULL)
-- /* The current binding has be to returned. */
-- return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
--
- if (binding != NULL)
- {
-- /* The domain is already bound. If the new value and the old
-- one are equal we simply do nothing. Otherwise replace the
-- old binding. */
-- if (strcmp (dirname, binding->dirname) != 0)
-+ if (dirnamep)
- {
-- char *new_dirname;
-+ const char *dirname = *dirnamep;
-
-- if (strcmp (dirname, _nl_default_dirname) == 0)
-- new_dirname = (char *) _nl_default_dirname;
-+ if (dirname == NULL)
-+ /* The current binding has be to returned. */
-+ *dirnamep = binding->dirname;
- else
- {
-+ /* The domain is already bound. If the new value and the old
-+ one are equal we simply do nothing. Otherwise replace the
-+ old binding. */
-+ char *result = binding->dirname;
-+ if (strcmp (dirname, result) != 0)
-+ {
-+ if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0)
-+ result = (char *) INTUSE(_nl_default_dirname);
-+ else
-+ {
- #if defined _LIBC || defined HAVE_STRDUP
-- new_dirname = strdup (dirname);
-- if (new_dirname == NULL)
-- return NULL;
-+ result = strdup (dirname);
- #else
-- size_t len = strlen (dirname) + 1;
-- new_dirname = (char *) malloc (len);
-- if (new_dirname == NULL)
-- return NULL;
--
-- memcpy (new_dirname, dirname, len);
-+ size_t len = strlen (dirname) + 1;
-+ result = (char *) malloc (len);
-+ if (__builtin_expect (result != NULL, 1))
-+ memcpy (result, dirname, len);
- #endif
-+ }
-+
-+ if (__builtin_expect (result != NULL, 1))
-+ {
-+ if (binding->dirname != INTUSE(_nl_default_dirname))
-+ free (binding->dirname);
-+
-+ binding->dirname = result;
-+ modified = 1;
-+ }
-+ }
-+ *dirnamep = result;
- }
-+ }
-
-- if (binding->dirname != _nl_default_dirname)
-- free (binding->dirname);
-+ if (codesetp)
-+ {
-+ const char *codeset = *codesetp;
-
-- binding->dirname = new_dirname;
-+ if (codeset == NULL)
-+ /* The current binding has be to returned. */
-+ *codesetp = binding->codeset;
-+ else
-+ {
-+ /* The domain is already bound. If the new value and the old
-+ one are equal we simply do nothing. Otherwise replace the
-+ old binding. */
-+ char *result = binding->codeset;
-+ if (result == NULL || strcmp (codeset, result) != 0)
-+ {
-+#if defined _LIBC || defined HAVE_STRDUP
-+ result = strdup (codeset);
-+#else
-+ size_t len = strlen (codeset) + 1;
-+ result = (char *) malloc (len);
-+ if (__builtin_expect (result != NULL, 1))
-+ memcpy (result, codeset, len);
-+#endif
-+
-+ if (__builtin_expect (result != NULL, 1))
-+ {
-+ if (binding->codeset != NULL)
-+ free (binding->codeset);
-+
-+ binding->codeset = result;
-+ binding->codeset_cntr++;
-+ modified = 1;
-+ }
-+ }
-+ *codesetp = result;
-+ }
- }
- }
-+ else if ((dirnamep == NULL || *dirnamep == NULL)
-+ && (codesetp == NULL || *codesetp == NULL))
-+ {
-+ /* Simply return the default values. */
-+ if (dirnamep)
-+ *dirnamep = INTUSE(_nl_default_dirname);
-+ if (codesetp)
-+ *codesetp = NULL;
-+ }
- else
- {
- /* We have to create a new binding. */
-- size_t len;
-+ size_t len = strlen (domainname) + 1;
- struct binding *new_binding =
-- (struct binding *) malloc (sizeof (*new_binding));
-+ (struct binding *) malloc (offsetof (struct binding, domainname) + len);
-
-- if (new_binding == NULL)
-- return NULL;
-+ if (__builtin_expect (new_binding == NULL, 0))
-+ goto failed;
-
-+ memcpy (new_binding->domainname, domainname, len);
-+
-+ if (dirnamep)
-+ {
-+ const char *dirname = *dirnamep;
-+
-+ if (dirname == NULL)
-+ /* The default value. */
-+ dirname = INTUSE(_nl_default_dirname);
-+ else
-+ {
-+ if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0)
-+ dirname = INTUSE(_nl_default_dirname);
-+ else
-+ {
-+ char *result;
- #if defined _LIBC || defined HAVE_STRDUP
-- new_binding->domainname = strdup (domainname);
-- if (new_binding->domainname == NULL)
-- return NULL;
-+ result = strdup (dirname);
-+ if (__builtin_expect (result == NULL, 0))
-+ goto failed_dirname;
- #else
-- len = strlen (domainname) + 1;
-- new_binding->domainname = (char *) malloc (len);
-- if (new_binding->domainname == NULL)
-- return NULL;
-- memcpy (new_binding->domainname, domainname, len);
-+ size_t len = strlen (dirname) + 1;
-+ result = (char *) malloc (len);
-+ if (__builtin_expect (result == NULL, 0))
-+ goto failed_dirname;
-+ memcpy (result, dirname, len);
- #endif
--
-- if (strcmp (dirname, _nl_default_dirname) == 0)
-- new_binding->dirname = (char *) _nl_default_dirname;
-+ dirname = result;
-+ }
-+ }
-+ *dirnamep = dirname;
-+ new_binding->dirname = (char *) dirname;
-+ }
- else
-+ /* The default value. */
-+ new_binding->dirname = (char *) INTUSE(_nl_default_dirname);
-+
-+ new_binding->codeset_cntr = 0;
-+
-+ if (codesetp)
- {
-+ const char *codeset = *codesetp;
-+
-+ if (codeset != NULL)
-+ {
-+ char *result;
-+
- #if defined _LIBC || defined HAVE_STRDUP
-- new_binding->dirname = strdup (dirname);
-- if (new_binding->dirname == NULL)
-- return NULL;
-+ result = strdup (codeset);
-+ if (__builtin_expect (result == NULL, 0))
-+ goto failed_codeset;
- #else
-- len = strlen (dirname) + 1;
-- new_binding->dirname = (char *) malloc (len);
-- if (new_binding->dirname == NULL)
-- return NULL;
-- memcpy (new_binding->dirname, dirname, len);
-+ size_t len = strlen (codeset) + 1;
-+ result = (char *) malloc (len);
-+ if (__builtin_expect (result == NULL, 0))
-+ goto failed_codeset;
-+ memcpy (result, codeset, len);
- #endif
-+ codeset = result;
-+ new_binding->codeset_cntr++;
-+ }
-+ *codesetp = codeset;
-+ new_binding->codeset = (char *) codeset;
- }
-+ else
-+ new_binding->codeset = NULL;
-
- /* Now enqueue it. */
- if (_nl_domain_bindings == NULL
-@@ -187,13 +313,51 @@
- binding->next = new_binding;
- }
-
-- binding = new_binding;
-+ modified = 1;
-+
-+ /* Here we deal with memory allocation failures. */
-+ if (0)
-+ {
-+ failed_codeset:
-+ if (new_binding->dirname != INTUSE(_nl_default_dirname))
-+ free (new_binding->dirname);
-+ failed_dirname:
-+ free (new_binding);
-+ failed:
-+ if (dirnamep)
-+ *dirnamep = NULL;
-+ if (codesetp)
-+ *codesetp = NULL;
-+ }
- }
-
-- return binding->dirname;
-+ /* If we modified any binding, we flush the caches. */
-+ if (modified)
-+ ++_nl_msg_cat_cntr;
-+
-+ __libc_rwlock_unlock (_nl_state_lock);
-+}
-+
-+/* Specify that the DOMAINNAME message catalog will be found
-+ in DIRNAME rather than in the system locale data base. */
-+char *
-+BINDTEXTDOMAIN (const char *domainname, const char *dirname)
-+{
-+ set_binding_values (domainname, &dirname, NULL);
-+ return (char *) dirname;
-+}
-+
-+/* Specify the character encoding in which the messages from the
-+ DOMAINNAME message catalog will be returned. */
-+char *
-+BIND_TEXTDOMAIN_CODESET (const char *domainname, const char *codeset)
-+{
-+ set_binding_values (domainname, NULL, &codeset);
-+ return (char *) codeset;
- }
-
- #ifdef _LIBC
--/* Alias for function name in GNU C Library. */
-+/* Aliases for function names in GNU C Library. */
- weak_alias (__bindtextdomain, bindtextdomain);
-+weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset);
- #endif
---- lrzsz-0.12.20.safe/intl/cat-compat.c 1998-04-26 09:22:37.000000000 -0400
-+++ lrzsz-0.12.20/intl/cat-compat.c 1969-12-31 19:00:00.000000000 -0500
-@@ -1,262 +0,0 @@
--/* Compatibility code for gettext-using-catgets interface.
-- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
--
-- 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, 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. */
--
--#ifdef HAVE_CONFIG_H
--# include <config.h>
--#endif
--
--#include <stdio.h>
--
--#ifdef STDC_HEADERS
--# include <stdlib.h>
--# include <string.h>
--#else
--char *getenv ();
--# ifdef HAVE_MALLOC_H
--# include <malloc.h>
--# endif
--#endif
--
--#ifdef HAVE_NL_TYPES_H
--# include <nl_types.h>
--#endif
--
--#include "libgettext.h"
--
--/* @@ end of prolog @@ */
--
--/* XPG3 defines the result of `setlocale (category, NULL)' as:
-- ``Directs `setlocale()' to query `category' and return the current
-- setting of `local'.''
-- However it does not specify the exact format. And even worse: POSIX
-- defines this not at all. So we can use this feature only on selected
-- system (e.g. those using GNU C Library). */
--#ifdef _LIBC
--# define HAVE_LOCALE_NULL
--#endif
--
--/* The catalog descriptor. */
--static nl_catd catalog = (nl_catd) -1;
--
--/* Name of the default catalog. */
--static const char default_catalog_name[] = "messages";
--
--/* Name of currently used catalog. */
--static const char *catalog_name = default_catalog_name;
--
--/* Get ID for given string. If not found return -1. */
--static int msg_to_cat_id PARAMS ((const char *msg));
--
--/* Substitution for systems lacking this function in their C library. */
--#if !_LIBC && !HAVE_STPCPY
--static char *stpcpy PARAMS ((char *dest, const char *src));
--#endif
--
--
--/* Set currently used domain/catalog. */
--char *
--textdomain (domainname)
-- const char *domainname;
--{
-- nl_catd new_catalog;
-- char *new_name;
-- size_t new_name_len;
-- char *lang;
--
--#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
-- && defined HAVE_LOCALE_NULL
-- lang = setlocale (LC_MESSAGES, NULL);
--#else
-- lang = getenv ("LC_ALL");
-- if (lang == NULL || lang[0] == '\0')
-- {
-- lang = getenv ("LC_MESSAGES");
-- if (lang == NULL || lang[0] == '\0')
-- lang = getenv ("LANG");
-- }
--#endif
-- if (lang == NULL || lang[0] == '\0')
-- lang = "C";
--
-- /* See whether name of currently used domain is asked. */
-- if (domainname == NULL)
-- return (char *) catalog_name;
--
-- if (domainname[0] == '\0')
-- domainname = default_catalog_name;
--
-- /* Compute length of added path element. */
-- new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
-- + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
-- + sizeof (".cat");
--
-- new_name = (char *) malloc (new_name_len);
-- if (new_name == NULL)
-- return NULL;
--
-- strcpy (new_name, PACKAGE);
-- new_catalog = catopen (new_name, 0);
--
-- if (new_catalog == (nl_catd) -1)
-- {
-- /* NLSPATH search didn't work, try absolute path */
-- sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
-- PACKAGE);
-- new_catalog = catopen (new_name, 0);
--
-- if (new_catalog == (nl_catd) -1)
-- {
-- free (new_name);
-- return (char *) catalog_name;
-- }
-- }
--
-- /* Close old catalog. */
-- if (catalog != (nl_catd) -1)
-- catclose (catalog);
-- if (catalog_name != default_catalog_name)
-- free ((char *) catalog_name);
--
-- catalog = new_catalog;
-- catalog_name = new_name;
--
-- return (char *) catalog_name;
--}
--
--char *
--bindtextdomain (domainname, dirname)
-- const char *domainname;
-- const char *dirname;
--{
--#if HAVE_SETENV || HAVE_PUTENV
-- char *old_val, *new_val, *cp;
-- size_t new_val_len;
--
-- /* This does not make much sense here but to be compatible do it. */
-- if (domainname == NULL)
-- return NULL;
--
-- /* Compute length of added path element. If we use setenv we don't need
-- the first byts for NLSPATH=, but why complicate the code for this
-- peanuts. */
-- new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
-- + sizeof ("/%L/LC_MESSAGES/%N.cat");
--
-- old_val = getenv ("NLSPATH");
-- if (old_val == NULL || old_val[0] == '\0')
-- {
-- old_val = NULL;
-- new_val_len += 1 + sizeof (LOCALEDIR) - 1
-- + sizeof ("/%L/LC_MESSAGES/%N.cat");
-- }
-- else
-- new_val_len += strlen (old_val);
--
-- new_val = (char *) malloc (new_val_len);
-- if (new_val == NULL)
-- return NULL;
--
--# if HAVE_SETENV
-- cp = new_val;
--# else
-- cp = stpcpy (new_val, "NLSPATH=");
--# endif
--
-- cp = stpcpy (cp, dirname);
-- cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
--
-- if (old_val == NULL)
-- {
--# if __STDC__
-- stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
--# else
--
-- cp = stpcpy (cp, LOCALEDIR);
-- stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
--# endif
-- }
-- else
-- stpcpy (cp, old_val);
--
--# if HAVE_SETENV
-- setenv ("NLSPATH", new_val, 1);
-- free (new_val);
--# else
-- putenv (new_val);
-- /* Do *not* free the environment entry we just entered. It is used
-- from now on. */
--# endif
--
--#endif
--
-- return (char *) domainname;
--}
--
--#undef gettext
--char *
--gettext (msg)
-- const char *msg;
--{
-- int msgid;
--
-- if (msg == NULL || catalog == (nl_catd) -1)
-- return (char *) msg;
--
-- /* Get the message from the catalog. We always use set number 1.
-- The message ID is computed by the function `msg_to_cat_id'
-- which works on the table generated by `po-to-tbl'. */
-- msgid = msg_to_cat_id (msg);
-- if (msgid == -1)
-- return (char *) msg;
--
-- return catgets (catalog, 1, msgid, (char *) msg);
--}
--
--/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
-- for the one equal to msg. If it is found return the ID. In case when
-- the string is not found return -1. */
--static int
--msg_to_cat_id (msg)
-- const char *msg;
--{
-- int cnt;
--
-- for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
-- if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
-- return _msg_tbl[cnt]._msg_number;
--
-- return -1;
--}
--
--
--/* @@ begin of epilog @@ */
--
--/* We don't want libintl.a to depend on any other library. So we
-- avoid the non-standard function stpcpy. In GNU C Library this
-- function is available, though. Also allow the symbol HAVE_STPCPY
-- to be defined. */
--#if !_LIBC && !HAVE_STPCPY
--static char *
--stpcpy (dest, src)
-- char *dest;
-- const char *src;
--{
-- while ((*dest++ = *src++) != '\0')
-- /* Do nothing. */ ;
-- return dest - 1;
--}
--#endif
---- lrzsz-0.12.20.safe/intl/ChangeLog 1998-04-26 09:22:35.000000000 -0400
-+++ lrzsz-0.12.20/intl/ChangeLog 2004-09-12 14:40:34.349749000 -0400
-@@ -1,1022 +1,4 @@
--1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com>
--
-- * intlh.inst.in: Reformat copyright.
--
--1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com>
--
-- * dcgettext.c (DCGETTEXT): Remove wrong comment.
--
--1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com>
--
-- * Makefile.in (install-data): Don't change directory to install.
--
--1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com>
--
-- * cat-compat.c: Fix copyright.
--
-- * localealias.c: Don't define strchr unless !HAVE_STRCHR.
--
-- * loadmsgcat.c: Update copyright. Fix typos.
--
-- * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
-- (_nl_make_l10nflist): Handle sponsor and revision correctly.
--
-- * gettext.c: Update copyright.
-- * gettext.h: Likewise.
-- * hash-string.h: Likewise.
--
-- * finddomain.c: Remoave dead code. Define strchr only if
-- !HAVE_STRCHR.
--
-- * explodename.c: Include <sys/types.h>.
--
-- * explodename.c: Reformat copyright text.
-- (_nl_explode_name): Fix typo.
--
-- * dcgettext.c: Define and use __set_errno.
-- (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
-- not defined.
--
-- * bindtextdom.c: Pretty printing.
--
--1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com>
--
-- * dcgettext.c (guess_category_value): Don't depend on
-- HAVE_LC_MESSAGES. We don't need the macro here.
-- Patch by Bruno Haible <haible@ilog.fr>.
--
-- * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
-- macro. Instead use HAVE_LOCALE_NULL and define it when using
-- glibc, as in dcgettext.c.
-- Patch by Bruno Haible <haible@ilog.fr>.
--
-- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois
-- Pinard.
--
--Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com>
--
-- * Makefile.in: Implement handling of libtool.
--
-- * gettextP.h: Change data structures for use of generic lowlevel
-- i18n file handling.
--
--Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * textdomain.c: Put parentheses around arguments of memcpy macro
-- definition.
-- * localealias.c: Likewise.
-- * l10nflist.c: Likewise.
-- * finddomain.c: Likewise.
-- * bindtextdom.c: Likewise.
-- Reported by Thomas Esken.
--
--Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * textdomain.c: Move definition of `memcpy` macro to right
-- position.
--
--Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
-- bcopy if not already defined. Reported by Thomas Esken.
-- * bindtextdom.c: Likewise.
-- * l10nflist.c: Likewise.
-- * localealias.c: Likewise.
-- * textdomain.c: Likewise.
--
--Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * Makefile.in (libdir): Change to use exec_prefix instead of
-- prefix. Reported by Knut-HåvardAksnes <etokna@eto.ericsson.se>.
--
--Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
-- so don't prepend uppercase `ISO' for only numeric arg.
--
--Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
-- definition of _GNU_SOURCE. Patch by Roland McGrath.
--
-- * Makefile.in (uninstall): Fix another bug with `for' loop and
-- empty arguments. Patch by Jim Meyering. Correct name os
-- uninstalled files: no intl- prefix anymore.
--
-- * Makefile.in (install-data): Again work around shells which
-- cannot handle mpty for list. Reported by Jim Meyering.
--
--Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * Makefile.in (install): Split goal. Now depend on install-exec
-- and install-data.
-- (install-exec, install-data): New goals. Created from former
-- install goal.
-- Reported by Karl Berry.
--
--Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * Makefile.in (MKINSTALLDIRS): New variable. Path to
-- mkinstalldirs script.
-- (install): use MKINSTALLDIRS variable or if the script is not present
-- try to find it in the $top_scrdir).
--
--Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * l10nflist.c: Linux libc *partly* includes the argz_* functions.
-- Grr. Work around by renaming the static version and use macros
-- for renaming.
--
--Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * l10nflist.c: Correct presence test macros of __argz_* functions.
--
-- * l10nflist.c: Include <argz.h> based on test of it instead when
-- __argz_* functions are available.
-- Reported by Andreas Schwab.
--
--Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * explodename.c, l10nflist.c: Define NULL for dumb systems.
--
--Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
-- result to __result to prevent name clash.
--
-- * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
-- get prototype for stpcpy and strcasecmp.
--
-- * intlh.inst.in, libgettext.h: Move declaration of
-- `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
-- from gcc's -Wnested-extern option.
--
--Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * Makefile.in (install): Remove comment.
--
--Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * Makefile.in (install): Work around for another Buglix stupidity.
-- Always use an `else' close for `if's. Reported by Nelson Beebe.
--
-- * Makefile.in (intlh.inst): Correct typo in phony rule.
-- Reported by Nelson Beebe.
--
--Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * dcgettext.c (read_alias_file): Rename variable alloca_list to
-- block_list as the macro calls assume.
-- Patch by Eric Backus.
--
-- * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
-- malloc.
-- (read_alias_file): Rename varriabe alloca_list to block_list as the
-- macro calls assume.
-- Patch by Eric Backus.
--
-- * l10nflist.c: Correct conditional for <argz.h> inclusion.
-- Reported by Roland McGrath.
--
-- * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not
-- all-@USE_NLS@.
--
-- * Makefile.in (install): intlh.inst comes from local dir, not
-- $(srcdir).
--
-- * Makefile.in (intlh.inst): Special handling of this goal. If
-- used in gettext, this is really a rul to construct this file. If
-- used in any other package it is defined as a .PHONY rule with
-- empty body.
--
-- * finddomain.c: Extract locale file information handling into
-- l10nfile.c. Rename local stpcpy__ function to stpcpy.
--
-- * dcgettext.c (stpcpy): Add local definition.
--
-- * l10nflist.c: Solve some portability problems. Patches partly by
-- Thomas Esken. Add local definition of stpcpy.
--
--Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * intlh.inst.in: Don't depend including <locale.h> on
-- HAVE_LOCALE_H. Instead configure must rewrite this fiile
-- depending on the result of the configure run.
--
-- * Makefile.in (install): libintl.inst is now called intlh.inst.
-- Add rules for updating intlh.inst from intlh.inst.in.
--
-- * libintl.inst: Renamed to intlh.inst.in.
--
-- * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
-- because gcc has __buitlin_alloca.
-- Reported by Roland McGrath.
--
--Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * Makefile.in (installcheck): New goal to fulfill needs of
-- automake's distcheck.
--
-- * Makefile.in (install): Reorder commands so that VERSION is
-- found.
--
-- * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
-- @datadir@/gettext.
-- (COMSRCS): Add l10nfile.c.
-- (OBJECTS): Add l10nfile.o.
-- (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common).
-- (DISTFILE.gettext): Remove $(DISTFILES.common).
-- (all-gettext): Remove goal.
-- (install): If $(PACKAGE) = gettext install, otherwose do nothing. No
-- package but gettext itself should install libintl.h + headers.
-- (dist): Extend goal to work for gettext, too.
-- (dist-gettext): Remove goal.
--
-- * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
--
--Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
-- find_l10nfile.
--
--Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com>
--
-- * l10nflist.c (__argz_next): Add definition.
--
-- * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
-- code. Use new l10nfile handling.
--
-- * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
-- alloca code.
--
-- * l10nflist.c: Initial revision.
--
--Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (all-gettext): New goal. Same as all-yes.
--
--Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de>
--
-- * Makefile.in (gettextsrcdir): Define using @datadir@.
--
--Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c: Include <ctype.h>. Reported by Roland McGrath.
--
--Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
-- with external declaration.
--
--Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (all-no): Rename from all_no.
--
--Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware>
--
-- * gettextP.h [loaded_domain]: Array `successor' must now contain up
-- to 63 elements (because of codeset name normalization).
--
-- * finddomain.c: Implement codeset name normalization.
--
--Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (all): Define to `all-@USE_NLS@'.
-- (all-yes, all_no): New goals. `all-no' is noop, `all-yes'
-- is former all.
--
--Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com>
--
-- * localealias.c (alias_compare): Increment string pointers in loop
-- of strcasecmp replacement.
--
--Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (install-src): Who commented this goal out ? :-)
--
--Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware>
--
-- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls
-- should not effect it because a missing catalog is no error.
-- Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>.
--
--Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (Makefile): Explicitly use $(SHELL) for running
-- shell scripts.
--
--Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
--
-- * Makefile.in (install-src): Only install library and header when
-- we use the own implementation. Don't do it when using the
-- system's gettext or catgets functions.
--
-- * dcgettext.c (find_msg): Must not swap domain->hash_size here.
--
--Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware>
--
-- * localealias.c, libintl.inst, libgettext.h, hash-string.h,
-- gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
-- Use PARAMS instead of __P. Suggested by Roland McGrath.
--
--Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu>
--
-- * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
-- !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
--
--Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (install-src):
-- Install libintl.inst instead of libintl.h.install.
--
--Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu>
--
-- * cat-compat.c (textdomain):
-- Reverse order in which files are tried you load. First
-- try local file, when this failed absolute path.
--
--Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
--
-- * cat-compat.c (bindtextdomain): Add missing { }.
--
--Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware>
--
-- * libintl.inst: Add missing __P definition. Reported by Nelson Beebe.
--
-- * Makefile.in:
-- Add dummy `all' and `dvi' goals. Reported by Tom Tromey.
--
--Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca>
--
-- * hash-string.h: Capitalize arguments of macros.
--
--Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (DISTFILES): Prevent files names longer than 13
-- characters. libintl.h.glibc->libintl.glibc,
-- libintl.h.install->libintl.inst. Reported by Joshua R. Poulson.
--
--Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com>
--
-- * dcgettext.c: Fix bug in preprocessor conditionals.
--
--Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
--
-- * libgettext.h: Solaris cc does not understand
-- #if !SYMBOL1 && !SYMBOL2. Sad but true.
--
--Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware>
--
-- * hash-string.h (hash_string):
-- Fix for machine with >32 bit `unsigned long's.
--
-- * dcgettext.c (DCGETTEXT):
-- Fix horrible bug in loop for alternative translation.
--
--Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware>
--
-- * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
-- Some further simplifications in message number generation.
--
--Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware>
--
-- * libintl.h.glibc: Use __const instead of const in prototypes.
--
-- * Makefile.in (install-src):
-- Install libintl.h.install instead of libintl.h. This
-- is a stripped-down version. Suggested by Peter Miller.
--
-- * libintl.h.install, libintl.h.glibc: Initial revision.
--
-- * localealias.c (_nl_expand_alias, read_alias_file):
-- Protect prototypes in type casts by __P.
--
--Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware>
--
-- * hash-string.h: Correct prototype for hash_string.
--
--Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware>
--
-- * hash-string.h (hash_string): Add prototype.
--
-- * gettextP.h: Fix copyright.
-- (SWAP): Add prototype.
--
--Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware>
--
-- * localealias.c (read_alias_file): Forgot sizeof.
-- Avoid calling *printf function. This introduces a big overhead.
-- Patch by Roland McGrath.
--
--Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
--
-- * finddomain.c (stpcpy):
-- Define substitution function local. The macro was to flaky.
--
-- * cat-compat.c: Fix typo.
--
-- * xopen-msg.sed, linux-msg.sed:
-- While bringing message number to right place only accept digits.
--
-- * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
-- leading 0s we don't need to remove them. Reported by Marcus
-- Daniels.
--
-- * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
-- dependency. Reported by Marcus Daniels.
--
-- * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
-- Generally cleanup using #if instead of #ifndef.
--
-- * Makefile.in: Correct typos in comment. By Franc,ois Pinard.
--
--Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (install-src): Don't install libintl.h and libintl.a
-- if we use an available gettext implementation.
--
--Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware>
--
-- * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported
-- by Franc,ois Pinard.
--
-- * libgettext.h: Use #if instead of #ifdef/#ifndef.
--
-- * finddomain.c:
-- Comments describing what has to be done should start with FIXME.
--
--Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning.
-- DISTFILES.common names the files common to both dist goals.
-- DISTFILES.gettext are the files only distributed in GNU gettext.
--
--Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware>
--
-- * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
-- This was necessary since a change in _nl_find_msg several weeks
-- ago. I really don't know this is still not fixed.
--
--Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware>
--
-- * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This
-- might mark a special condition.
--
-- * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
--
-- * Makefile.in (dist): Suppress error message when ln failed.
-- Get files from $(srcdir) explicitly.
--
-- * libgettext.h (gettext_const): Rename to gettext_noop.
--
--Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c (make_entry_rec):
-- Protect against wrong locale names by testing mask.
--
-- * libgettext.h (gettext_const): Add macro definition.
-- Capitalize macro arguments.
--
--Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c (_nl_find_domain):
-- Test for pointer != NULL before accessing value.
-- Reported by Tom Tromey.
--
-- * gettext.c (NULL):
-- Define as (void*)0 instad of 0. Reported by Franc,ois Pinard.
--
--Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware>
--
-- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
--
--Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware>
--
-- * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
--
-- * localealias.c (alias_compare):
-- Peter Miller reported that tolower in some systems is
-- even dumber than I thought. Protect call by `isupper'.
--
--Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (libdir, includedir): New variables.
-- (install-src): Install libintl.a and libintl.h in correct dirs.
--
--Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
--
-- * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
--
-- * localealias.c:
-- Fix typo and superflous test. Reported by Christian von Roques.
--
--Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c (_nl_find_domain):
-- Correct some remainder from the pre-CEN syntax. Now
-- we don't have a constant number of successors anymore.
--
--Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (DISTFILES): Add libintl.h.glibc.
--
-- * Makefile.in (dist-libc): Add goal for packing sources for glibc.
-- (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
--
-- * loadmsgcat.c: Forget to continue #if line.
--
-- * localealias.c:
-- [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
-- space clean.
--
-- * dcgettext.c, finddomain.c: Better comment to last change.
--
-- * loadmsgcat.c:
-- [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
-- __fstat, __open, __close, __read, __mmap, and __munmap resp
-- to keep ANSI C name space clean.
--
-- * finddomain.c:
-- [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
--
-- * dcgettext.c:
-- [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
-- keep ANSI C name space clean.
--
-- * libgettext.h:
-- Include sys/types.h for those old SysV systems out there.
-- Reported by Francesco Potorti`.
--
-- * loadmsgcat.c (use_mmap): Define if compiled for glibc.
--
-- * bindtextdom.c: Include all those standard headers
-- unconditionally if _LIBC is defined.
--
-- * finddomain.c: Fix 2 times defiend -> defined.
--
-- * textdomain.c: Include libintl.h instead of libgettext.h when
-- compiling for glibc. Include all those standard headers
-- unconditionally if _LIBC is defined.
--
-- * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
--
-- * gettext.c:
-- Include libintl.h instead of libgettext.h when compiling for glibc.
-- Get NULL from stddef.h if we compile for glibc.
--
-- * finddomain.c: Include libintl.h instead of libgettext.h when
-- compiling for glibc. Include all those standard headers
-- unconditionally if _LIBC is defined.
--
-- * dcgettext.c: Include all those standard headers unconditionally
-- if _LIBC is defined.
--
-- * dgettext.c: If compiled in glibc include libintl.h instead of
-- libgettext.h.
-- (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
--
-- * dcgettext.c: If compiled in glibc include libintl.h instead of
-- libgettext.h.
-- (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
--
-- * bindtextdom.c:
-- If compiled in glibc include libintl.h instead of libgettext.h.
--
--Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware>
--
-- * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
-- Reported by Marcus Daniels.
--
-- * cat-compat.c (bindtextdomain):
-- String used in putenv must not be recycled.
-- Reported by Marcus Daniels.
--
-- * libgettext.h (__USE_GNU_GETTEXT):
-- Additional symbol to signal that we use GNU gettext
-- library.
--
-- * cat-compat.c (bindtextdomain):
-- Fix bug with the strange stpcpy replacement.
-- Reported by Nelson Beebe.
--
--Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware>
--
-- * cat-compat.c: Include <string.h> for stpcpy prototype.
--
-- * localealias.c (read_alias_file):
-- While expand strdup code temporary variable `cp' hided
-- higher level variable with same name. Rename to `tp'.
--
-- * textdomain.c (textdomain):
-- Avoid warning by using temporary variable in strdup code.
--
-- * finddomain.c (_nl_find_domain): Remove unused variable `application'.
--
--Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware>
--
-- * localealias.c (alias_compare):
-- Use strcasecmp() only if available. Else use
-- implementation in place.
--
-- * intl-compat.c:
-- Wrapper functions now call *__ functions instead of __*.
--
-- * libgettext.h: Declare prototypes for *__ functions instead for __*.
--
-- * cat-compat.c, loadmsgcat.c:
-- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
-- of the standard libc and so prevent libintl.a from being used
-- standalone.
--
-- * bindtextdom.c:
-- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
-- of the standard libc and so prevent libintl.a from being used
-- standalone.
-- Rename to bindtextdomain__ if not used in GNU C Library.
--
-- * dgettext.c:
-- Rename function to dgettext__ if not used in GNU C Library.
--
-- * gettext.c:
-- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
-- of the standard libc and so prevent libintl.a from being used
-- standalone.
-- Functions now called gettext__ if not used in GNU C Library.
--
-- * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
-- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
-- of the standard libc and so prevent libintl.a from being used
-- standalone.
--
--Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c: Correct some bugs in handling of CEN standard
-- locale definitions.
--
--Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c: Implement CEN syntax.
--
-- * gettextP.h (loaded_domain): Extend number of successors to 31.
--
--Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (aliaspath): Remove path to X11 locale dir.
--
-- * Makefile.in: Make install-src depend on install. This helps
-- gettext to install the sources and other packages can use the
-- install goal.
--
--Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (uninstall): Remove stuff installed by install-src.
--
--Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware>
--
-- * VERSION.in: Initial revision.
--
-- * Makefile.in (DISTFILES):
-- Add VERSION file. This is not necessary for gettext, but
-- for other packages using this library.
--
--Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware>
--
-- * gettextP.h (_nl_find_domain):
-- New prototype after changing search strategy.
--
-- * finddomain.c (_nl_find_domain):
-- We now try only to find a specified catalog. Fall back to other
-- catalogs listed in the locale list is now done in __dcgettext.
--
-- * dcgettext.c (__dcgettext):
-- Now we provide message fall back even to different languages.
-- I.e. if a message is not available in one language all the other
-- in the locale list a tried. Formerly fall back was only possible
-- within one language. Implemented by moving one loop from
-- _nl_find_domain to here.
--
--Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (gettextsrcdir):
-- Directory where source of GNU gettext library are made
-- available.
-- (INSTALL, INSTALL_DATA): Programs used for installing sources.
-- (gettext-src): New. Rule to install GNU gettext sources for use in
-- gettextize shell script.
--
--Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware>
--
-- * loadmsgcat.c (_nl_load_domain):
-- Use mmap for loading only when munmap function is
-- also available.
--
-- * Makefile.in (install): Depend on `all' goal.
--
--Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware>
--
-- * localealias.c (read_alias_file):
-- Do not overwrite '\n' when terminating alias value string.
--
-- * localealias.c (read_alias_file):
-- Handle long lines. Ignore the rest not fitting in
-- the buffer after the initial `fgets' call.
--
--Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware>
--
-- * gettextP.h (_nl_load_domain):
-- Add prototype, replacing prototype for _nl_load_msg_cat.
--
-- * finddomain.c (_nl_find_domain):
-- Remove unneeded variable filename and filename_len.
-- (expand_alias): Remove prototype because functions does not
-- exist anymore.
--
-- * localealias.c (read_alias_file):
-- Change type of fname_len parameter to int.
-- (xmalloc): Add prototype.
--
-- * loadmsgcat.c: Better prototypes for xmalloc.
--
--Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c (_nl_find_domain):
-- Allow alias name to be constructed from the four components.
--
-- * Makefile.in (aliaspath): New variable. Set to preliminary value.
-- (SOURCES): Add localealias.c.
-- (OBJECTS): Add localealias.o.
--
-- * gettextP.h: Add prototype for _nl_expand_alias.
--
-- * finddomain.c: Aliasing handled in intl/localealias.c.
--
-- * localealias.c: Aliasing for locale names.
--
-- * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
--
--Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
--
-- * cat-compat.c (bindtextdomain):
-- Correct implementation. dirname parameter was not used.
-- Reported by Marcus Daniels.
--
-- * gettextP.h (loaded_domain):
-- New fields `successor' and `decided' for oo, lazy
-- message handling implementation.
--
-- * dcgettext.c:
-- Adopt for oo, lazy message handliing.
-- Now we can inherit translations from less specific locales.
-- (find_msg): New function.
--
-- * loadmsgcat.c, finddomain.c:
-- Complete rewrite. Implement oo, lazy message handling :-).
-- We now have an additional environment variable `LANGUAGE' with
-- a higher priority than LC_ALL for the LC_MESSAGE locale.
-- Here we can set a colon separated list of specifications each
-- of the form `language[_territory[.codeset]][@modifier]'.
--
--Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c (unistd.h):
-- Include to get _PC_PATH_MAX defined on system having it.
--
--Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware>
--
-- * finddomain.c (stpcpy): Include prototype.
--
-- * Makefile.in (dist): Remove `copying instead' message.
--
--Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (ID, TAGS): Do not use $^.
--
--Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (TAGS, ID): Use $^ as command argument.
-- (TAGS): Give etags -o option t write to current directory,
-- not $(srcdir).
-- (ID): Use $(srcdir) instead os $(top_srcdir)/src.
-- (distclean): Remove ID.
--
--Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (gnulocaledir):
-- New variable, always using share/ for data directory.
-- (DEFS): Add GNULOCALEDIR, used in finddomain.c.
--
-- * finddomain.c (_nl_default_dirname):
-- Set to GNULOCALEDIR, because it always has to point
-- to the directory where GNU gettext Library writes it to.
--
-- * intl-compat.c (textdomain, bindtextdomain):
-- Undefine macros before function definition.
--
--Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware>
--
-- * libgettext.h (_LIBINTL_H):
-- Protect definition in case where this file is included as
-- libgettext.h on Solaris machines. Add comment about this.
--
--Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware>
--
-- * intl-compat.c (textdomain): Correct typo.
--
--Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware>
--
-- * dcgettext.c (dcgettext): Function now called __dcgettext.
--
-- * dgettext.c (dgettext): Now called __dgettext and calls
-- __dcgettext.
--
-- * gettext.c (gettext):
-- Function now called __gettext and calls __dgettext.
--
-- * textdomain.c (textdomain): Function now called __textdomain.
--
-- * bindtextdom.c (bindtextdomain): Function now called
-- __bindtextdomain.
--
-- * intl-compat.c: Initial revision.
--
-- * Makefile.in (SOURCES): Add intl-compat.c.
-- (OBJECTS): We always compile the GNU gettext library functions.
-- OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
-- and intl-compat.o.
-- (GETTOBJS): Contains now only intl-compat.o.
--
-- * libgettext.h:
-- Re-include protection matches dualistic character of libgettext.h.
-- For all functions in GNU gettext library define __ counter part.
--
-- * finddomain.c (strchr): Define as index if not found in C library.
-- (_nl_find_domain): For relative paths paste / in between.
--
--Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware>
--
-- * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
--
-- * xopen-msg.sed: Fix bug with `msgstr ""' lines.
-- A little bit better comments.
--
--Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in:
-- po-mode.el, makelinks, combine-sh are now found in ../misc.
--
-- * po-mode.el, makelinks, combine-sh, elisp-comp:
-- Moved to ../misc/.
--
-- * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
--
--Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (INSTALL, INSTALL_DATA): New variables.
-- (install-data, uninstall): Install/uninstall .elc file.
--
-- * po-mode.el (Installation comment):
-- Add .pox as possible extension of .po files.
--
--Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware>
--
-- * elisp-comp: Complete new version by Franc,ois: This does not
-- fail when not compiling in the source directory.
--
--Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (../po/cat-id-tbl.o):
-- Use $(MAKE) instead of make for recursive make.
--
-- * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
-- (install-exec): Add missing dummy goal.
-- (install-data, uninstall): @ in multi-line shell command at
-- beginning, not in front of echo. Reported by Eric Backus.
--
--Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (DISTFILES):
-- Rename libgettext.perl to gettext.perl to fit in 14 chars
-- file systems.
--
-- * gettext.perl:
-- Rename to gettext.perl to fit in 14 chars file systems.
--
--Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware>
--
-- * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
--
--Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware>
--
-- * po2tbl.sed.in: Pretty printing.
--
-- * linux-msg.sed, xopen-msg.sed:
-- Correct bugs with handling substitute flags in branches.
--
-- * hash-string.h (hash_string):
-- Old K&R compilers don't under stand `unsigned char'.
--
-- * gettext.h (nls_uint32):
-- Some old K&R compilers (eg HP) don't understand `unsigned int'.
--
-- * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
--
--Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (ELCFILES): New variable.
-- (DISTFILES): Add elisp-comp.
-- Add implicit rule for .el -> .elc compilation.
-- (install-data): install $ELCFILES
-- (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
--
-- * elisp-comp: Initial revision
--
--Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in:
-- cat-id-tbl.c is now found in po/. This enables us to use an identical
-- intl/ directory in all packages.
--
-- * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
--
-- * textdomain.c: fix typo (#if def -> #if defined)
--
--Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in (stamp-cat-id): use top_srcdir to address source files
-- (DISTFILES,distclean): move tupdate.perl to src/
--
-- * po-to-tbl.sed.in:
-- add additional jump to clear change flag to recognize multiline strings
--
--Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware>
--
-- * textdomain.c: Protect inclusion of stdlib.h and string.h.
--
-- * loadmsgcat.c: Protect inclusion of stdlib.h.
--
-- * libgettext.h: Protect inclusion of locale.h.
-- Allow use in C++ programs.
-- Define NULL is not happened already.
--
-- * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
-- po-to-tbl.sed.
-- (distclean): remove po-to-tbl.sed and tupdate.perl.
--
-- * tupdate.perl.in: Substitute Perl path even in exec line.
-- Don't include entries without translation from old .po file.
--
--Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware>
--
-- * tupdate.perl.in: use "Updated: " in msgid "".
--
-- * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
-- Define getenv if !__STDC__.
--
-- * bindtextdom.c: Protect stdlib.h and string.h inclusion.
-- Define free if !__STDC__.
--
-- * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
-- Define free if !__STDC__.
--
-- * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
--
--Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware>
--
-- * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
-- Remove unneeded $(srcdir) from Makefile.in dependency.
--
-- * makelinks: Add copyright and short description.
--
-- * po-mode.el: Last version for 0.7.
--
-- * tupdate.perl.in: Fix die message.
--
-- * dcgettext.c: Protect include of string.h.
--
-- * gettext.c: Protect include of stdlib.h and further tries to get NULL.
--
-- * finddomain.c: Some corrections in includes.
--
-- * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
--
-- * po-to-tbl.sed: Adopt for new .po file format.
--
-- * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
--
--Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware>
--
-- * tupdate.perl.in: Complete rewrite for new .po file format.
-+2004-01-29 GNU <bug-gnu-gettext@gnu.org>
-
--Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware>
-+ * Version 0.14.1 released.
-
-- * First official release. This directory contains all the code
-- needed to internationalize own packages. It provides functions
-- which allow to use the X/Open catgets function with an interface
-- like the Uniforum gettext function. For system which does not
-- have neither of those a complete implementation is provided.
---- lrzsz-0.12.20.safe/intl/config.charset 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/config.charset 2004-09-12 14:40:34.354748240 -0400
-@@ -0,0 +1,608 @@
-+#! /bin/sh
-+# Output a system dependent table of character encoding aliases.
-+#
-+# Copyright (C) 2000-2004 Free Software Foundation, Inc.
-+#
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU Library General Public License as published
-+# by the Free Software Foundation; either version 2, 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
-+# Library General Public License for more details.
-+#
-+# You should have received a copy of the GNU Library 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.
-+#
-+# The table consists of lines of the form
-+# ALIAS CANONICAL
-+#
-+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
-+# ALIAS is compared in a case sensitive way.
-+#
-+# CANONICAL is the GNU canonical name for this character encoding.
-+# It must be an encoding supported by libiconv. Support by GNU libc is
-+# also desirable. CANONICAL is case insensitive. Usually an upper case
-+# MIME charset name is preferred.
-+# The current list of GNU canonical charset names is as follows.
-+#
-+# name MIME? used by which systems
-+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd darwin
-+# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd darwin
-+# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd darwin
-+# ISO-8859-3 Y glibc solaris
-+# ISO-8859-4 Y osf solaris freebsd darwin
-+# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd darwin
-+# ISO-8859-6 Y glibc aix hpux solaris
-+# ISO-8859-7 Y glibc aix hpux irix osf solaris
-+# ISO-8859-8 Y glibc aix hpux osf solaris
-+# ISO-8859-9 Y glibc aix hpux irix osf solaris
-+# ISO-8859-13 glibc
-+# ISO-8859-14 glibc
-+# ISO-8859-15 glibc aix osf solaris freebsd
-+# KOI8-R Y glibc solaris freebsd darwin
-+# KOI8-U Y glibc freebsd darwin
-+# KOI8-T glibc
-+# CP437 dos
-+# CP775 dos
-+# CP850 aix osf dos
-+# CP852 dos
-+# CP855 dos
-+# CP856 aix
-+# CP857 dos
-+# CP861 dos
-+# CP862 dos
-+# CP864 dos
-+# CP865 dos
-+# CP866 freebsd darwin dos
-+# CP869 dos
-+# CP874 woe32 dos
-+# CP922 aix
-+# CP932 aix woe32 dos
-+# CP943 aix
-+# CP949 osf woe32 dos
-+# CP950 woe32 dos
-+# CP1046 aix
-+# CP1124 aix
-+# CP1125 dos
-+# CP1129 aix
-+# CP1250 woe32
-+# CP1251 glibc solaris darwin woe32
-+# CP1252 aix woe32
-+# CP1253 woe32
-+# CP1254 woe32
-+# CP1255 glibc woe32
-+# CP1256 woe32
-+# CP1257 woe32
-+# GB2312 Y glibc aix hpux irix solaris freebsd darwin
-+# EUC-JP Y glibc aix hpux irix osf solaris freebsd darwin
-+# EUC-KR Y glibc aix hpux irix osf solaris freebsd darwin
-+# EUC-TW glibc aix hpux irix osf solaris
-+# BIG5 Y glibc aix hpux osf solaris freebsd darwin
-+# BIG5-HKSCS glibc solaris
-+# GBK glibc aix osf solaris woe32 dos
-+# GB18030 glibc solaris
-+# SHIFT_JIS Y hpux osf solaris freebsd darwin
-+# JOHAB glibc solaris woe32
-+# TIS-620 glibc aix hpux osf solaris
-+# VISCII Y glibc
-+# TCVN5712-1 glibc
-+# GEORGIAN-PS glibc
-+# HP-ROMAN8 hpux
-+# HP-ARABIC8 hpux
-+# HP-GREEK8 hpux
-+# HP-HEBREW8 hpux
-+# HP-TURKISH8 hpux
-+# HP-KANA8 hpux
-+# DEC-KANJI osf
-+# DEC-HANYU osf
-+# UTF-8 Y glibc aix hpux osf solaris
-+#
-+# Note: Names which are not marked as being a MIME name should not be used in
-+# Internet protocols for information interchange (mail, news, etc.).
-+#
-+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
-+# must understand both names and treat them as equivalent.
-+#
-+# The first argument passed to this file is the canonical host specification,
-+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-+# or
-+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-+
-+host="$1"
-+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
-+echo "# This file contains a table of character encoding aliases,"
-+echo "# suitable for operating system '${os}'."
-+echo "# It was automatically generated from config.charset."
-+# List of references, updated during installation:
-+echo "# Packages using this file: "
-+case "$os" in
-+ linux-gnulibc1*)
-+ # Linux libc5 doesn't have nl_langinfo(CODESET); therefore
-+ # localcharset.c falls back to using the full locale name
-+ # from the environment variables.
-+ echo "C ASCII"
-+ echo "POSIX ASCII"
-+ for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
-+ en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
-+ en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
-+ es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
-+ et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
-+ fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
-+ it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
-+ sv_FI sv_SE; do
-+ echo "$l ISO-8859-1"
-+ echo "$l.iso-8859-1 ISO-8859-1"
-+ echo "$l.iso-8859-15 ISO-8859-15"
-+ echo "$l.iso-8859-15@euro ISO-8859-15"
-+ echo "$l@euro ISO-8859-15"
-+ echo "$l.cp-437 CP437"
-+ echo "$l.cp-850 CP850"
-+ echo "$l.cp-1252 CP1252"
-+ echo "$l.cp-1252@euro CP1252"
-+ #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
-+ echo "$l.utf-8 UTF-8"
-+ echo "$l.utf-8@euro UTF-8"
-+ done
-+ for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
-+ sl_SI sr sr_CS sr_YU; do
-+ echo "$l ISO-8859-2"
-+ echo "$l.iso-8859-2 ISO-8859-2"
-+ echo "$l.cp-852 CP852"
-+ echo "$l.cp-1250 CP1250"
-+ echo "$l.utf-8 UTF-8"
-+ done
-+ for l in mk mk_MK ru ru_RU; do
-+ echo "$l ISO-8859-5"
-+ echo "$l.iso-8859-5 ISO-8859-5"
-+ echo "$l.koi8-r KOI8-R"
-+ echo "$l.cp-866 CP866"
-+ echo "$l.cp-1251 CP1251"
-+ echo "$l.utf-8 UTF-8"
-+ done
-+ for l in ar ar_SA; do
-+ echo "$l ISO-8859-6"
-+ echo "$l.iso-8859-6 ISO-8859-6"
-+ echo "$l.cp-864 CP864"
-+ #echo "$l.cp-868 CP868" # not a commonly used encoding
-+ echo "$l.cp-1256 CP1256"
-+ echo "$l.utf-8 UTF-8"
-+ done
-+ for l in el el_GR gr gr_GR; do
-+ echo "$l ISO-8859-7"
-+ echo "$l.iso-8859-7 ISO-8859-7"
-+ echo "$l.cp-869 CP869"
-+ echo "$l.cp-1253 CP1253"
-+ echo "$l.cp-1253@euro CP1253"
-+ echo "$l.utf-8 UTF-8"
-+ echo "$l.utf-8@euro UTF-8"
-+ done
-+ for l in he he_IL iw iw_IL; do
-+ echo "$l ISO-8859-8"
-+ echo "$l.iso-8859-8 ISO-8859-8"
-+ echo "$l.cp-862 CP862"
-+ echo "$l.cp-1255 CP1255"
-+ echo "$l.utf-8 UTF-8"
-+ done
-+ for l in tr tr_TR; do
-+ echo "$l ISO-8859-9"
-+ echo "$l.iso-8859-9 ISO-8859-9"
-+ echo "$l.cp-857 CP857"
-+ echo "$l.cp-1254 CP1254"
-+ echo "$l.utf-8 UTF-8"
-+ done
-+ for l in lt lt_LT lv lv_LV; do
-+ #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
-+ echo "$l ISO-8859-13"
-+ done
-+ for l in ru_UA uk uk_UA; do
-+ echo "$l KOI8-U"
-+ done
-+ for l in zh zh_CN; do
-+ #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
-+ echo "$l GB2312"
-+ done
-+ for l in ja ja_JP ja_JP.EUC; do
-+ echo "$l EUC-JP"
-+ done
-+ for l in ko ko_KR; do
-+ echo "$l EUC-KR"
-+ done
-+ for l in th th_TH; do
-+ echo "$l TIS-620"
-+ done
-+ for l in fa fa_IR; do
-+ #echo "$l ISIRI-3342" # a broken encoding
-+ echo "$l.utf-8 UTF-8"
-+ done
-+ ;;
-+ linux* | *-gnu*)
-+ # With glibc-2.1 or newer, we don't need any canonicalization,
-+ # because glibc has iconv and both glibc and libiconv support all
-+ # GNU canonical names directly. Therefore, the Makefile does not
-+ # need to install the alias file at all.
-+ # The following applies only to glibc-2.0.x and older libcs.
-+ echo "ISO_646.IRV:1983 ASCII"
-+ ;;
-+ aix*)
-+ echo "ISO8859-1 ISO-8859-1"
-+ echo "ISO8859-2 ISO-8859-2"
-+ echo "ISO8859-5 ISO-8859-5"
-+ echo "ISO8859-6 ISO-8859-6"
-+ echo "ISO8859-7 ISO-8859-7"
-+ echo "ISO8859-8 ISO-8859-8"
-+ echo "ISO8859-9 ISO-8859-9"
-+ echo "ISO8859-15 ISO-8859-15"
-+ echo "IBM-850 CP850"
-+ echo "IBM-856 CP856"
-+ echo "IBM-921 ISO-8859-13"
-+ echo "IBM-922 CP922"
-+ echo "IBM-932 CP932"
-+ echo "IBM-943 CP943"
-+ echo "IBM-1046 CP1046"
-+ echo "IBM-1124 CP1124"
-+ echo "IBM-1129 CP1129"
-+ echo "IBM-1252 CP1252"
-+ echo "IBM-eucCN GB2312"
-+ echo "IBM-eucJP EUC-JP"
-+ echo "IBM-eucKR EUC-KR"
-+ echo "IBM-eucTW EUC-TW"
-+ echo "big5 BIG5"
-+ echo "GBK GBK"
-+ echo "TIS-620 TIS-620"
-+ echo "UTF-8 UTF-8"
-+ ;;
-+ hpux*)
-+ echo "iso88591 ISO-8859-1"
-+ echo "iso88592 ISO-8859-2"
-+ echo "iso88595 ISO-8859-5"
-+ echo "iso88596 ISO-8859-6"
-+ echo "iso88597 ISO-8859-7"
-+ echo "iso88598 ISO-8859-8"
-+ echo "iso88599 ISO-8859-9"
-+ echo "iso885915 ISO-8859-15"
-+ echo "roman8 HP-ROMAN8"
-+ echo "arabic8 HP-ARABIC8"
-+ echo "greek8 HP-GREEK8"
-+ echo "hebrew8 HP-HEBREW8"
-+ echo "turkish8 HP-TURKISH8"
-+ echo "kana8 HP-KANA8"
-+ echo "tis620 TIS-620"
-+ echo "big5 BIG5"
-+ echo "eucJP EUC-JP"
-+ echo "eucKR EUC-KR"
-+ echo "eucTW EUC-TW"
-+ echo "hp15CN GB2312"
-+ #echo "ccdc ?" # what is this?
-+ echo "SJIS SHIFT_JIS"
-+ echo "utf8 UTF-8"
-+ ;;
-+ irix*)
-+ echo "ISO8859-1 ISO-8859-1"
-+ echo "ISO8859-2 ISO-8859-2"
-+ echo "ISO8859-5 ISO-8859-5"
-+ echo "ISO8859-7 ISO-8859-7"
-+ echo "ISO8859-9 ISO-8859-9"
-+ echo "eucCN GB2312"
-+ echo "eucJP EUC-JP"
-+ echo "eucKR EUC-KR"
-+ echo "eucTW EUC-TW"
-+ ;;
-+ osf*)
-+ echo "ISO8859-1 ISO-8859-1"
-+ echo "ISO8859-2 ISO-8859-2"
-+ echo "ISO8859-4 ISO-8859-4"
-+ echo "ISO8859-5 ISO-8859-5"
-+ echo "ISO8859-7 ISO-8859-7"
-+ echo "ISO8859-8 ISO-8859-8"
-+ echo "ISO8859-9 ISO-8859-9"
-+ echo "ISO8859-15 ISO-8859-15"
-+ echo "cp850 CP850"
-+ echo "big5 BIG5"
-+ echo "dechanyu DEC-HANYU"
-+ echo "dechanzi GB2312"
-+ echo "deckanji DEC-KANJI"
-+ echo "deckorean EUC-KR"
-+ echo "eucJP EUC-JP"
-+ echo "eucKR EUC-KR"
-+ echo "eucTW EUC-TW"
-+ echo "GBK GBK"
-+ echo "KSC5601 CP949"
-+ echo "sdeckanji EUC-JP"
-+ echo "SJIS SHIFT_JIS"
-+ echo "TACTIS TIS-620"
-+ echo "UTF-8 UTF-8"
-+ ;;
-+ solaris*)
-+ echo "646 ASCII"
-+ echo "ISO8859-1 ISO-8859-1"
-+ echo "ISO8859-2 ISO-8859-2"
-+ echo "ISO8859-3 ISO-8859-3"
-+ echo "ISO8859-4 ISO-8859-4"
-+ echo "ISO8859-5 ISO-8859-5"
-+ echo "ISO8859-6 ISO-8859-6"
-+ echo "ISO8859-7 ISO-8859-7"
-+ echo "ISO8859-8 ISO-8859-8"
-+ echo "ISO8859-9 ISO-8859-9"
-+ echo "ISO8859-15 ISO-8859-15"
-+ echo "koi8-r KOI8-R"
-+ echo "ansi-1251 CP1251"
-+ echo "BIG5 BIG5"
-+ echo "Big5-HKSCS BIG5-HKSCS"
-+ echo "gb2312 GB2312"
-+ echo "GBK GBK"
-+ echo "GB18030 GB18030"
-+ echo "cns11643 EUC-TW"
-+ echo "5601 EUC-KR"
-+ echo "ko_KR.johap92 JOHAB"
-+ echo "eucJP EUC-JP"
-+ echo "PCK SHIFT_JIS"
-+ echo "TIS620.2533 TIS-620"
-+ #echo "sun_eu_greek ?" # what is this?
-+ echo "UTF-8 UTF-8"
-+ ;;
-+ freebsd* | os2*)
-+ # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
-+ # localcharset.c falls back to using the full locale name
-+ # from the environment variables.
-+ # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
-+ # reuse FreeBSD's locale data for OS/2.
-+ echo "C ASCII"
-+ echo "US-ASCII ASCII"
-+ for l in la_LN lt_LN; do
-+ echo "$l.ASCII ASCII"
-+ done
-+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
-+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
-+ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
-+ echo "$l.ISO_8859-1 ISO-8859-1"
-+ echo "$l.DIS_8859-15 ISO-8859-15"
-+ done
-+ for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
-+ echo "$l.ISO_8859-2 ISO-8859-2"
-+ done
-+ for l in la_LN lt_LT; do
-+ echo "$l.ISO_8859-4 ISO-8859-4"
-+ done
-+ for l in ru_RU ru_SU; do
-+ echo "$l.KOI8-R KOI8-R"
-+ echo "$l.ISO_8859-5 ISO-8859-5"
-+ echo "$l.CP866 CP866"
-+ done
-+ echo "uk_UA.KOI8-U KOI8-U"
-+ echo "zh_TW.BIG5 BIG5"
-+ echo "zh_TW.Big5 BIG5"
-+ echo "zh_CN.EUC GB2312"
-+ echo "ja_JP.EUC EUC-JP"
-+ echo "ja_JP.SJIS SHIFT_JIS"
-+ echo "ja_JP.Shift_JIS SHIFT_JIS"
-+ echo "ko_KR.EUC EUC-KR"
-+ ;;
-+ netbsd*)
-+ echo "646 ASCII"
-+ echo "ISO8859-1 ISO-8859-1"
-+ echo "ISO8859-2 ISO-8859-2"
-+ echo "ISO8859-4 ISO-8859-4"
-+ echo "ISO8859-5 ISO-8859-5"
-+ echo "ISO8859-15 ISO-8859-15"
-+ echo "eucCN GB2312"
-+ echo "eucJP EUC-JP"
-+ echo "eucKR EUC-KR"
-+ echo "eucTW EUC-TW"
-+ echo "BIG5 BIG5"
-+ echo "SJIS SHIFT_JIS"
-+ ;;
-+ darwin*)
-+ # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
-+ # localcharset.c falls back to using the full locale name
-+ # from the environment variables.
-+ echo "C ASCII"
-+ for l in en_AU en_CA en_GB en_US la_LN; do
-+ echo "$l.US-ASCII ASCII"
-+ done
-+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
-+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
-+ nl_NL no_NO pt_PT sv_SE; do
-+ echo "$l ISO-8859-1"
-+ echo "$l.ISO8859-1 ISO-8859-1"
-+ echo "$l.ISO8859-15 ISO-8859-15"
-+ done
-+ for l in la_LN; do
-+ echo "$l.ISO8859-1 ISO-8859-1"
-+ echo "$l.ISO8859-15 ISO-8859-15"
-+ done
-+ for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
-+ echo "$l.ISO8859-2 ISO-8859-2"
-+ done
-+ for l in la_LN lt_LT; do
-+ echo "$l.ISO8859-4 ISO-8859-4"
-+ done
-+ for l in ru_RU; do
-+ echo "$l.KOI8-R KOI8-R"
-+ echo "$l.ISO8859-5 ISO-8859-5"
-+ echo "$l.CP866 CP866"
-+ done
-+ for l in bg_BG; do
-+ echo "$l.CP1251 CP1251"
-+ done
-+ echo "uk_UA.KOI8-U KOI8-U"
-+ echo "zh_TW.BIG5 BIG5"
-+ echo "zh_TW.Big5 BIG5"
-+ echo "zh_CN.EUC GB2312"
-+ echo "ja_JP.EUC EUC-JP"
-+ echo "ja_JP.SJIS SHIFT_JIS"
-+ echo "ko_KR.EUC EUC-KR"
-+ ;;
-+ beos*)
-+ # BeOS has a single locale, and it has UTF-8 encoding.
-+ echo "* UTF-8"
-+ ;;
-+ msdosdjgpp*)
-+ # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
-+ # localcharset.c falls back to using the full locale name
-+ # from the environment variables.
-+ echo "#"
-+ echo "# The encodings given here may not all be correct."
-+ echo "# If you find that the encoding given for your language and"
-+ echo "# country is not the one your DOS machine actually uses, just"
-+ echo "# correct it in this file, and send a mail to"
-+ echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
-+ echo "# and Bruno Haible <bruno@clisp.org>."
-+ echo "#"
-+ echo "C ASCII"
-+ # ISO-8859-1 languages
-+ echo "ca CP850"
-+ echo "ca_ES CP850"
-+ echo "da CP865" # not CP850 ??
-+ echo "da_DK CP865" # not CP850 ??
-+ echo "de CP850"
-+ echo "de_AT CP850"
-+ echo "de_CH CP850"
-+ echo "de_DE CP850"
-+ echo "en CP850"
-+ echo "en_AU CP850" # not CP437 ??
-+ echo "en_CA CP850"
-+ echo "en_GB CP850"
-+ echo "en_NZ CP437"
-+ echo "en_US CP437"
-+ echo "en_ZA CP850" # not CP437 ??
-+ echo "es CP850"
-+ echo "es_AR CP850"
-+ echo "es_BO CP850"
-+ echo "es_CL CP850"
-+ echo "es_CO CP850"
-+ echo "es_CR CP850"
-+ echo "es_CU CP850"
-+ echo "es_DO CP850"
-+ echo "es_EC CP850"
-+ echo "es_ES CP850"
-+ echo "es_GT CP850"
-+ echo "es_HN CP850"
-+ echo "es_MX CP850"
-+ echo "es_NI CP850"
-+ echo "es_PA CP850"
-+ echo "es_PY CP850"
-+ echo "es_PE CP850"
-+ echo "es_SV CP850"
-+ echo "es_UY CP850"
-+ echo "es_VE CP850"
-+ echo "et CP850"
-+ echo "et_EE CP850"
-+ echo "eu CP850"
-+ echo "eu_ES CP850"
-+ echo "fi CP850"
-+ echo "fi_FI CP850"
-+ echo "fr CP850"
-+ echo "fr_BE CP850"
-+ echo "fr_CA CP850"
-+ echo "fr_CH CP850"
-+ echo "fr_FR CP850"
-+ echo "ga CP850"
-+ echo "ga_IE CP850"
-+ echo "gd CP850"
-+ echo "gd_GB CP850"
-+ echo "gl CP850"
-+ echo "gl_ES CP850"
-+ echo "id CP850" # not CP437 ??
-+ echo "id_ID CP850" # not CP437 ??
-+ echo "is CP861" # not CP850 ??
-+ echo "is_IS CP861" # not CP850 ??
-+ echo "it CP850"
-+ echo "it_CH CP850"
-+ echo "it_IT CP850"
-+ echo "lt CP775"
-+ echo "lt_LT CP775"
-+ echo "lv CP775"
-+ echo "lv_LV CP775"
-+ echo "nb CP865" # not CP850 ??
-+ echo "nb_NO CP865" # not CP850 ??
-+ echo "nl CP850"
-+ echo "nl_BE CP850"
-+ echo "nl_NL CP850"
-+ echo "nn CP865" # not CP850 ??
-+ echo "nn_NO CP865" # not CP850 ??
-+ echo "no CP865" # not CP850 ??
-+ echo "no_NO CP865" # not CP850 ??
-+ echo "pt CP850"
-+ echo "pt_BR CP850"
-+ echo "pt_PT CP850"
-+ echo "sv CP850"
-+ echo "sv_SE CP850"
-+ # ISO-8859-2 languages
-+ echo "cs CP852"
-+ echo "cs_CZ CP852"
-+ echo "hr CP852"
-+ echo "hr_HR CP852"
-+ echo "hu CP852"
-+ echo "hu_HU CP852"
-+ echo "pl CP852"
-+ echo "pl_PL CP852"
-+ echo "ro CP852"
-+ echo "ro_RO CP852"
-+ echo "sk CP852"
-+ echo "sk_SK CP852"
-+ echo "sl CP852"
-+ echo "sl_SI CP852"
-+ echo "sq CP852"
-+ echo "sq_AL CP852"
-+ echo "sr CP852" # CP852 or CP866 or CP855 ??
-+ echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
-+ echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
-+ # ISO-8859-3 languages
-+ echo "mt CP850"
-+ echo "mt_MT CP850"
-+ # ISO-8859-5 languages
-+ echo "be CP866"
-+ echo "be_BE CP866"
-+ echo "bg CP866" # not CP855 ??
-+ echo "bg_BG CP866" # not CP855 ??
-+ echo "mk CP866" # not CP855 ??
-+ echo "mk_MK CP866" # not CP855 ??
-+ echo "ru CP866"
-+ echo "ru_RU CP866"
-+ echo "uk CP1125"
-+ echo "uk_UA CP1125"
-+ # ISO-8859-6 languages
-+ echo "ar CP864"
-+ echo "ar_AE CP864"
-+ echo "ar_DZ CP864"
-+ echo "ar_EG CP864"
-+ echo "ar_IQ CP864"
-+ echo "ar_IR CP864"
-+ echo "ar_JO CP864"
-+ echo "ar_KW CP864"
-+ echo "ar_MA CP864"
-+ echo "ar_OM CP864"
-+ echo "ar_QA CP864"
-+ echo "ar_SA CP864"
-+ echo "ar_SY CP864"
-+ # ISO-8859-7 languages
-+ echo "el CP869"
-+ echo "el_GR CP869"
-+ # ISO-8859-8 languages
-+ echo "he CP862"
-+ echo "he_IL CP862"
-+ # ISO-8859-9 languages
-+ echo "tr CP857"
-+ echo "tr_TR CP857"
-+ # Japanese
-+ echo "ja CP932"
-+ echo "ja_JP CP932"
-+ # Chinese
-+ echo "zh_CN GBK"
-+ echo "zh_TW CP950" # not CP938 ??
-+ # Korean
-+ echo "kr CP949" # not CP934 ??
-+ echo "kr_KR CP949" # not CP934 ??
-+ # Thai
-+ echo "th CP874"
-+ echo "th_TH CP874"
-+ # Other
-+ echo "eo CP850"
-+ echo "eo_EO CP850"
-+ ;;
-+esac
---- lrzsz-0.12.20.safe/intl/dcgettext.c 1998-04-26 09:22:36.000000000 -0400
-+++ lrzsz-0.12.20/intl/dcgettext.c 2004-09-12 14:40:34.359747480 -0400
-@@ -1,593 +1,56 @@
--/* Implementation of the dcgettext(3) function
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-+/* Implementation of the dcgettext(3) function.
-+ Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
--#include <sys/types.h>
--
--#ifdef __GNUC__
--# define alloca __builtin_alloca
--# define HAVE_ALLOCA 1
--#else
--# if defined HAVE_ALLOCA_H || defined _LIBC
--# include <alloca.h>
--# else
--# ifdef _AIX
-- #pragma alloca
--# else
--# ifndef alloca
--char *alloca ();
--# endif
--# endif
--# endif
--#endif
--
--#include <errno.h>
--#ifndef errno
--extern int errno;
--#endif
--#ifndef __set_errno
--# define __set_errno(val) errno = (val)
--#endif
--
--#if defined STDC_HEADERS || defined _LIBC
--# include <stdlib.h>
--#else
--char *getenv ();
--# ifdef HAVE_MALLOC_H
--# include <malloc.h>
--# else
--void free ();
--# endif
--#endif
--
--#if defined HAVE_STRING_H || defined _LIBC
--# ifndef _GNU_SOURCE
--# define _GNU_SOURCE 1
--# endif
--# include <string.h>
--#else
--# include <strings.h>
--#endif
--#if !HAVE_STRCHR && !defined _LIBC
--# ifndef strchr
--# define strchr index
--# endif
--#endif
--
--#if defined HAVE_UNISTD_H || defined _LIBC
--# include <unistd.h>
--#endif
--
--#include "gettext.h"
- #include "gettextP.h"
- #ifdef _LIBC
- # include <libintl.h>
- #else
--# include "libgettext.h"
-+# include "libgnuintl.h"
- #endif
--#include "hash-string.h"
-
- /* @@ end of prolog @@ */
-
--#ifdef _LIBC
--/* Rename the non ANSI C functions. This is required by the standard
-- because some ANSI C functions will require linking with this object
-- file and the name space must not be polluted. */
--# define getcwd __getcwd
--# define stpcpy __stpcpy
--#else
--# if !defined HAVE_GETCWD
--char *getwd ();
--# define getcwd(buf, max) getwd (buf)
--# else
--char *getcwd ();
--# endif
--# ifndef HAVE_STPCPY
--static char *stpcpy PARAMS ((char *dest, const char *src));
--# endif
--#endif
--
--/* Amount to increase buffer size by in each try. */
--#define PATH_INCR 32
--
--/* The following is from pathmax.h. */
--/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
-- PATH_MAX but might cause redefinition warnings when sys/param.h is
-- later included (as on MORE/BSD 4.3). */
--#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
--# include <limits.h>
--#endif
--
--#ifndef _POSIX_PATH_MAX
--# define _POSIX_PATH_MAX 255
--#endif
--
--#if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
--# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
--#endif
--
--/* Don't include sys/param.h if it already has been. */
--#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
--# include <sys/param.h>
--#endif
--
--#if !defined(PATH_MAX) && defined(MAXPATHLEN)
--# define PATH_MAX MAXPATHLEN
--#endif
--
--#ifndef PATH_MAX
--# define PATH_MAX _POSIX_PATH_MAX
--#endif
--
--/* XPG3 defines the result of `setlocale (category, NULL)' as:
-- ``Directs `setlocale()' to query `category' and return the current
-- setting of `local'.''
-- However it does not specify the exact format. And even worse: POSIX
-- defines this not at all. So we can use this feature only on selected
-- system (e.g. those using GNU C Library). */
--#ifdef _LIBC
--# define HAVE_LOCALE_NULL
--#endif
--
--/* Name of the default domain used for gettext(3) prior any call to
-- textdomain(3). The default value for this is "messages". */
--const char _nl_default_default_domain[] = "messages";
--
--/* Value used as the default domain for gettext(3). */
--const char *_nl_current_default_domain = _nl_default_default_domain;
--
--/* Contains the default location of the message catalogs. */
--const char _nl_default_dirname[] = GNULOCALEDIR;
--
--/* List with bindings of specific domains created by bindtextdomain()
-- calls. */
--struct binding *_nl_domain_bindings;
--
--/* Prototypes for local functions. */
--static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
-- const char *msgid));
--static const char *category_to_name PARAMS ((int category));
--static const char *guess_category_value PARAMS ((int category,
-- const char *categoryname));
--
--
--/* For those loosing systems which don't have `alloca' we have to add
-- some additional code emulating it. */
--#ifdef HAVE_ALLOCA
--/* Nothing has to be done. */
--# define ADD_BLOCK(list, address) /* nothing */
--# define FREE_BLOCKS(list) /* nothing */
--#else
--struct block_list
--{
-- void *address;
-- struct block_list *next;
--};
--# define ADD_BLOCK(list, addr) \
-- do { \
-- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
-- /* If we cannot get a free block we cannot add the new element to \
-- the list. */ \
-- if (newp != NULL) { \
-- newp->address = (addr); \
-- newp->next = (list); \
-- (list) = newp; \
-- } \
-- } while (0)
--# define FREE_BLOCKS(list) \
-- do { \
-- while (list != NULL) { \
-- struct block_list *old = list; \
-- list = list->next; \
-- free (old); \
-- } \
-- } while (0)
--# undef alloca
--# define alloca(size) (malloc (size))
--#endif /* have alloca */
--
--
- /* Names for the libintl functions are a problem. They must not clash
- with existing names and they should follow ANSI C. But this source
- code is also used in GNU C Library where the names have a __
- prefix. So we have to make a difference here. */
- #ifdef _LIBC
- # define DCGETTEXT __dcgettext
-+# define DCIGETTEXT __dcigettext
- #else
--# define DCGETTEXT dcgettext__
-+# define DCGETTEXT libintl_dcgettext
-+# define DCIGETTEXT libintl_dcigettext
- #endif
-
- /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
- locale. */
- char *
--DCGETTEXT (domainname, msgid, category)
-- const char *domainname;
-- const char *msgid;
-- int category;
-+DCGETTEXT (const char *domainname, const char *msgid, int category)
- {
--#ifndef HAVE_ALLOCA
-- struct block_list *block_list = NULL;
--#endif
-- struct loaded_l10nfile *domain;
-- struct binding *binding;
-- const char *categoryname;
-- const char *categoryvalue;
-- char *dirname, *xdomainname;
-- char *single_locale;
-- char *retval;
-- int saved_errno = errno;
--
-- /* If no real MSGID is given return NULL. */
-- if (msgid == NULL)
-- return NULL;
--
-- /* If DOMAINNAME is NULL, we are interested in the default domain. If
-- CATEGORY is not LC_MESSAGES this might not make much sense but the
-- defintion left this undefined. */
-- if (domainname == NULL)
-- domainname = _nl_current_default_domain;
--
-- /* First find matching binding. */
-- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
-- {
-- int compare = strcmp (domainname, binding->domainname);
-- if (compare == 0)
-- /* We found it! */
-- break;
-- if (compare < 0)
-- {
-- /* It is not in the list. */
-- binding = NULL;
-- break;
-- }
-- }
--
-- if (binding == NULL)
-- dirname = (char *) _nl_default_dirname;
-- else if (binding->dirname[0] == '/')
-- dirname = binding->dirname;
-- else
-- {
-- /* We have a relative path. Make it absolute now. */
-- size_t dirname_len = strlen (binding->dirname) + 1;
-- size_t path_max;
-- char *ret;
--
-- path_max = (unsigned) PATH_MAX;
-- path_max += 2; /* The getcwd docs say to do this. */
--
-- dirname = (char *) alloca (path_max + dirname_len);
-- ADD_BLOCK (block_list, dirname);
--
-- __set_errno (0);
-- while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
-- {
-- path_max += PATH_INCR;
-- dirname = (char *) alloca (path_max + dirname_len);
-- ADD_BLOCK (block_list, dirname);
-- __set_errno (0);
-- }
--
-- if (ret == NULL)
-- {
-- /* We cannot get the current working directory. Don't signal an
-- error but simply return the default string. */
-- FREE_BLOCKS (block_list);
-- __set_errno (saved_errno);
-- return (char *) msgid;
-- }
--
-- stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
-- }
--
-- /* Now determine the symbolic name of CATEGORY and its value. */
-- categoryname = category_to_name (category);
-- categoryvalue = guess_category_value (category, categoryname);
--
-- xdomainname = (char *) alloca (strlen (categoryname)
-- + strlen (domainname) + 5);
-- ADD_BLOCK (block_list, xdomainname);
--
-- stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
-- domainname),
-- ".mo");
--
-- /* Creating working area. */
-- single_locale = (char *) alloca (strlen (categoryvalue) + 1);
-- ADD_BLOCK (block_list, single_locale);
--
--
-- /* Search for the given string. This is a loop because we perhaps
-- got an ordered list of languages to consider for th translation. */
-- while (1)
-- {
-- /* Make CATEGORYVALUE point to the next element of the list. */
-- while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
-- ++categoryvalue;
-- if (categoryvalue[0] == '\0')
-- {
-- /* The whole contents of CATEGORYVALUE has been searched but
-- no valid entry has been found. We solve this situation
-- by implicitly appending a "C" entry, i.e. no translation
-- will take place. */
-- single_locale[0] = 'C';
-- single_locale[1] = '\0';
-- }
-- else
-- {
-- char *cp = single_locale;
-- while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
-- *cp++ = *categoryvalue++;
-- *cp = '\0';
-- }
--
-- /* If the current locale value is C (or POSIX) we don't load a
-- domain. Return the MSGID. */
-- if (strcmp (single_locale, "C") == 0
-- || strcmp (single_locale, "POSIX") == 0)
-- {
-- FREE_BLOCKS (block_list);
-- __set_errno (saved_errno);
-- return (char *) msgid;
-- }
--
--
-- /* Find structure describing the message catalog matching the
-- DOMAINNAME and CATEGORY. */
-- domain = _nl_find_domain (dirname, single_locale, xdomainname);
--
-- if (domain != NULL)
-- {
-- retval = find_msg (domain, msgid);
--
-- if (retval == NULL)
-- {
-- int cnt;
--
-- for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
-- {
-- retval = find_msg (domain->successor[cnt], msgid);
--
-- if (retval != NULL)
-- break;
-- }
-- }
--
-- if (retval != NULL)
-- {
-- FREE_BLOCKS (block_list);
-- __set_errno (saved_errno);
-- return retval;
-- }
-- }
-- }
-- /* NOTREACHED */
-+ return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
- }
-
- #ifdef _LIBC
- /* Alias for function name in GNU C Library. */
-+INTDEF(__dcgettext)
- weak_alias (__dcgettext, dcgettext);
- #endif
--
--
--static char *
--find_msg (domain_file, msgid)
-- struct loaded_l10nfile *domain_file;
-- const char *msgid;
--{
-- size_t top, act, bottom;
-- struct loaded_domain *domain;
--
-- if (domain_file->decided == 0)
-- _nl_load_domain (domain_file);
--
-- if (domain_file->data == NULL)
-- return NULL;
--
-- domain = (struct loaded_domain *) domain_file->data;
--
-- /* Locate the MSGID and its translation. */
-- if (domain->hash_size > 2 && domain->hash_tab != NULL)
-- {
-- /* Use the hashing table. */
-- nls_uint32 len = strlen (msgid);
-- nls_uint32 hash_val = hash_string (msgid);
-- nls_uint32 idx = hash_val % domain->hash_size;
-- nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
-- nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
--
-- if (nstr == 0)
-- /* Hash table entry is empty. */
-- return NULL;
--
-- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
-- && strcmp (msgid,
-- domain->data + W (domain->must_swap,
-- domain->orig_tab[nstr - 1].offset)) == 0)
-- return (char *) domain->data + W (domain->must_swap,
-- domain->trans_tab[nstr - 1].offset);
--
-- while (1)
-- {
-- if (idx >= domain->hash_size - incr)
-- idx -= domain->hash_size - incr;
-- else
-- idx += incr;
--
-- nstr = W (domain->must_swap, domain->hash_tab[idx]);
-- if (nstr == 0)
-- /* Hash table entry is empty. */
-- return NULL;
--
-- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
-- && strcmp (msgid,
-- domain->data + W (domain->must_swap,
-- domain->orig_tab[nstr - 1].offset))
-- == 0)
-- return (char *) domain->data
-- + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
-- }
-- /* NOTREACHED */
-- }
--
-- /* Now we try the default method: binary search in the sorted
-- array of messages. */
-- bottom = 0;
-- top = domain->nstrings;
-- while (bottom < top)
-- {
-- int cmp_val;
--
-- act = (bottom + top) / 2;
-- cmp_val = strcmp (msgid, domain->data
-- + W (domain->must_swap,
-- domain->orig_tab[act].offset));
-- if (cmp_val < 0)
-- top = act;
-- else if (cmp_val > 0)
-- bottom = act + 1;
-- else
-- break;
-- }
--
-- /* If an translation is found return this. */
-- return bottom >= top ? NULL : (char *) domain->data
-- + W (domain->must_swap,
-- domain->trans_tab[act].offset);
--}
--
--
--/* Return string representation of locale CATEGORY. */
--static const char *
--category_to_name (category)
-- int category;
--{
-- const char *retval;
--
-- switch (category)
-- {
--#ifdef LC_COLLATE
-- case LC_COLLATE:
-- retval = "LC_COLLATE";
-- break;
--#endif
--#ifdef LC_CTYPE
-- case LC_CTYPE:
-- retval = "LC_CTYPE";
-- break;
--#endif
--#ifdef LC_MONETARY
-- case LC_MONETARY:
-- retval = "LC_MONETARY";
-- break;
--#endif
--#ifdef LC_NUMERIC
-- case LC_NUMERIC:
-- retval = "LC_NUMERIC";
-- break;
--#endif
--#ifdef LC_TIME
-- case LC_TIME:
-- retval = "LC_TIME";
-- break;
--#endif
--#ifdef LC_MESSAGES
-- case LC_MESSAGES:
-- retval = "LC_MESSAGES";
-- break;
--#endif
--#ifdef LC_RESPONSE
-- case LC_RESPONSE:
-- retval = "LC_RESPONSE";
-- break;
--#endif
--#ifdef LC_ALL
-- case LC_ALL:
-- /* This might not make sense but is perhaps better than any other
-- value. */
-- retval = "LC_ALL";
-- break;
--#endif
-- default:
-- /* If you have a better idea for a default value let me know. */
-- retval = "LC_XXX";
-- }
--
-- return retval;
--}
--
--/* Guess value of current locale from value of the environment variables. */
--static const char *
--guess_category_value (category, categoryname)
-- int category;
-- const char *categoryname;
--{
-- const char *retval;
--
-- /* The highest priority value is the `LANGUAGE' environment
-- variable. This is a GNU extension. */
-- retval = getenv ("LANGUAGE");
-- if (retval != NULL && retval[0] != '\0')
-- return retval;
--
-- /* `LANGUAGE' is not set. So we have to proceed with the POSIX
-- methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some
-- systems this can be done by the `setlocale' function itself. */
--#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
-- return setlocale (category, NULL);
--#else
-- /* Setting of LC_ALL overwrites all other. */
-- retval = getenv ("LC_ALL");
-- if (retval != NULL && retval[0] != '\0')
-- return retval;
--
-- /* Next comes the name of the desired category. */
-- retval = getenv (categoryname);
-- if (retval != NULL && retval[0] != '\0')
-- return retval;
--
-- /* Last possibility is the LANG environment variable. */
-- retval = getenv ("LANG");
-- if (retval != NULL && retval[0] != '\0')
-- return retval;
--
-- /* We use C as the default domain. POSIX says this is implementation
-- defined. */
-- return "C";
--#endif
--}
--
--/* @@ begin of epilog @@ */
--
--/* We don't want libintl.a to depend on any other library. So we
-- avoid the non-standard function stpcpy. In GNU C Library this
-- function is available, though. Also allow the symbol HAVE_STPCPY
-- to be defined. */
--#if !_LIBC && !HAVE_STPCPY
--static char *
--stpcpy (dest, src)
-- char *dest;
-- const char *src;
--{
-- while ((*dest++ = *src++) != '\0')
-- /* Do nothing. */ ;
-- return dest - 1;
--}
--#endif
---- lrzsz-0.12.20.safe/intl/dcigettext.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/dcigettext.c 2004-09-12 14:40:34.369745960 -0400
-@@ -0,0 +1,1219 @@
-+/* Implementation of the internal dcigettext function.
-+ Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
-+ This must come before <config.h> because <config.h> may include
-+ <features.h>, and once <features.h> has been included, it's too late. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <sys/types.h>
-+
-+#ifdef __GNUC__
-+# define alloca __builtin_alloca
-+# define HAVE_ALLOCA 1
-+#else
-+# ifdef _MSC_VER
-+# include <malloc.h>
-+# define alloca _alloca
-+# else
-+# if defined HAVE_ALLOCA_H || defined _LIBC
-+# include <alloca.h>
-+# else
-+# ifdef _AIX
-+ #pragma alloca
-+# else
-+# ifndef alloca
-+char *alloca ();
-+# endif
-+# endif
-+# endif
-+# endif
-+#endif
-+
-+#include <errno.h>
-+#ifndef errno
-+extern int errno;
-+#endif
-+#ifndef __set_errno
-+# define __set_errno(val) errno = (val)
-+#endif
-+
-+#include <stddef.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#if defined HAVE_UNISTD_H || defined _LIBC
-+# include <unistd.h>
-+#endif
-+
-+#include <locale.h>
-+
-+#ifdef _LIBC
-+ /* Guess whether integer division by zero raises signal SIGFPE.
-+ Set to 1 only if you know for sure. In case of doubt, set to 0. */
-+# if defined __alpha__ || defined __arm__ || defined __i386__ \
-+ || defined __m68k__ || defined __s390__
-+# define INTDIV0_RAISES_SIGFPE 1
-+# else
-+# define INTDIV0_RAISES_SIGFPE 0
-+# endif
-+#endif
-+#if !INTDIV0_RAISES_SIGFPE
-+# include <signal.h>
-+#endif
-+
-+#if defined HAVE_SYS_PARAM_H || defined _LIBC
-+# include <sys/param.h>
-+#endif
-+
-+#include "gettextP.h"
-+#include "plural-exp.h"
-+#ifdef _LIBC
-+# include <libintl.h>
-+#else
-+# include "libgnuintl.h"
-+#endif
-+#include "hash-string.h"
-+
-+/* Thread safetyness. */
-+#ifdef _LIBC
-+# include <bits/libc-lock.h>
-+#else
-+/* Provide dummy implementation if this is outside glibc. */
-+# define __libc_lock_define_initialized(CLASS, NAME)
-+# define __libc_lock_lock(NAME)
-+# define __libc_lock_unlock(NAME)
-+# define __libc_rwlock_define_initialized(CLASS, NAME)
-+# define __libc_rwlock_rdlock(NAME)
-+# define __libc_rwlock_unlock(NAME)
-+#endif
-+
-+/* Alignment of types. */
-+#if defined __GNUC__ && __GNUC__ >= 2
-+# define alignof(TYPE) __alignof__ (TYPE)
-+#else
-+# define alignof(TYPE) \
-+ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2)
-+#endif
-+
-+/* The internal variables in the standalone libintl.a must have different
-+ names than the internal variables in GNU libc, otherwise programs
-+ using libintl.a cannot be linked statically. */
-+#if !defined _LIBC
-+# define _nl_default_default_domain libintl_nl_default_default_domain
-+# define _nl_current_default_domain libintl_nl_current_default_domain
-+# define _nl_default_dirname libintl_nl_default_dirname
-+# define _nl_domain_bindings libintl_nl_domain_bindings
-+#endif
-+
-+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
-+#ifndef offsetof
-+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
-+#endif
-+
-+/* @@ end of prolog @@ */
-+
-+#ifdef _LIBC
-+/* Rename the non ANSI C functions. This is required by the standard
-+ because some ANSI C functions will require linking with this object
-+ file and the name space must not be polluted. */
-+# define getcwd __getcwd
-+# ifndef stpcpy
-+# define stpcpy __stpcpy
-+# endif
-+# define tfind __tfind
-+#else
-+# if !defined HAVE_GETCWD
-+char *getwd ();
-+# define getcwd(buf, max) getwd (buf)
-+# else
-+# if VMS
-+# define getcwd(buf, max) (getcwd) (buf, max, 0)
-+# else
-+char *getcwd ();
-+# endif
-+# endif
-+# ifndef HAVE_STPCPY
-+static char *stpcpy (char *dest, const char *src);
-+# endif
-+# ifndef HAVE_MEMPCPY
-+static void *mempcpy (void *dest, const void *src, size_t n);
-+# endif
-+#endif
-+
-+/* Amount to increase buffer size by in each try. */
-+#define PATH_INCR 32
-+
-+/* The following is from pathmax.h. */
-+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
-+ PATH_MAX but might cause redefinition warnings when sys/param.h is
-+ later included (as on MORE/BSD 4.3). */
-+#if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__)
-+# include <limits.h>
-+#endif
-+
-+#ifndef _POSIX_PATH_MAX
-+# define _POSIX_PATH_MAX 255
-+#endif
-+
-+#if !defined PATH_MAX && defined _PC_PATH_MAX
-+# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
-+#endif
-+
-+/* Don't include sys/param.h if it already has been. */
-+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
-+# include <sys/param.h>
-+#endif
-+
-+#if !defined PATH_MAX && defined MAXPATHLEN
-+# define PATH_MAX MAXPATHLEN
-+#endif
-+
-+#ifndef PATH_MAX
-+# define PATH_MAX _POSIX_PATH_MAX
-+#endif
-+
-+/* Pathname support.
-+ ISSLASH(C) tests whether C is a directory separator character.
-+ IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
-+ it may be concatenated to a directory pathname.
-+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
-+ */
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+ /* Win32, OS/2, DOS */
-+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-+# define HAS_DEVICE(P) \
-+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
-+ && (P)[1] == ':')
-+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
-+# define IS_PATH_WITH_DIR(P) \
-+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
-+#else
-+ /* Unix */
-+# define ISSLASH(C) ((C) == '/')
-+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
-+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
-+#endif
-+
-+/* This is the type used for the search tree where known translations
-+ are stored. */
-+struct known_translation_t
-+{
-+ /* Domain in which to search. */
-+ char *domainname;
-+
-+ /* The category. */
-+ int category;
-+
-+ /* State of the catalog counter at the point the string was found. */
-+ int counter;
-+
-+ /* Catalog where the string was found. */
-+ struct loaded_l10nfile *domain;
-+
-+ /* And finally the translation. */
-+ const char *translation;
-+ size_t translation_length;
-+
-+ /* Pointer to the string in question. */
-+ char msgid[ZERO];
-+};
-+
-+/* Root of the search tree with known translations. We can use this
-+ only if the system provides the `tsearch' function family. */
-+#if defined HAVE_TSEARCH || defined _LIBC
-+# include <search.h>
-+
-+static void *root;
-+
-+# ifdef _LIBC
-+# define tsearch __tsearch
-+# endif
-+
-+/* Function to compare two entries in the table of known translations. */
-+static int
-+transcmp (const void *p1, const void *p2)
-+{
-+ const struct known_translation_t *s1;
-+ const struct known_translation_t *s2;
-+ int result;
-+
-+ s1 = (const struct known_translation_t *) p1;
-+ s2 = (const struct known_translation_t *) p2;
-+
-+ result = strcmp (s1->msgid, s2->msgid);
-+ if (result == 0)
-+ {
-+ result = strcmp (s1->domainname, s2->domainname);
-+ if (result == 0)
-+ /* We compare the category last (though this is the cheapest
-+ operation) since it is hopefully always the same (namely
-+ LC_MESSAGES). */
-+ result = s1->category - s2->category;
-+ }
-+
-+ return result;
-+}
-+#endif
-+
-+#ifndef INTVARDEF
-+# define INTVARDEF(name)
-+#endif
-+#ifndef INTUSE
-+# define INTUSE(name) name
-+#endif
-+
-+/* Name of the default domain used for gettext(3) prior any call to
-+ textdomain(3). The default value for this is "messages". */
-+const char _nl_default_default_domain[] attribute_hidden = "messages";
-+
-+/* Value used as the default domain for gettext(3). */
-+const char *_nl_current_default_domain attribute_hidden
-+ = _nl_default_default_domain;
-+
-+/* Contains the default location of the message catalogs. */
-+#if defined __EMX__
-+extern const char _nl_default_dirname[];
-+#else
-+const char _nl_default_dirname[] = LOCALEDIR;
-+INTVARDEF (_nl_default_dirname)
-+#endif
-+
-+/* List with bindings of specific domains created by bindtextdomain()
-+ calls. */
-+struct binding *_nl_domain_bindings;
-+
-+/* Prototypes for local functions. */
-+static char *plural_lookup (struct loaded_l10nfile *domain,
-+ unsigned long int n,
-+ const char *translation, size_t translation_len)
-+ internal_function;
-+static const char *guess_category_value (int category,
-+ const char *categoryname)
-+ internal_function;
-+#ifdef _LIBC
-+# include "../locale/localeinfo.h"
-+# define category_to_name(category) _nl_category_names[category]
-+#else
-+static const char *category_to_name (int category) internal_function;
-+#endif
-+
-+
-+/* For those loosing systems which don't have `alloca' we have to add
-+ some additional code emulating it. */
-+#ifdef HAVE_ALLOCA
-+/* Nothing has to be done. */
-+# define freea(p) /* nothing */
-+# define ADD_BLOCK(list, address) /* nothing */
-+# define FREE_BLOCKS(list) /* nothing */
-+#else
-+struct block_list
-+{
-+ void *address;
-+ struct block_list *next;
-+};
-+# define ADD_BLOCK(list, addr) \
-+ do { \
-+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
-+ /* If we cannot get a free block we cannot add the new element to \
-+ the list. */ \
-+ if (newp != NULL) { \
-+ newp->address = (addr); \
-+ newp->next = (list); \
-+ (list) = newp; \
-+ } \
-+ } while (0)
-+# define FREE_BLOCKS(list) \
-+ do { \
-+ while (list != NULL) { \
-+ struct block_list *old = list; \
-+ list = list->next; \
-+ free (old->address); \
-+ free (old); \
-+ } \
-+ } while (0)
-+# undef alloca
-+# define alloca(size) (malloc (size))
-+# define freea(p) free (p)
-+#endif /* have alloca */
-+
-+
-+#ifdef _LIBC
-+/* List of blocks allocated for translations. */
-+typedef struct transmem_list
-+{
-+ struct transmem_list *next;
-+ char data[ZERO];
-+} transmem_block_t;
-+static struct transmem_list *transmem_list;
-+#else
-+typedef unsigned char transmem_block_t;
-+#endif
-+
-+
-+/* Names for the libintl functions are a problem. They must not clash
-+ with existing names and they should follow ANSI C. But this source
-+ code is also used in GNU C Library where the names have a __
-+ prefix. So we have to make a difference here. */
-+#ifdef _LIBC
-+# define DCIGETTEXT __dcigettext
-+#else
-+# define DCIGETTEXT libintl_dcigettext
-+#endif
-+
-+/* Lock variable to protect the global data in the gettext implementation. */
-+#ifdef _LIBC
-+__libc_rwlock_define_initialized (, _nl_state_lock attribute_hidden)
-+#endif
-+
-+/* Checking whether the binaries runs SUID must be done and glibc provides
-+ easier methods therefore we make a difference here. */
-+#ifdef _LIBC
-+# define ENABLE_SECURE __libc_enable_secure
-+# define DETERMINE_SECURE
-+#else
-+# ifndef HAVE_GETUID
-+# define getuid() 0
-+# endif
-+# ifndef HAVE_GETGID
-+# define getgid() 0
-+# endif
-+# ifndef HAVE_GETEUID
-+# define geteuid() getuid()
-+# endif
-+# ifndef HAVE_GETEGID
-+# define getegid() getgid()
-+# endif
-+static int enable_secure;
-+# define ENABLE_SECURE (enable_secure == 1)
-+# define DETERMINE_SECURE \
-+ if (enable_secure == 0) \
-+ { \
-+ if (getuid () != geteuid () || getgid () != getegid ()) \
-+ enable_secure = 1; \
-+ else \
-+ enable_secure = -1; \
-+ }
-+#endif
-+
-+/* Get the function to evaluate the plural expression. */
-+#include "eval-plural.h"
-+
-+/* Look up MSGID in the DOMAINNAME message catalog for the current
-+ CATEGORY locale and, if PLURAL is nonzero, search over string
-+ depending on the plural form determined by N. */
-+char *
-+DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
-+ int plural, unsigned long int n, int category)
-+{
-+#ifndef HAVE_ALLOCA
-+ struct block_list *block_list = NULL;
-+#endif
-+ struct loaded_l10nfile *domain;
-+ struct binding *binding;
-+ const char *categoryname;
-+ const char *categoryvalue;
-+ char *dirname, *xdomainname;
-+ char *single_locale;
-+ char *retval;
-+ size_t retlen;
-+ int saved_errno;
-+#if defined HAVE_TSEARCH || defined _LIBC
-+ struct known_translation_t *search;
-+ struct known_translation_t **foundp = NULL;
-+ size_t msgid_len;
-+#endif
-+ size_t domainname_len;
-+
-+ /* If no real MSGID is given return NULL. */
-+ if (msgid1 == NULL)
-+ return NULL;
-+
-+#ifdef _LIBC
-+ if (category < 0 || category >= __LC_LAST || category == LC_ALL)
-+ /* Bogus. */
-+ return (plural == 0
-+ ? (char *) msgid1
-+ /* Use the Germanic plural rule. */
-+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
-+#endif
-+
-+ __libc_rwlock_rdlock (_nl_state_lock);
-+
-+ /* If DOMAINNAME is NULL, we are interested in the default domain. If
-+ CATEGORY is not LC_MESSAGES this might not make much sense but the
-+ definition left this undefined. */
-+ if (domainname == NULL)
-+ domainname = _nl_current_default_domain;
-+
-+ /* OS/2 specific: backward compatibility with older libintl versions */
-+#ifdef LC_MESSAGES_COMPAT
-+ if (category == LC_MESSAGES_COMPAT)
-+ category = LC_MESSAGES;
-+#endif
-+
-+#if defined HAVE_TSEARCH || defined _LIBC
-+ msgid_len = strlen (msgid1) + 1;
-+
-+ /* Try to find the translation among those which we found at
-+ some time. */
-+ search = (struct known_translation_t *)
-+ alloca (offsetof (struct known_translation_t, msgid) + msgid_len);
-+ memcpy (search->msgid, msgid1, msgid_len);
-+ search->domainname = (char *) domainname;
-+ search->category = category;
-+
-+ foundp = (struct known_translation_t **) tfind (search, &root, transcmp);
-+ freea (search);
-+ if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr)
-+ {
-+ /* Now deal with plural. */
-+ if (plural)
-+ retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation,
-+ (*foundp)->translation_length);
-+ else
-+ retval = (char *) (*foundp)->translation;
-+
-+ __libc_rwlock_unlock (_nl_state_lock);
-+ return retval;
-+ }
-+#endif
-+
-+ /* Preserve the `errno' value. */
-+ saved_errno = errno;
-+
-+ /* See whether this is a SUID binary or not. */
-+ DETERMINE_SECURE;
-+
-+ /* First find matching binding. */
-+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
-+ {
-+ int compare = strcmp (domainname, binding->domainname);
-+ if (compare == 0)
-+ /* We found it! */
-+ break;
-+ if (compare < 0)
-+ {
-+ /* It is not in the list. */
-+ binding = NULL;
-+ break;
-+ }
-+ }
-+
-+ if (binding == NULL)
-+ dirname = (char *) INTUSE(_nl_default_dirname);
-+ else if (IS_ABSOLUTE_PATH (binding->dirname))
-+ dirname = binding->dirname;
-+ else
-+ {
-+ /* We have a relative path. Make it absolute now. */
-+ size_t dirname_len = strlen (binding->dirname) + 1;
-+ size_t path_max;
-+ char *ret;
-+
-+ path_max = (unsigned int) PATH_MAX;
-+ path_max += 2; /* The getcwd docs say to do this. */
-+
-+ for (;;)
-+ {
-+ dirname = (char *) alloca (path_max + dirname_len);
-+ ADD_BLOCK (block_list, dirname);
-+
-+ __set_errno (0);
-+ ret = getcwd (dirname, path_max);
-+ if (ret != NULL || errno != ERANGE)
-+ break;
-+
-+ path_max += path_max / 2;
-+ path_max += PATH_INCR;
-+ }
-+
-+ if (ret == NULL)
-+ /* We cannot get the current working directory. Don't signal an
-+ error but simply return the default string. */
-+ goto return_untranslated;
-+
-+ stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
-+ }
-+
-+ /* Now determine the symbolic name of CATEGORY and its value. */
-+ categoryname = category_to_name (category);
-+ categoryvalue = guess_category_value (category, categoryname);
-+
-+ domainname_len = strlen (domainname);
-+ xdomainname = (char *) alloca (strlen (categoryname)
-+ + domainname_len + 5);
-+ ADD_BLOCK (block_list, xdomainname);
-+
-+ stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
-+ domainname, domainname_len),
-+ ".mo");
-+
-+ /* Creating working area. */
-+ single_locale = (char *) alloca (strlen (categoryvalue) + 1);
-+ ADD_BLOCK (block_list, single_locale);
-+
-+
-+ /* Search for the given string. This is a loop because we perhaps
-+ got an ordered list of languages to consider for the translation. */
-+ while (1)
-+ {
-+ /* Make CATEGORYVALUE point to the next element of the list. */
-+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
-+ ++categoryvalue;
-+ if (categoryvalue[0] == '\0')
-+ {
-+ /* The whole contents of CATEGORYVALUE has been searched but
-+ no valid entry has been found. We solve this situation
-+ by implicitly appending a "C" entry, i.e. no translation
-+ will take place. */
-+ single_locale[0] = 'C';
-+ single_locale[1] = '\0';
-+ }
-+ else
-+ {
-+ char *cp = single_locale;
-+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
-+ *cp++ = *categoryvalue++;
-+ *cp = '\0';
-+
-+ /* When this is a SUID binary we must not allow accessing files
-+ outside the dedicated directories. */
-+ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale))
-+ /* Ingore this entry. */
-+ continue;
-+ }
-+
-+ /* If the current locale value is C (or POSIX) we don't load a
-+ domain. Return the MSGID. */
-+ if (strcmp (single_locale, "C") == 0
-+ || strcmp (single_locale, "POSIX") == 0)
-+ break;
-+
-+ /* Find structure describing the message catalog matching the
-+ DOMAINNAME and CATEGORY. */
-+ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding);
-+
-+ if (domain != NULL)
-+ {
-+ retval = _nl_find_msg (domain, binding, msgid1, &retlen);
-+
-+ if (retval == NULL)
-+ {
-+ int cnt;
-+
-+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
-+ {
-+ retval = _nl_find_msg (domain->successor[cnt], binding,
-+ msgid1, &retlen);
-+
-+ if (retval != NULL)
-+ {
-+ domain = domain->successor[cnt];
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (retval != NULL)
-+ {
-+ /* Found the translation of MSGID1 in domain DOMAIN:
-+ starting at RETVAL, RETLEN bytes. */
-+ FREE_BLOCKS (block_list);
-+#if defined HAVE_TSEARCH || defined _LIBC
-+ if (foundp == NULL)
-+ {
-+ /* Create a new entry and add it to the search tree. */
-+ struct known_translation_t *newp;
-+
-+ newp = (struct known_translation_t *)
-+ malloc (offsetof (struct known_translation_t, msgid)
-+ + msgid_len + domainname_len + 1);
-+ if (newp != NULL)
-+ {
-+ newp->domainname =
-+ mempcpy (newp->msgid, msgid1, msgid_len);
-+ memcpy (newp->domainname, domainname, domainname_len + 1);
-+ newp->category = category;
-+ newp->counter = _nl_msg_cat_cntr;
-+ newp->domain = domain;
-+ newp->translation = retval;
-+ newp->translation_length = retlen;
-+
-+ /* Insert the entry in the search tree. */
-+ foundp = (struct known_translation_t **)
-+ tsearch (newp, &root, transcmp);
-+ if (foundp == NULL
-+ || __builtin_expect (*foundp != newp, 0))
-+ /* The insert failed. */
-+ free (newp);
-+ }
-+ }
-+ else
-+ {
-+ /* We can update the existing entry. */
-+ (*foundp)->counter = _nl_msg_cat_cntr;
-+ (*foundp)->domain = domain;
-+ (*foundp)->translation = retval;
-+ (*foundp)->translation_length = retlen;
-+ }
-+#endif
-+ __set_errno (saved_errno);
-+
-+ /* Now deal with plural. */
-+ if (plural)
-+ retval = plural_lookup (domain, n, retval, retlen);
-+
-+ __libc_rwlock_unlock (_nl_state_lock);
-+ return retval;
-+ }
-+ }
-+ }
-+
-+ return_untranslated:
-+ /* Return the untranslated MSGID. */
-+ FREE_BLOCKS (block_list);
-+ __libc_rwlock_unlock (_nl_state_lock);
-+#ifndef _LIBC
-+ if (!ENABLE_SECURE)
-+ {
-+ extern void _nl_log_untranslated (const char *logfilename,
-+ const char *domainname,
-+ const char *msgid1, const char *msgid2,
-+ int plural);
-+ const char *logfilename = getenv ("GETTEXT_LOG_UNTRANSLATED");
-+
-+ if (logfilename != NULL && logfilename[0] != '\0')
-+ _nl_log_untranslated (logfilename, domainname, msgid1, msgid2, plural);
-+ }
-+#endif
-+ __set_errno (saved_errno);
-+ return (plural == 0
-+ ? (char *) msgid1
-+ /* Use the Germanic plural rule. */
-+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
-+}
-+
-+
-+char *
-+internal_function
-+_nl_find_msg (struct loaded_l10nfile *domain_file,
-+ struct binding *domainbinding, const char *msgid,
-+ size_t *lengthp)
-+{
-+ struct loaded_domain *domain;
-+ nls_uint32 nstrings;
-+ size_t act;
-+ char *result;
-+ size_t resultlen;
-+
-+ if (domain_file->decided == 0)
-+ _nl_load_domain (domain_file, domainbinding);
-+
-+ if (domain_file->data == NULL)
-+ return NULL;
-+
-+ domain = (struct loaded_domain *) domain_file->data;
-+
-+ nstrings = domain->nstrings;
-+
-+ /* Locate the MSGID and its translation. */
-+ if (domain->hash_tab != NULL)
-+ {
-+ /* Use the hashing table. */
-+ nls_uint32 len = strlen (msgid);
-+ nls_uint32 hash_val = hash_string (msgid);
-+ nls_uint32 idx = hash_val % domain->hash_size;
-+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
-+
-+ while (1)
-+ {
-+ nls_uint32 nstr =
-+ W (domain->must_swap_hash_tab, domain->hash_tab[idx]);
-+
-+ if (nstr == 0)
-+ /* Hash table entry is empty. */
-+ return NULL;
-+
-+ nstr--;
-+
-+ /* Compare msgid with the original string at index nstr.
-+ We compare the lengths with >=, not ==, because plural entries
-+ are represented by strings with an embedded NUL. */
-+ if (nstr < nstrings
-+ ? W (domain->must_swap, domain->orig_tab[nstr].length) >= len
-+ && (strcmp (msgid,
-+ domain->data + W (domain->must_swap,
-+ domain->orig_tab[nstr].offset))
-+ == 0)
-+ : domain->orig_sysdep_tab[nstr - nstrings].length > len
-+ && (strcmp (msgid,
-+ domain->orig_sysdep_tab[nstr - nstrings].pointer)
-+ == 0))
-+ {
-+ act = nstr;
-+ goto found;
-+ }
-+
-+ if (idx >= domain->hash_size - incr)
-+ idx -= domain->hash_size - incr;
-+ else
-+ idx += incr;
-+ }
-+ /* NOTREACHED */
-+ }
-+ else
-+ {
-+ /* Try the default method: binary search in the sorted array of
-+ messages. */
-+ size_t top, bottom;
-+
-+ bottom = 0;
-+ top = nstrings;
-+ while (bottom < top)
-+ {
-+ int cmp_val;
-+
-+ act = (bottom + top) / 2;
-+ cmp_val = strcmp (msgid, (domain->data
-+ + W (domain->must_swap,
-+ domain->orig_tab[act].offset)));
-+ if (cmp_val < 0)
-+ top = act;
-+ else if (cmp_val > 0)
-+ bottom = act + 1;
-+ else
-+ goto found;
-+ }
-+ /* No translation was found. */
-+ return NULL;
-+ }
-+
-+ found:
-+ /* The translation was found at index ACT. If we have to convert the
-+ string to use a different character set, this is the time. */
-+ if (act < nstrings)
-+ {
-+ result = (char *)
-+ (domain->data + W (domain->must_swap, domain->trans_tab[act].offset));
-+ resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1;
-+ }
-+ else
-+ {
-+ result = (char *) domain->trans_sysdep_tab[act - nstrings].pointer;
-+ resultlen = domain->trans_sysdep_tab[act - nstrings].length;
-+ }
-+
-+#if defined _LIBC || HAVE_ICONV
-+ if (domain->codeset_cntr
-+ != (domainbinding != NULL ? domainbinding->codeset_cntr : 0))
-+ {
-+ /* The domain's codeset has changed through bind_textdomain_codeset()
-+ since the message catalog was initialized or last accessed. We
-+ have to reinitialize the converter. */
-+ _nl_free_domain_conv (domain);
-+ _nl_init_domain_conv (domain_file, domain, domainbinding);
-+ }
-+
-+ if (
-+# ifdef _LIBC
-+ domain->conv != (__gconv_t) -1
-+# else
-+# if HAVE_ICONV
-+ domain->conv != (iconv_t) -1
-+# endif
-+# endif
-+ )
-+ {
-+ /* We are supposed to do a conversion. First allocate an
-+ appropriate table with the same structure as the table
-+ of translations in the file, where we can put the pointers
-+ to the converted strings in.
-+ There is a slight complication with plural entries. They
-+ are represented by consecutive NUL terminated strings. We
-+ handle this case by converting RESULTLEN bytes, including
-+ NULs. */
-+
-+ if (domain->conv_tab == NULL
-+ && ((domain->conv_tab =
-+ (char **) calloc (nstrings + domain->n_sysdep_strings,
-+ sizeof (char *)))
-+ == NULL))
-+ /* Mark that we didn't succeed allocating a table. */
-+ domain->conv_tab = (char **) -1;
-+
-+ if (__builtin_expect (domain->conv_tab == (char **) -1, 0))
-+ /* Nothing we can do, no more memory. */
-+ goto converted;
-+
-+ if (domain->conv_tab[act] == NULL)
-+ {
-+ /* We haven't used this string so far, so it is not
-+ translated yet. Do this now. */
-+ /* We use a bit more efficient memory handling.
-+ We allocate always larger blocks which get used over
-+ time. This is faster than many small allocations. */
-+ __libc_lock_define_initialized (static, lock)
-+# define INITIAL_BLOCK_SIZE 4080
-+ static unsigned char *freemem;
-+ static size_t freemem_size;
-+
-+ const unsigned char *inbuf;
-+ unsigned char *outbuf;
-+ int malloc_count;
-+# ifndef _LIBC
-+ transmem_block_t *transmem_list = NULL;
-+# endif
-+
-+ __libc_lock_lock (lock);
-+
-+ inbuf = (const unsigned char *) result;
-+ outbuf = freemem + sizeof (size_t);
-+
-+ malloc_count = 0;
-+ while (1)
-+ {
-+ transmem_block_t *newmem;
-+# ifdef _LIBC
-+ size_t non_reversible;
-+ int res;
-+
-+ if (freemem_size < sizeof (size_t))
-+ goto resize_freemem;
-+
-+ res = __gconv (domain->conv,
-+ &inbuf, inbuf + resultlen,
-+ &outbuf,
-+ outbuf + freemem_size - sizeof (size_t),
-+ &non_reversible);
-+
-+ if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT)
-+ break;
-+
-+ if (res != __GCONV_FULL_OUTPUT)
-+ {
-+ __libc_lock_unlock (lock);
-+ goto converted;
-+ }
-+
-+ inbuf = result;
-+# else
-+# if HAVE_ICONV
-+ const char *inptr = (const char *) inbuf;
-+ size_t inleft = resultlen;
-+ char *outptr = (char *) outbuf;
-+ size_t outleft;
-+
-+ if (freemem_size < sizeof (size_t))
-+ goto resize_freemem;
-+
-+ outleft = freemem_size - sizeof (size_t);
-+ if (iconv (domain->conv,
-+ (ICONV_CONST char **) &inptr, &inleft,
-+ &outptr, &outleft)
-+ != (size_t) (-1))
-+ {
-+ outbuf = (unsigned char *) outptr;
-+ break;
-+ }
-+ if (errno != E2BIG)
-+ {
-+ __libc_lock_unlock (lock);
-+ goto converted;
-+ }
-+# endif
-+# endif
-+
-+ resize_freemem:
-+ /* We must allocate a new buffer or resize the old one. */
-+ if (malloc_count > 0)
-+ {
-+ ++malloc_count;
-+ freemem_size = malloc_count * INITIAL_BLOCK_SIZE;
-+ newmem = (transmem_block_t *) realloc (transmem_list,
-+ freemem_size);
-+# ifdef _LIBC
-+ if (newmem != NULL)
-+ transmem_list = transmem_list->next;
-+ else
-+ {
-+ struct transmem_list *old = transmem_list;
-+
-+ transmem_list = transmem_list->next;
-+ free (old);
-+ }
-+# endif
-+ }
-+ else
-+ {
-+ malloc_count = 1;
-+ freemem_size = INITIAL_BLOCK_SIZE;
-+ newmem = (transmem_block_t *) malloc (freemem_size);
-+ }
-+ if (__builtin_expect (newmem == NULL, 0))
-+ {
-+ freemem = NULL;
-+ freemem_size = 0;
-+ __libc_lock_unlock (lock);
-+ goto converted;
-+ }
-+
-+# ifdef _LIBC
-+ /* Add the block to the list of blocks we have to free
-+ at some point. */
-+ newmem->next = transmem_list;
-+ transmem_list = newmem;
-+
-+ freemem = newmem->data;
-+ freemem_size -= offsetof (struct transmem_list, data);
-+# else
-+ transmem_list = newmem;
-+ freemem = newmem;
-+# endif
-+
-+ outbuf = freemem + sizeof (size_t);
-+ }
-+
-+ /* We have now in our buffer a converted string. Put this
-+ into the table of conversions. */
-+ *(size_t *) freemem = outbuf - freemem - sizeof (size_t);
-+ domain->conv_tab[act] = (char *) freemem;
-+ /* Shrink freemem, but keep it aligned. */
-+ freemem_size -= outbuf - freemem;
-+ freemem = outbuf;
-+ freemem += freemem_size & (alignof (size_t) - 1);
-+ freemem_size = freemem_size & ~ (alignof (size_t) - 1);
-+
-+ __libc_lock_unlock (lock);
-+ }
-+
-+ /* Now domain->conv_tab[act] contains the translation of all
-+ the plural variants. */
-+ result = domain->conv_tab[act] + sizeof (size_t);
-+ resultlen = *(size_t *) domain->conv_tab[act];
-+ }
-+
-+ converted:
-+ /* The result string is converted. */
-+
-+#endif /* _LIBC || HAVE_ICONV */
-+
-+ *lengthp = resultlen;
-+ return result;
-+}
-+
-+
-+/* Look up a plural variant. */
-+static char *
-+internal_function
-+plural_lookup (struct loaded_l10nfile *domain, unsigned long int n,
-+ const char *translation, size_t translation_len)
-+{
-+ struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
-+ unsigned long int index;
-+ const char *p;
-+
-+ index = plural_eval (domaindata->plural, n);
-+ if (index >= domaindata->nplurals)
-+ /* This should never happen. It means the plural expression and the
-+ given maximum value do not match. */
-+ index = 0;
-+
-+ /* Skip INDEX strings at TRANSLATION. */
-+ p = translation;
-+ while (index-- > 0)
-+ {
-+#ifdef _LIBC
-+ p = __rawmemchr (p, '\0');
-+#else
-+ p = strchr (p, '\0');
-+#endif
-+ /* And skip over the NUL byte. */
-+ p++;
-+
-+ if (p >= translation + translation_len)
-+ /* This should never happen. It means the plural expression
-+ evaluated to a value larger than the number of variants
-+ available for MSGID1. */
-+ return (char *) translation;
-+ }
-+ return (char *) p;
-+}
-+
-+#ifndef _LIBC
-+/* Return string representation of locale CATEGORY. */
-+static const char *
-+internal_function
-+category_to_name (int category)
-+{
-+ const char *retval;
-+
-+ switch (category)
-+ {
-+#ifdef LC_COLLATE
-+ case LC_COLLATE:
-+ retval = "LC_COLLATE";
-+ break;
-+#endif
-+#ifdef LC_CTYPE
-+ case LC_CTYPE:
-+ retval = "LC_CTYPE";
-+ break;
-+#endif
-+#ifdef LC_MONETARY
-+ case LC_MONETARY:
-+ retval = "LC_MONETARY";
-+ break;
-+#endif
-+#ifdef LC_NUMERIC
-+ case LC_NUMERIC:
-+ retval = "LC_NUMERIC";
-+ break;
-+#endif
-+#ifdef LC_TIME
-+ case LC_TIME:
-+ retval = "LC_TIME";
-+ break;
-+#endif
-+#ifdef LC_MESSAGES
-+ case LC_MESSAGES:
-+ retval = "LC_MESSAGES";
-+ break;
-+#endif
-+#ifdef LC_RESPONSE
-+ case LC_RESPONSE:
-+ retval = "LC_RESPONSE";
-+ break;
-+#endif
-+#ifdef LC_ALL
-+ case LC_ALL:
-+ /* This might not make sense but is perhaps better than any other
-+ value. */
-+ retval = "LC_ALL";
-+ break;
-+#endif
-+ default:
-+ /* If you have a better idea for a default value let me know. */
-+ retval = "LC_XXX";
-+ }
-+
-+ return retval;
-+}
-+#endif
-+
-+/* Guess value of current locale from value of the environment variables. */
-+static const char *
-+internal_function
-+guess_category_value (int category, const char *categoryname)
-+{
-+ const char *language;
-+ const char *retval;
-+
-+ /* The highest priority value is the `LANGUAGE' environment
-+ variable. But we don't use the value if the currently selected
-+ locale is the C locale. This is a GNU extension. */
-+ language = getenv ("LANGUAGE");
-+ if (language != NULL && language[0] == '\0')
-+ language = NULL;
-+
-+ /* We have to proceed with the POSIX methods of looking to `LC_ALL',
-+ `LC_xxx', and `LANG'. On some systems this can be done by the
-+ `setlocale' function itself. */
-+#ifdef _LIBC
-+ retval = __current_locale_name (category);
-+#else
-+ retval = _nl_locale_name (category, categoryname);
-+#endif
-+
-+ /* Ignore LANGUAGE if the locale is set to "C" because
-+ 1. "C" locale usually uses the ASCII encoding, and most international
-+ messages use non-ASCII characters. These characters get displayed
-+ as question marks (if using glibc's iconv()) or as invalid 8-bit
-+ characters (because other iconv()s refuse to convert most non-ASCII
-+ characters to ASCII). In any case, the output is ugly.
-+ 2. The precise output of some programs in the "C" locale is specified
-+ by POSIX and should not depend on environment variables like
-+ "LANGUAGE". We allow such programs to use gettext(). */
-+ return language != NULL && strcmp (retval, "C") != 0 ? language : retval;
-+}
-+
-+/* @@ begin of epilog @@ */
-+
-+/* We don't want libintl.a to depend on any other library. So we
-+ avoid the non-standard function stpcpy. In GNU C Library this
-+ function is available, though. Also allow the symbol HAVE_STPCPY
-+ to be defined. */
-+#if !_LIBC && !HAVE_STPCPY
-+static char *
-+stpcpy (char *dest, const char *src)
-+{
-+ while ((*dest++ = *src++) != '\0')
-+ /* Do nothing. */ ;
-+ return dest - 1;
-+}
-+#endif
-+
-+#if !_LIBC && !HAVE_MEMPCPY
-+static void *
-+mempcpy (void *dest, const void *src, size_t n)
-+{
-+ return (void *) ((char *) memcpy (dest, src, n) + n);
-+}
-+#endif
-+
-+
-+#ifdef _LIBC
-+/* If we want to free all resources we have to do some work at
-+ program's end. */
-+libc_freeres_fn (free_mem)
-+{
-+ void *old;
-+
-+ while (_nl_domain_bindings != NULL)
-+ {
-+ struct binding *oldp = _nl_domain_bindings;
-+ _nl_domain_bindings = _nl_domain_bindings->next;
-+ if (oldp->dirname != INTUSE(_nl_default_dirname))
-+ /* Yes, this is a pointer comparison. */
-+ free (oldp->dirname);
-+ free (oldp->codeset);
-+ free (oldp);
-+ }
-+
-+ if (_nl_current_default_domain != _nl_default_default_domain)
-+ /* Yes, again a pointer comparison. */
-+ free ((char *) _nl_current_default_domain);
-+
-+ /* Remove the search tree with the known translations. */
-+ __tdestroy (root, free);
-+ root = NULL;
-+
-+ while (transmem_list != NULL)
-+ {
-+ old = transmem_list;
-+ transmem_list = transmem_list->next;
-+ free (old);
-+ }
-+}
-+#endif
---- lrzsz-0.12.20.safe/intl/dcngettext.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/dcngettext.c 2004-09-12 14:40:34.375745048 -0400
-@@ -0,0 +1,57 @@
-+/* Implementation of the dcngettext(3) function.
-+ Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include "gettextP.h"
-+#ifdef _LIBC
-+# include <libintl.h>
-+#else
-+# include "libgnuintl.h"
-+#endif
-+
-+/* @@ end of prolog @@ */
-+
-+/* Names for the libintl functions are a problem. They must not clash
-+ with existing names and they should follow ANSI C. But this source
-+ code is also used in GNU C Library where the names have a __
-+ prefix. So we have to make a difference here. */
-+#ifdef _LIBC
-+# define DCNGETTEXT __dcngettext
-+# define DCIGETTEXT __dcigettext
-+#else
-+# define DCNGETTEXT libintl_dcngettext
-+# define DCIGETTEXT libintl_dcigettext
-+#endif
-+
-+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
-+ locale. */
-+char *
-+DCNGETTEXT (const char *domainname,
-+ const char *msgid1, const char *msgid2, unsigned long int n,
-+ int category)
-+{
-+ return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
-+}
-+
-+#ifdef _LIBC
-+/* Alias for function name in GNU C Library. */
-+weak_alias (__dcngettext, dcngettext);
-+#endif
---- lrzsz-0.12.20.safe/intl/dgettext.c 1998-04-26 09:20:52.000000000 -0400
-+++ lrzsz-0.12.20/intl/dgettext.c 2004-09-12 14:40:34.380744288 -0400
-@@ -1,32 +1,33 @@
--/* dgettext.c -- implementation of the dgettext(3) function
-- Copyright (C) 1995 Software Foundation, Inc.
-+/* Implementation of the dgettext(3) function.
-+ Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
-
--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, or (at your option)
--any later version.
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ 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
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
--#if defined HAVE_LOCALE_H || defined _LIBC
--# include <locale.h>
--#endif
-+#include "gettextP.h"
-+
-+#include <locale.h>
-
- #ifdef _LIBC
- # include <libintl.h>
- #else
--# include "libgettext.h"
-+# include "libgnuintl.h"
- #endif
-
- /* @@ end of prolog @@ */
-@@ -37,18 +38,16 @@
- prefix. So we have to make a difference here. */
- #ifdef _LIBC
- # define DGETTEXT __dgettext
--# define DCGETTEXT __dcgettext
-+# define DCGETTEXT INTUSE(__dcgettext)
- #else
--# define DGETTEXT dgettext__
--# define DCGETTEXT dcgettext__
-+# define DGETTEXT libintl_dgettext
-+# define DCGETTEXT libintl_dcgettext
- #endif
-
- /* Look up MSGID in the DOMAINNAME message catalog of the current
- LC_MESSAGES locale. */
- char *
--DGETTEXT (domainname, msgid)
-- const char *domainname;
-- const char *msgid;
-+DGETTEXT (const char *domainname, const char *msgid)
- {
- return DCGETTEXT (domainname, msgid, LC_MESSAGES);
- }
---- lrzsz-0.12.20.safe/intl/dngettext.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/dngettext.c 2004-09-12 14:40:34.385743528 -0400
-@@ -0,0 +1,59 @@
-+/* Implementation of the dngettext(3) function.
-+ Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include "gettextP.h"
-+
-+#include <locale.h>
-+
-+#ifdef _LIBC
-+# include <libintl.h>
-+#else
-+# include "libgnuintl.h"
-+#endif
-+
-+/* @@ end of prolog @@ */
-+
-+/* Names for the libintl functions are a problem. They must not clash
-+ with existing names and they should follow ANSI C. But this source
-+ code is also used in GNU C Library where the names have a __
-+ prefix. So we have to make a difference here. */
-+#ifdef _LIBC
-+# define DNGETTEXT __dngettext
-+# define DCNGETTEXT __dcngettext
-+#else
-+# define DNGETTEXT libintl_dngettext
-+# define DCNGETTEXT libintl_dcngettext
-+#endif
-+
-+/* Look up MSGID in the DOMAINNAME message catalog of the current
-+ LC_MESSAGES locale and skip message according to the plural form. */
-+char *
-+DNGETTEXT (const char *domainname,
-+ const char *msgid1, const char *msgid2, unsigned long int n)
-+{
-+ return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
-+}
-+
-+#ifdef _LIBC
-+/* Alias for function name in GNU C Library. */
-+weak_alias (__dngettext, dngettext);
-+#endif
---- lrzsz-0.12.20.safe/intl/eval-plural.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/eval-plural.h 2004-09-12 14:40:34.390742768 -0400
-@@ -0,0 +1,108 @@
-+/* Plural expression evaluation.
-+ Copyright (C) 2000-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 STATIC
-+#define STATIC static
-+#endif
-+
-+/* Evaluate the plural expression and return an index value. */
-+STATIC
-+unsigned long int
-+internal_function
-+plural_eval (struct expression *pexp, unsigned long int n)
-+{
-+ switch (pexp->nargs)
-+ {
-+ case 0:
-+ switch (pexp->operation)
-+ {
-+ case var:
-+ return n;
-+ case num:
-+ return pexp->val.num;
-+ default:
-+ break;
-+ }
-+ /* NOTREACHED */
-+ break;
-+ case 1:
-+ {
-+ /* pexp->operation must be lnot. */
-+ unsigned long int arg = plural_eval (pexp->val.args[0], n);
-+ return ! arg;
-+ }
-+ case 2:
-+ {
-+ unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
-+ if (pexp->operation == lor)
-+ return leftarg || plural_eval (pexp->val.args[1], n);
-+ else if (pexp->operation == land)
-+ return leftarg && plural_eval (pexp->val.args[1], n);
-+ else
-+ {
-+ unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
-+
-+ switch (pexp->operation)
-+ {
-+ case mult:
-+ return leftarg * rightarg;
-+ case divide:
-+#if !INTDIV0_RAISES_SIGFPE
-+ if (rightarg == 0)
-+ raise (SIGFPE);
-+#endif
-+ return leftarg / rightarg;
-+ case module:
-+#if !INTDIV0_RAISES_SIGFPE
-+ if (rightarg == 0)
-+ raise (SIGFPE);
-+#endif
-+ return leftarg % rightarg;
-+ case plus:
-+ return leftarg + rightarg;
-+ case minus:
-+ return leftarg - rightarg;
-+ case less_than:
-+ return leftarg < rightarg;
-+ case greater_than:
-+ return leftarg > rightarg;
-+ case less_or_equal:
-+ return leftarg <= rightarg;
-+ case greater_or_equal:
-+ return leftarg >= rightarg;
-+ case equal:
-+ return leftarg == rightarg;
-+ case not_equal:
-+ return leftarg != rightarg;
-+ default:
-+ break;
-+ }
-+ }
-+ /* NOTREACHED */
-+ break;
-+ }
-+ case 3:
-+ {
-+ /* pexp->operation must be qmop. */
-+ unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
-+ return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
-+ }
-+ }
-+ /* NOTREACHED */
-+ return 0;
-+}
---- lrzsz-0.12.20.safe/intl/explodename.c 1998-04-26 09:22:37.000000000 -0400
-+++ lrzsz-0.12.20/intl/explodename.c 2004-09-12 14:40:34.395742008 -0400
-@@ -1,19 +1,20 @@
--/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-+/* Copyright (C) 1995-1998, 2000-2001, 2003 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -36,18 +37,23 @@
-
- /* @@ end of prolog @@ */
-
-+char *
-+_nl_find_language (const char *name)
-+{
-+ while (name[0] != '\0' && name[0] != '_' && name[0] != '@'
-+ && name[0] != '+' && name[0] != ',')
-+ ++name;
-+
-+ return (char *) name;
-+}
-+
-+
- int
--_nl_explode_name (name, language, modifier, territory, codeset,
-- normalized_codeset, special, sponsor, revision)
-- char *name;
-- const char **language;
-- const char **modifier;
-- const char **territory;
-- const char **codeset;
-- const char **normalized_codeset;
-- const char **special;
-- const char **sponsor;
-- const char **revision;
-+_nl_explode_name (char *name,
-+ const char **language, const char **modifier,
-+ const char **territory, const char **codeset,
-+ const char **normalized_codeset, const char **special,
-+ const char **sponsor, const char **revision)
- {
- enum { undecided, xpg, cen } syntax;
- char *cp;
-@@ -67,9 +73,7 @@
- mask = 0;
- syntax = undecided;
- *language = cp = name;
-- while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@'
-- && cp[0] != '+' && cp[0] != ',')
-- ++cp;
-+ cp = _nl_find_language (*language);
-
- if (*language == cp)
- /* This does not make sense: language has to be specified. Use
---- lrzsz-0.12.20.safe/intl/finddomain.c 1998-04-26 09:22:36.000000000 -0400
-+++ lrzsz-0.12.20/intl/finddomain.c 2004-09-12 14:40:34.415738968 -0400
-@@ -1,64 +1,40 @@
- /* Handle list of needed message catalogs
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-+ Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc.
-+ Written by Ulrich Drepper <drepper@gnu.org>, 1995.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
--#include <ctype.h>
--#include <errno.h>
- #include <stdio.h>
- #include <sys/types.h>
--
--#if defined STDC_HEADERS || defined _LIBC
--# include <stdlib.h>
--#else
--# ifdef HAVE_MALLOC_H
--# include <malloc.h>
--# else
--void free ();
--# endif
--#endif
--
--#if defined HAVE_STRING_H || defined _LIBC
--# include <string.h>
--#else
--# include <strings.h>
--# ifndef memcpy
--# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
--# endif
--#endif
--#if !HAVE_STRCHR && !defined _LIBC
--# ifndef strchr
--# define strchr index
--# endif
--#endif
-+#include <stdlib.h>
-+#include <string.h>
-
- #if defined HAVE_UNISTD_H || defined _LIBC
- # include <unistd.h>
- #endif
-
--#include "gettext.h"
- #include "gettextP.h"
- #ifdef _LIBC
- # include <libintl.h>
- #else
--# include "libgettext.h"
-+# include "libgnuintl.h"
- #endif
-
- /* @@ end of prolog @@ */
-@@ -70,10 +46,9 @@
- the DOMAINNAME and CATEGORY parameters with respect to the currently
- established bindings. */
- struct loaded_l10nfile *
--_nl_find_domain (dirname, locale, domainname)
-- const char *dirname;
-- char *locale;
-- const char *domainname;
-+internal_function
-+_nl_find_domain (const char *dirname, char *locale,
-+ const char *domainname, struct binding *domainbinding)
- {
- struct loaded_l10nfile *retval;
- const char *language;
-@@ -95,9 +70,9 @@
-
- language[_territory][+audience][+special][,[sponsor][_revision]]
-
-- Beside the first all of them are allowed to be missing. If the
-- full specified locale is not found, the less specific one are
-- looked for. The various part will be stripped of according to
-+ Beside the first part all of them are allowed to be missing. If
-+ the full specified locale is not found, the less specific one are
-+ looked for. The various parts will be stripped off according to
- the following order:
- (1) revision
- (2) sponsor
-@@ -119,7 +94,7 @@
- int cnt;
-
- if (retval->decided == 0)
-- _nl_load_domain (retval);
-+ _nl_load_domain (retval, domainbinding);
-
- if (retval->data != NULL)
- return retval;
-@@ -127,7 +102,7 @@
- for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
- {
- if (retval->successor[cnt]->decided == 0)
-- _nl_load_domain (retval->successor[cnt]);
-+ _nl_load_domain (retval->successor[cnt], domainbinding);
-
- if (retval->successor[cnt]->data != NULL)
- break;
-@@ -142,12 +117,18 @@
- alias_value = _nl_expand_alias (locale);
- if (alias_value != NULL)
- {
-+#if defined _LIBC || defined HAVE_STRDUP
-+ locale = strdup (alias_value);
-+ if (locale == NULL)
-+ return NULL;
-+#else
- size_t len = strlen (alias_value) + 1;
- locale = (char *) malloc (len);
- if (locale == NULL)
- return NULL;
-
- memcpy (locale, alias_value, len);
-+#endif
- }
-
- /* Now we determine the single parts of the locale name. First
-@@ -168,14 +149,14 @@
- return NULL;
-
- if (retval->decided == 0)
-- _nl_load_domain (retval);
-+ _nl_load_domain (retval, domainbinding);
- if (retval->data == NULL)
- {
- int cnt;
- for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
- {
- if (retval->successor[cnt]->decided == 0)
-- _nl_load_domain (retval->successor[cnt]);
-+ _nl_load_domain (retval->successor[cnt], domainbinding);
- if (retval->successor[cnt]->data != NULL)
- break;
- }
-@@ -185,5 +166,27 @@
- if (alias_value != NULL)
- free (locale);
-
-+ /* The space for normalized_codeset is dynamically allocated. Free it. */
-+ if (mask & XPG_NORM_CODESET)
-+ free ((void *) normalized_codeset);
-+
- return retval;
- }
-+
-+
-+#ifdef _LIBC
-+libc_freeres_fn (free_mem)
-+{
-+ struct loaded_l10nfile *runp = _nl_loaded_domains;
-+
-+ while (runp != NULL)
-+ {
-+ struct loaded_l10nfile *here = runp;
-+ if (runp->data != NULL)
-+ _nl_unload_domain ((struct loaded_domain *) runp->data);
-+ runp = runp->next;
-+ free ((char *) here->filename);
-+ free (here);
-+ }
-+}
-+#endif
---- lrzsz-0.12.20.safe/intl/gettext.c 1998-04-26 09:22:36.000000000 -0400
-+++ lrzsz-0.12.20/intl/gettext.c 2004-09-12 14:40:34.420738208 -0400
-@@ -1,19 +1,20 @@
--/* Implementation of gettext(3) function
-- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
-+/* Implementation of gettext(3) function.
-+ Copyright (C) 1995, 1997, 2000-2003 Free Software Foundation, Inc.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -23,21 +24,14 @@
- # define __need_NULL
- # include <stddef.h>
- #else
--# ifdef STDC_HEADERS
--# include <stdlib.h> /* Just for NULL. */
--# else
--# ifdef HAVE_STRING_H
--# include <string.h>
--# else
--# define NULL ((void *) 0)
--# endif
--# endif
-+# include <stdlib.h> /* Just for NULL. */
- #endif
-
-+#include "gettextP.h"
- #ifdef _LIBC
- # include <libintl.h>
- #else
--# include "libgettext.h"
-+# include "libgnuintl.h"
- #endif
-
- /* @@ end of prolog @@ */
-@@ -48,20 +42,19 @@
- prefix. So we have to make a difference here. */
- #ifdef _LIBC
- # define GETTEXT __gettext
--# define DGETTEXT __dgettext
-+# define DCGETTEXT INTUSE(__dcgettext)
- #else
--# define GETTEXT gettext__
--# define DGETTEXT dgettext__
-+# define GETTEXT libintl_gettext
-+# define DCGETTEXT libintl_dcgettext
- #endif
-
- /* Look up MSGID in the current default message catalog for the current
- LC_MESSAGES locale. If not found, returns MSGID itself (the default
- text). */
- char *
--GETTEXT (msgid)
-- const char *msgid;
-+GETTEXT (const char *msgid)
- {
-- return DGETTEXT (NULL, msgid);
-+ return DCGETTEXT (NULL, msgid, LC_MESSAGES);
- }
-
- #ifdef _LIBC
---- lrzsz-0.12.20.safe/intl/gettext.h 1998-04-26 09:22:35.000000000 -0400
-+++ lrzsz-0.12.20/intl/gettext.h 1969-12-31 19:00:00.000000000 -0500
-@@ -1,105 +0,0 @@
--/* Internal header for GNU gettext internationalization functions
-- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
--
-- 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, 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 Library General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
--
--#ifndef _GETTEXT_H
--#define _GETTEXT_H 1
--
--#include <stdio.h>
--
--#if HAVE_LIMITS_H || _LIBC
--# include <limits.h>
--#endif
--
--/* @@ end of prolog @@ */
--
--/* The magic number of the GNU message catalog format. */
--#define _MAGIC 0x950412de
--#define _MAGIC_SWAPPED 0xde120495
--
--/* Revision number of the currently used .mo (binary) file format. */
--#define MO_REVISION_NUMBER 0
--
--/* The following contortions are an attempt to use the C preprocessor
-- to determine an unsigned integral type that is 32 bits wide. An
-- alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
-- doing that would require that the configure script compile and *run*
-- the resulting executable. Locally running cross-compiled executables
-- is usually not possible. */
--
--#if __STDC__
--# define UINT_MAX_32_BITS 4294967295U
--#else
--# define UINT_MAX_32_BITS 0xFFFFFFFF
--#endif
--
--/* If UINT_MAX isn't defined, assume it's a 32-bit type.
-- This should be valid for all systems GNU cares about because
-- that doesn't include 16-bit systems, and only modern systems
-- (that certainly have <limits.h>) have 64+-bit integral types. */
--
--#ifndef UINT_MAX
--# define UINT_MAX UINT_MAX_32_BITS
--#endif
--
--#if UINT_MAX == UINT_MAX_32_BITS
--typedef unsigned nls_uint32;
--#else
--# if USHRT_MAX == UINT_MAX_32_BITS
--typedef unsigned short nls_uint32;
--# else
--# if ULONG_MAX == UINT_MAX_32_BITS
--typedef unsigned long nls_uint32;
--# else
-- /* The following line is intended to throw an error. Using #error is
-- not portable enough. */
-- "Cannot determine unsigned 32-bit data type."
--# endif
--# endif
--#endif
--
--
--/* Header for binary .mo file format. */
--struct mo_file_header
--{
-- /* The magic number. */
-- nls_uint32 magic;
-- /* The revision number of the file format. */
-- nls_uint32 revision;
-- /* The number of strings pairs. */
-- nls_uint32 nstrings;
-- /* Offset of table with start offsets of original strings. */
-- nls_uint32 orig_tab_offset;
-- /* Offset of table with start offsets of translation strings. */
-- nls_uint32 trans_tab_offset;
-- /* Size of hashing table. */
-- nls_uint32 hash_tab_size;
-- /* Offset of first hashing entry. */
-- nls_uint32 hash_tab_offset;
--};
--
--struct string_desc
--{
-- /* Length of addressed string. */
-- nls_uint32 length;
-- /* Offset of string in file. */
-- nls_uint32 offset;
--};
--
--/* @@ begin of epilog @@ */
--
--#endif /* gettext.h */
---- lrzsz-0.12.20.safe/intl/gettextP.h 1998-04-26 09:22:35.000000000 -0400
-+++ lrzsz-0.12.20/intl/gettextP.h 2004-09-12 14:40:34.426737296 -0400
-@@ -1,33 +1,53 @@
--/* Header describing internals of gettext library
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-+/* Header describing internals of libintl library.
-+ Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
-+ Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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 _GETTEXTP_H
- #define _GETTEXTP_H
-
-+#include <stddef.h> /* Get size_t. */
-+
-+#ifdef _LIBC
-+# include "../iconv/gconv_int.h"
-+#else
-+# if HAVE_ICONV
-+# include <iconv.h>
-+# endif
-+#endif
-+
- #include "loadinfo.h"
-
-+#include "gmo.h" /* Get nls_uint32. */
-+
- /* @@ end of prolog @@ */
-
--#ifndef PARAMS
--# if __STDC__
--# define PARAMS(args) args
--# else
--# define PARAMS(args) ()
--# endif
-+#ifndef internal_function
-+# define internal_function
-+#endif
-+
-+#ifndef attribute_hidden
-+# define attribute_hidden
-+#endif
-+
-+/* Tell the compiler when a conditional or integer expression is
-+ almost always true or almost always false. */
-+#ifndef HAVE_BUILTIN_EXPECT
-+# define __builtin_expect(expr, val) (expr)
- #endif
-
- #ifndef W
-@@ -35,38 +55,160 @@
- #endif
-
-
--static nls_uint32 SWAP PARAMS ((nls_uint32 i));
--
-+#ifdef _LIBC
-+# include <byteswap.h>
-+# define SWAP(i) bswap_32 (i)
-+#else
- static inline nls_uint32
- SWAP (i)
- nls_uint32 i;
- {
- return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
- }
-+#endif
-+
-
-+/* In-memory representation of system dependent string. */
-+struct sysdep_string_desc
-+{
-+ /* Length of addressed string, including the trailing NUL. */
-+ size_t length;
-+ /* Pointer to addressed string. */
-+ const char *pointer;
-+};
-
-+/* The representation of an opened message catalog. */
- struct loaded_domain
- {
-+ /* Pointer to memory containing the .mo file. */
- const char *data;
-+ /* 1 if the memory is mmap()ed, 0 if the memory is malloc()ed. */
-+ int use_mmap;
-+ /* Size of mmap()ed memory. */
-+ size_t mmap_size;
-+ /* 1 if the .mo file uses a different endianness than this machine. */
- int must_swap;
-+ /* Pointer to additional malloc()ed memory. */
-+ void *malloced;
-+
-+ /* Number of static strings pairs. */
- nls_uint32 nstrings;
-- struct string_desc *orig_tab;
-- struct string_desc *trans_tab;
-+ /* Pointer to descriptors of original strings in the file. */
-+ const struct string_desc *orig_tab;
-+ /* Pointer to descriptors of translated strings in the file. */
-+ const struct string_desc *trans_tab;
-+
-+ /* Number of system dependent strings pairs. */
-+ nls_uint32 n_sysdep_strings;
-+ /* Pointer to descriptors of original sysdep strings. */
-+ const struct sysdep_string_desc *orig_sysdep_tab;
-+ /* Pointer to descriptors of translated sysdep strings. */
-+ const struct sysdep_string_desc *trans_sysdep_tab;
-+
-+ /* Size of hash table. */
- nls_uint32 hash_size;
-- nls_uint32 *hash_tab;
-+ /* Pointer to hash table. */
-+ const nls_uint32 *hash_tab;
-+ /* 1 if the hash table uses a different endianness than this machine. */
-+ int must_swap_hash_tab;
-+
-+ int codeset_cntr;
-+#ifdef _LIBC
-+ __gconv_t conv;
-+#else
-+# if HAVE_ICONV
-+ iconv_t conv;
-+# endif
-+#endif
-+ char **conv_tab;
-+
-+ struct expression *plural;
-+ unsigned long int nplurals;
- };
-
-+/* We want to allocate a string at the end of the struct. But ISO C
-+ doesn't allow zero sized arrays. */
-+#ifdef __GNUC__
-+# define ZERO 0
-+#else
-+# define ZERO 1
-+#endif
-+
-+/* A set of settings bound to a message domain. Used to store settings
-+ from bindtextdomain() and bind_textdomain_codeset(). */
- struct binding
- {
- struct binding *next;
-- char *domainname;
- char *dirname;
-+ int codeset_cntr; /* Incremented each time codeset changes. */
-+ char *codeset;
-+ char domainname[ZERO];
- };
-
--struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
-- char *__locale,
-- const char *__domainname));
--void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain));
-+/* A counter which is incremented each time some previous translations
-+ become invalid.
-+ This variable is part of the external ABI of the GNU libintl. */
-+extern int _nl_msg_cat_cntr;
-+
-+#ifndef _LIBC
-+const char *_nl_locale_name (int category, const char *categoryname);
-+#endif
-+
-+struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale,
-+ const char *__domainname,
-+ struct binding *__domainbinding)
-+ internal_function;
-+void _nl_load_domain (struct loaded_l10nfile *__domain,
-+ struct binding *__domainbinding)
-+ internal_function;
-+void _nl_unload_domain (struct loaded_domain *__domain)
-+ internal_function;
-+const char *_nl_init_domain_conv (struct loaded_l10nfile *__domain_file,
-+ struct loaded_domain *__domain,
-+ struct binding *__domainbinding)
-+ internal_function;
-+void _nl_free_domain_conv (struct loaded_domain *__domain)
-+ internal_function;
-+
-+char *_nl_find_msg (struct loaded_l10nfile *domain_file,
-+ struct binding *domainbinding, const char *msgid,
-+ size_t *lengthp)
-+ internal_function;
-+
-+#ifdef _LIBC
-+extern char *__gettext (const char *__msgid);
-+extern char *__dgettext (const char *__domainname, const char *__msgid);
-+extern char *__dcgettext (const char *__domainname, const char *__msgid,
-+ int __category);
-+extern char *__ngettext (const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n);
-+extern char *__dngettext (const char *__domainname,
-+ const char *__msgid1, const char *__msgid2,
-+ unsigned long int n);
-+extern char *__dcngettext (const char *__domainname,
-+ const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n, int __category);
-+extern char *__dcigettext (const char *__domainname,
-+ const char *__msgid1, const char *__msgid2,
-+ int __plural, unsigned long int __n,
-+ int __category);
-+extern char *__textdomain (const char *__domainname);
-+extern char *__bindtextdomain (const char *__domainname,
-+ const char *__dirname);
-+extern char *__bind_textdomain_codeset (const char *__domainname,
-+ const char *__codeset);
-+#else
-+/* Declare the exported libintl_* functions, in a way that allows us to
-+ call them under their real name. */
-+# undef _INTL_REDIRECT_INLINE
-+# undef _INTL_REDIRECT_MACROS
-+# define _INTL_REDIRECT_MACROS
-+# include "libgnuintl.h"
-+extern char *libintl_dcigettext (const char *__domainname,
-+ const char *__msgid1, const char *__msgid2,
-+ int __plural, unsigned long int __n,
-+ int __category);
-+#endif
-
- /* @@ begin of epilog @@ */
-
---- lrzsz-0.12.20.safe/intl/gmo.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/gmo.h 2004-09-12 14:40:34.431736536 -0400
-@@ -0,0 +1,149 @@
-+/* Description of GNU message catalog format: general file layout.
-+ Copyright (C) 1995, 1997, 2000-2002, 2004 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _GETTEXT_H
-+#define _GETTEXT_H 1
-+
-+#include <limits.h>
-+
-+/* @@ end of prolog @@ */
-+
-+/* The magic number of the GNU message catalog format. */
-+#define _MAGIC 0x950412de
-+#define _MAGIC_SWAPPED 0xde120495
-+
-+/* Revision number of the currently used .mo (binary) file format. */
-+#define MO_REVISION_NUMBER 0
-+#define MO_REVISION_NUMBER_WITH_SYSDEP_I 1
-+
-+/* The following contortions are an attempt to use the C preprocessor
-+ to determine an unsigned integral type that is 32 bits wide. An
-+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
-+ as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
-+ when cross-compiling. */
-+
-+#if __STDC__
-+# define UINT_MAX_32_BITS 4294967295U
-+#else
-+# define UINT_MAX_32_BITS 0xFFFFFFFF
-+#endif
-+
-+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
-+ This should be valid for all systems GNU cares about because
-+ that doesn't include 16-bit systems, and only modern systems
-+ (that certainly have <limits.h>) have 64+-bit integral types. */
-+
-+#ifndef UINT_MAX
-+# define UINT_MAX UINT_MAX_32_BITS
-+#endif
-+
-+#if UINT_MAX == UINT_MAX_32_BITS
-+typedef unsigned nls_uint32;
-+#else
-+# if USHRT_MAX == UINT_MAX_32_BITS
-+typedef unsigned short nls_uint32;
-+# else
-+# if ULONG_MAX == UINT_MAX_32_BITS
-+typedef unsigned long nls_uint32;
-+# else
-+ /* The following line is intended to throw an error. Using #error is
-+ not portable enough. */
-+ "Cannot determine unsigned 32-bit data type."
-+# endif
-+# endif
-+#endif
-+
-+
-+/* Header for binary .mo file format. */
-+struct mo_file_header
-+{
-+ /* The magic number. */
-+ nls_uint32 magic;
-+ /* The revision number of the file format. */
-+ nls_uint32 revision;
-+
-+ /* The following are only used in .mo files with major revision 0 or 1. */
-+
-+ /* The number of strings pairs. */
-+ nls_uint32 nstrings;
-+ /* Offset of table with start offsets of original strings. */
-+ nls_uint32 orig_tab_offset;
-+ /* Offset of table with start offsets of translated strings. */
-+ nls_uint32 trans_tab_offset;
-+ /* Size of hash table. */
-+ nls_uint32 hash_tab_size;
-+ /* Offset of first hash table entry. */
-+ nls_uint32 hash_tab_offset;
-+
-+ /* The following are only used in .mo files with minor revision >= 1. */
-+
-+ /* The number of system dependent segments. */
-+ nls_uint32 n_sysdep_segments;
-+ /* Offset of table describing system dependent segments. */
-+ nls_uint32 sysdep_segments_offset;
-+ /* The number of system dependent strings pairs. */
-+ nls_uint32 n_sysdep_strings;
-+ /* Offset of table with start offsets of original sysdep strings. */
-+ nls_uint32 orig_sysdep_tab_offset;
-+ /* Offset of table with start offsets of translated sysdep strings. */
-+ nls_uint32 trans_sysdep_tab_offset;
-+};
-+
-+/* Descriptor for static string contained in the binary .mo file. */
-+struct string_desc
-+{
-+ /* Length of addressed string, not including the trailing NUL. */
-+ nls_uint32 length;
-+ /* Offset of string in file. */
-+ nls_uint32 offset;
-+};
-+
-+/* The following are only used in .mo files with minor revision >= 1. */
-+
-+/* Descriptor for system dependent string segment. */
-+struct sysdep_segment
-+{
-+ /* Length of addressed string, including the trailing NUL. */
-+ nls_uint32 length;
-+ /* Offset of string in file. */
-+ nls_uint32 offset;
-+};
-+
-+/* Descriptor for system dependent string. */
-+struct sysdep_string
-+{
-+ /* Offset of static string segments in file. */
-+ nls_uint32 offset;
-+ /* Alternating sequence of static and system dependent segments.
-+ The last segment is a static segment, including the trailing NUL. */
-+ struct segment_pair
-+ {
-+ /* Size of static segment. */
-+ nls_uint32 segsize;
-+ /* Reference to system dependent string segment, or ~0 at the end. */
-+ nls_uint32 sysdepref;
-+ } segments[1];
-+};
-+
-+/* Marker for the end of the segments[] array. This has the value 0xFFFFFFFF,
-+ regardless whether 'int' is 16 bit, 32 bit, or 64 bit. */
-+#define SEGMENTS_END ((nls_uint32) ~0)
-+
-+/* @@ begin of epilog @@ */
-+
-+#endif /* gettext.h */
---- lrzsz-0.12.20.safe/intl/hash-string.h 1998-04-26 09:22:36.000000000 -0400
-+++ lrzsz-0.12.20/intl/hash-string.h 2004-09-12 14:40:34.436735776 -0400
-@@ -1,35 +1,23 @@
--/* Implements a string hashing function.
-- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
-+/* Description of GNU message catalog format: string hashing function.
-+ Copyright (C) 1995, 1997-1998, 2000-2003 Free Software Foundation, Inc.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
--
--#ifdef HAVE_VALUES_H
--# include <values.h>
--#endif
-+ License along with this program; if not, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+ USA. */
-
- /* @@ end of prolog @@ */
-
--#ifndef PARAMS
--# if __STDC__
--# define PARAMS(Args) Args
--# else
--# define PARAMS(Args) ()
--# endif
--#endif
--
- /* We assume to have `unsigned long int' value with at least 32 bits. */
- #define HASHWORDBITS 32
-
-@@ -37,11 +25,8 @@
- /* Defines the so called `hashpjw' function by P.J. Weinberger
- [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
- 1986, 1987 Bell Telephone Laboratories, Inc.] */
--static unsigned long hash_string PARAMS ((const char *__str_param));
--
--static inline unsigned long
--hash_string (str_param)
-- const char *str_param;
-+static inline unsigned long int
-+hash_string (const char *str_param)
- {
- unsigned long int hval, g;
- const char *str = str_param;
-@@ -51,8 +36,8 @@
- while (*str != '\0')
- {
- hval <<= 4;
-- hval += (unsigned long) *str++;
-- g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4));
-+ hval += (unsigned char) *str++;
-+ g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
- if (g != 0)
- {
- hval ^= g >> (HASHWORDBITS - 8);
---- lrzsz-0.12.20.safe/intl/intl-compat.c 1998-04-26 09:20:52.000000000 -0400
-+++ lrzsz-0.12.20/intl/intl-compat.c 2004-09-12 14:40:34.441735016 -0400
-@@ -1,76 +1,131 @@
- /* intl-compat.c - Stub functions to call gettext functions from GNU gettext
- Library.
-- Copyright (C) 1995 Software Foundation, Inc.
-+ Copyright (C) 1995, 2000-2003 Software Foundation, Inc.
-
--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, or (at your option)
--any later version.
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ 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
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
--#include "libgettext.h"
-+#include "gettextP.h"
-
- /* @@ end of prolog @@ */
-
-+/* This file redirects the gettext functions (without prefix) to those
-+ defined in the included GNU libintl library (with "libintl_" prefix).
-+ It is compiled into libintl in order to make the AM_GNU_GETTEXT test
-+ of gettext <= 0.11.2 work with the libintl library >= 0.11.3 which
-+ has the redirections primarily in the <libintl.h> include file.
-+ It is also compiled into libgnuintl so that libgnuintl.so can be used
-+ as LD_PRELOADable library on glibc systems, to provide the extra
-+ features that the functions in the libc don't have (namely, logging). */
-+
-
- #undef gettext
- #undef dgettext
- #undef dcgettext
-+#undef ngettext
-+#undef dngettext
-+#undef dcngettext
- #undef textdomain
- #undef bindtextdomain
-+#undef bind_textdomain_codeset
-+
-+
-+/* When building a DLL, we must export some functions. Note that because
-+ the functions are only defined for binary backward compatibility, we
-+ don't need to use __declspec(dllimport) in any case. */
-+#if defined _MSC_VER && BUILDING_DLL
-+# define DLL_EXPORTED __declspec(dllexport)
-+#else
-+# define DLL_EXPORTED
-+#endif
-
-
-+DLL_EXPORTED
- char *
--bindtextdomain (domainname, dirname)
-- const char *domainname;
-- const char *dirname;
-+gettext (const char *msgid)
- {
-- return bindtextdomain__ (domainname, dirname);
-+ return libintl_gettext (msgid);
- }
-
-
-+DLL_EXPORTED
- char *
--dcgettext (domainname, msgid, category)
-- const char *domainname;
-- const char *msgid;
-- int category;
-+dgettext (const char *domainname, const char *msgid)
- {
-- return dcgettext__ (domainname, msgid, category);
-+ return libintl_dgettext (domainname, msgid);
- }
-
-
-+DLL_EXPORTED
- char *
--dgettext (domainname, msgid)
-- const char *domainname;
-- const char *msgid;
-+dcgettext (const char *domainname, const char *msgid, int category)
- {
-- return dgettext__ (domainname, msgid);
-+ return libintl_dcgettext (domainname, msgid, category);
- }
-
-
-+DLL_EXPORTED
- char *
--gettext (msgid)
-- const char *msgid;
-+ngettext (const char *msgid1, const char *msgid2, unsigned long int n)
- {
-- return gettext__ (msgid);
-+ return libintl_ngettext (msgid1, msgid2, n);
- }
-
-
-+DLL_EXPORTED
- char *
--textdomain (domainname)
-- const char *domainname;
-+dngettext (const char *domainname,
-+ const char *msgid1, const char *msgid2, unsigned long int n)
- {
-- return textdomain__ (domainname);
-+ return libintl_dngettext (domainname, msgid1, msgid2, n);
-+}
-+
-+
-+DLL_EXPORTED
-+char *
-+dcngettext (const char *domainname,
-+ const char *msgid1, const char *msgid2, unsigned long int n,
-+ int category)
-+{
-+ return libintl_dcngettext (domainname, msgid1, msgid2, n, category);
-+}
-+
-+
-+DLL_EXPORTED
-+char *
-+textdomain (const char *domainname)
-+{
-+ return libintl_textdomain (domainname);
-+}
-+
-+
-+DLL_EXPORTED
-+char *
-+bindtextdomain (const char *domainname, const char *dirname)
-+{
-+ return libintl_bindtextdomain (domainname, dirname);
-+}
-+
-+
-+DLL_EXPORTED
-+char *
-+bind_textdomain_codeset (const char *domainname, const char *codeset)
-+{
-+ return libintl_bind_textdomain_codeset (domainname, codeset);
- }
---- lrzsz-0.12.20.safe/intl/l10nflist.c 1998-04-26 09:22:37.000000000 -0400
-+++ lrzsz-0.12.20/intl/l10nflist.c 2004-09-12 14:40:34.457732584 -0400
-@@ -1,52 +1,40 @@
--/* Handle list of needed message catalogs
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-+/* Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
-+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* Tell glibc's <string.h> to provide a prototype for stpcpy().
-+ This must come before <config.h> because <config.h> may include
-+ <features.h>, and once <features.h> has been included, it's too late. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
--
--#if defined HAVE_STRING_H || defined _LIBC
--# ifndef _GNU_SOURCE
--# define _GNU_SOURCE 1
--# endif
--# include <string.h>
--#else
--# include <strings.h>
--# ifndef memcpy
--# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
--# endif
--#endif
--#if !HAVE_STRCHR && !defined _LIBC
--# ifndef strchr
--# define strchr index
--# endif
--#endif
-+#include <string.h>
-
- #if defined _LIBC || defined HAVE_ARGZ_H
- # include <argz.h>
- #endif
- #include <ctype.h>
- #include <sys/types.h>
--
--#if defined STDC_HEADERS || defined _LIBC
--# include <stdlib.h>
--#endif
-+#include <stdlib.h>
-
- #include "loadinfo.h"
-
-@@ -65,23 +53,39 @@
- /* Rename the non ANSI C functions. This is required by the standard
- because some ANSI C functions will require linking with this object
- file and the name space must not be polluted. */
--# define stpcpy(dest, src) __stpcpy(dest, src)
-+# ifndef stpcpy
-+# define stpcpy(dest, src) __stpcpy(dest, src)
-+# endif
- #else
- # ifndef HAVE_STPCPY
--static char *stpcpy PARAMS ((char *dest, const char *src));
-+static char *stpcpy (char *dest, const char *src);
- # endif
- #endif
-
-+/* Pathname support.
-+ ISSLASH(C) tests whether C is a directory separator character.
-+ IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
-+ it may be concatenated to a directory pathname.
-+ */
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+ /* Win32, OS/2, DOS */
-+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-+# define HAS_DEVICE(P) \
-+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
-+ && (P)[1] == ':')
-+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
-+#else
-+ /* Unix */
-+# define ISSLASH(C) ((C) == '/')
-+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
-+#endif
-+
- /* Define function which are usually not available. */
-
- #if !defined _LIBC && !defined HAVE___ARGZ_COUNT
- /* Returns the number of strings in ARGZ. */
--static size_t argz_count__ PARAMS ((const char *argz, size_t len));
--
- static size_t
--argz_count__ (argz, len)
-- const char *argz;
-- size_t len;
-+argz_count__ (const char *argz, size_t len)
- {
- size_t count = 0;
- while (len > 0)
-@@ -95,18 +99,17 @@
- }
- # undef __argz_count
- # define __argz_count(argz, len) argz_count__ (argz, len)
-+#else
-+# ifdef _LIBC
-+# define __argz_count(argz, len) INTUSE(__argz_count) (argz, len)
-+# endif
- #endif /* !_LIBC && !HAVE___ARGZ_COUNT */
-
- #if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
- /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
- except the last into the character SEP. */
--static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
--
- static void
--argz_stringify__ (argz, len, sep)
-- char *argz;
-- size_t len;
-- int sep;
-+argz_stringify__ (char *argz, size_t len, int sep)
- {
- while (len > 0)
- {
-@@ -119,17 +122,16 @@
- }
- # undef __argz_stringify
- # define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
-+#else
-+# ifdef _LIBC
-+# define __argz_stringify(argz, len, sep) \
-+ INTUSE(__argz_stringify) (argz, len, sep)
-+# endif
- #endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
-
- #if !defined _LIBC && !defined HAVE___ARGZ_NEXT
--static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
-- const char *entry));
--
- static char *
--argz_next__ (argz, argz_len, entry)
-- char *argz;
-- size_t argz_len;
-- const char *entry;
-+argz_next__ (char *argz, size_t argz_len, const char *entry)
- {
- if (entry)
- {
-@@ -150,11 +152,8 @@
-
-
- /* Return number of bits set in X. */
--static int pop PARAMS ((int x));
--
- static inline int
--pop (x)
-- int x;
-+pop (int x)
- {
- /* We assume that no more than 16 bits are used. */
- x = ((x & ~0x5555) >> 1) + (x & 0x5555);
-@@ -167,31 +166,27 @@
-
-
- struct loaded_l10nfile *
--_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
-- territory, codeset, normalized_codeset, modifier, special,
-- sponsor, revision, filename, do_allocate)
-- struct loaded_l10nfile **l10nfile_list;
-- const char *dirlist;
-- size_t dirlist_len;
-- int mask;
-- const char *language;
-- const char *territory;
-- const char *codeset;
-- const char *normalized_codeset;
-- const char *modifier;
-- const char *special;
-- const char *sponsor;
-- const char *revision;
-- const char *filename;
-- int do_allocate;
-+_nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
-+ const char *dirlist, size_t dirlist_len,
-+ int mask, const char *language, const char *territory,
-+ const char *codeset, const char *normalized_codeset,
-+ const char *modifier, const char *special,
-+ const char *sponsor, const char *revision,
-+ const char *filename, int do_allocate)
- {
- char *abs_filename;
-- struct loaded_l10nfile *last = NULL;
-+ struct loaded_l10nfile **lastp;
- struct loaded_l10nfile *retval;
- char *cp;
-+ size_t dirlist_count;
- size_t entries;
- int cnt;
-
-+ /* If LANGUAGE contains an absolute directory specification, we ignore
-+ DIRLIST. */
-+ if (IS_ABSOLUTE_PATH (language))
-+ dirlist_len = 0;
-+
- /* Allocate room for the full file name. */
- abs_filename = (char *) malloc (dirlist_len
- + strlen (language)
-@@ -209,7 +204,7 @@
- + (((mask & CEN_SPONSOR) != 0
- || (mask & CEN_REVISION) != 0)
- ? (1 + ((mask & CEN_SPONSOR) != 0
-- ? strlen (sponsor) + 1 : 0)
-+ ? strlen (sponsor) : 0)
- + ((mask & CEN_REVISION) != 0
- ? strlen (revision) + 1 : 0)) : 0)
- + 1 + strlen (filename) + 1);
-@@ -217,14 +212,16 @@
- if (abs_filename == NULL)
- return NULL;
-
-- retval = NULL;
-- last = NULL;
--
- /* Construct file name. */
-- memcpy (abs_filename, dirlist, dirlist_len);
-- __argz_stringify (abs_filename, dirlist_len, ':');
-- cp = abs_filename + (dirlist_len - 1);
-- *cp++ = '/';
-+ cp = abs_filename;
-+ if (dirlist_len > 0)
-+ {
-+ memcpy (cp, dirlist, dirlist_len);
-+ __argz_stringify (cp, dirlist_len, PATH_SEPARATOR);
-+ cp += dirlist_len;
-+ cp[-1] = '/';
-+ }
-+
- cp = stpcpy (cp, language);
-
- if ((mask & TERRITORY) != 0)
-@@ -271,7 +268,7 @@
-
- /* Look in list of already loaded domains whether it is already
- available. */
-- last = NULL;
-+ lastp = l10nfile_list;
- for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
- if (retval->filename != NULL)
- {
-@@ -286,7 +283,7 @@
- break;
- }
-
-- last = retval;
-+ lastp = &retval->next;
- }
-
- if (retval != NULL || do_allocate == 0)
-@@ -295,48 +292,66 @@
- return retval;
- }
-
-- retval = (struct loaded_l10nfile *)
-- malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
-- * (1 << pop (mask))
-- * sizeof (struct loaded_l10nfile *)));
-+ dirlist_count = (dirlist_len > 0 ? __argz_count (dirlist, dirlist_len) : 1);
-+
-+ /* Allocate a new loaded_l10nfile. */
-+ retval =
-+ (struct loaded_l10nfile *)
-+ malloc (sizeof (*retval)
-+ + (((dirlist_count << pop (mask)) + (dirlist_count > 1 ? 1 : 0))
-+ * sizeof (struct loaded_l10nfile *)));
- if (retval == NULL)
- return NULL;
-
- retval->filename = abs_filename;
-- retval->decided = (__argz_count (dirlist, dirlist_len) != 1
-+
-+ /* We set retval->data to NULL here; it is filled in later.
-+ Setting retval->decided to 1 here means that retval does not
-+ correspond to a real file (dirlist_count > 1) or is not worth
-+ looking up (if an unnormalized codeset was specified). */
-+ retval->decided = (dirlist_count > 1
- || ((mask & XPG_CODESET) != 0
- && (mask & XPG_NORM_CODESET) != 0));
- retval->data = NULL;
-
-- if (last == NULL)
-- {
-- retval->next = *l10nfile_list;
-- *l10nfile_list = retval;
-- }
-- else
-- {
-- retval->next = last->next;
-- last->next = retval;
-- }
-+ retval->next = *lastp;
-+ *lastp = retval;
-
- entries = 0;
-- /* If the DIRLIST is a real list the RETVAL entry corresponds not to
-- a real file. So we have to use the DIRLIST separation mechanism
-- of the inner loop. */
-- cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
-- for (; cnt >= 0; --cnt)
-+ /* Recurse to fill the inheritance list of RETVAL.
-+ If the DIRLIST is a real list (i.e. DIRLIST_COUNT > 1), the RETVAL
-+ entry does not correspond to a real file; retval->filename contains
-+ colons. In this case we loop across all elements of DIRLIST and
-+ across all bit patterns dominated by MASK.
-+ If the DIRLIST is a single directory or entirely redundant (i.e.
-+ DIRLIST_COUNT == 1), we loop across all bit patterns dominated by
-+ MASK, excluding MASK itself.
-+ In either case, we loop down from MASK to 0. This has the effect
-+ that the extra bits in the locale name are dropped in this order:
-+ first the modifier, then the territory, then the codeset, then the
-+ normalized_codeset. */
-+ for (cnt = dirlist_count > 1 ? mask : mask - 1; cnt >= 0; --cnt)
- if ((cnt & ~mask) == 0
- && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
- && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
- {
-- /* Iterate over all elements of the DIRLIST. */
-- char *dir = NULL;
-+ if (dirlist_count > 1)
-+ {
-+ /* Iterate over all elements of the DIRLIST. */
-+ char *dir = NULL;
-
-- while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
-- != NULL)
-+ while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
-+ != NULL)
-+ retval->successor[entries++]
-+ = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1,
-+ cnt, language, territory, codeset,
-+ normalized_codeset, modifier, special,
-+ sponsor, revision, filename, 1);
-+ }
-+ else
- retval->successor[entries++]
-- = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
-- language, territory, codeset,
-+ = _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len,
-+ cnt, language, territory, codeset,
- normalized_codeset, modifier, special,
- sponsor, revision, filename, 1);
- }
-@@ -347,11 +362,10 @@
-
- /* Normalize codeset name. There is no standard for the codeset
- names. Normalization allows the user to use any of the common
-- names. */
-+ names. The return value is dynamically allocated and has to be
-+ freed by the caller. */
- const char *
--_nl_normalize_codeset (codeset, name_len)
-- const char *codeset;
-- size_t name_len;
-+_nl_normalize_codeset (const char *codeset, size_t name_len)
- {
- int len = 0;
- int only_digit = 1;
-@@ -360,11 +374,11 @@
- size_t cnt;
-
- for (cnt = 0; cnt < name_len; ++cnt)
-- if (isalnum (codeset[cnt]))
-+ if (isalnum ((unsigned char) codeset[cnt]))
- {
- ++len;
-
-- if (isalpha (codeset[cnt]))
-+ if (isalpha ((unsigned char) codeset[cnt]))
- only_digit = 0;
- }
-
-@@ -378,9 +392,9 @@
- wp = retval;
-
- for (cnt = 0; cnt < name_len; ++cnt)
-- if (isalpha (codeset[cnt]))
-- *wp++ = tolower (codeset[cnt]);
-- else if (isdigit (codeset[cnt]))
-+ if (isalpha ((unsigned char) codeset[cnt]))
-+ *wp++ = tolower ((unsigned char) codeset[cnt]);
-+ else if (isdigit ((unsigned char) codeset[cnt]))
- *wp++ = codeset[cnt];
-
- *wp = '\0';
-@@ -398,9 +412,7 @@
- to be defined. */
- #if !_LIBC && !HAVE_STPCPY
- static char *
--stpcpy (dest, src)
-- char *dest;
-- const char *src;
-+stpcpy (char *dest, const char *src)
- {
- while ((*dest++ = *src++) != '\0')
- /* Do nothing. */ ;
---- lrzsz-0.12.20.safe/intl/libgettext.h 1998-04-26 09:22:36.000000000 -0400
-+++ lrzsz-0.12.20/intl/libgettext.h 1969-12-31 19:00:00.000000000 -0500
-@@ -1,182 +0,0 @@
--/* Message catalogs for internationalization.
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
--
-- 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, 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. */
--
--/* Because on some systems (e.g. Solaris) we sometimes have to include
-- the systems libintl.h as well as this file we have more complex
-- include protection above. But the systems header might perhaps also
-- define _LIBINTL_H and therefore we have to protect the definition here. */
--
--#if !defined (_LIBINTL_H) || !defined (_LIBGETTEXT_H)
--#if !defined (_LIBINTL_H)
--# define _LIBINTL_H 1
--#endif
--#define _LIBGETTEXT_H 1
--
--/* We define an additional symbol to signal that we use the GNU
-- implementation of gettext. */
--#define __USE_GNU_GETTEXT 1
--
--#include <sys/types.h>
--
--#if HAVE_LOCALE_H
--# include <locale.h>
--#endif
--
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
--/* @@ end of prolog @@ */
--
--#ifndef PARAMS
--# if __STDC__
--# define PARAMS(args) args
--# else
--# define PARAMS(args) ()
--# endif
--#endif
--
--#ifndef NULL
--# if !defined __cplusplus || defined __GNUC__
--# define NULL ((void *) 0)
--# else
--# define NULL (0)
--# endif
--#endif
--
--#if !HAVE_LC_MESSAGES
--/* This value determines the behaviour of the gettext() and dgettext()
-- function. But some system does not have this defined. Define it
-- to a default value. */
--# define LC_MESSAGES (-1)
--#endif
--
--
--/* Declarations for gettext-using-catgets interface. Derived from
-- Jim Meyering's libintl.h. */
--struct _msg_ent
--{
-- const char *_msg;
-- int _msg_number;
--};
--
--
--#if HAVE_CATGETS
--/* These two variables are defined in the automatically by po-to-tbl.sed
-- generated file `cat-id-tbl.c'. */
--extern const struct _msg_ent _msg_tbl[];
--extern int _msg_tbl_length;
--#endif
--
--
--/* For automatical extraction of messages sometimes no real
-- translation is needed. Instead the string itself is the result. */
--#define gettext_noop(Str) (Str)
--
--/* Look up MSGID in the current default message catalog for the current
-- LC_MESSAGES locale. If not found, returns MSGID itself (the default
-- text). */
--extern char *gettext PARAMS ((const char *__msgid));
--extern char *gettext__ PARAMS ((const char *__msgid));
--
--/* Look up MSGID in the DOMAINNAME message catalog for the current
-- LC_MESSAGES locale. */
--extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
--extern char *dgettext__ PARAMS ((const char *__domainname,
-- const char *__msgid));
--
--/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
-- locale. */
--extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
-- int __category));
--extern char *dcgettext__ PARAMS ((const char *__domainname,
-- const char *__msgid, int __category));
--
--
--/* Set the current default message catalog to DOMAINNAME.
-- If DOMAINNAME is null, return the current default.
-- If DOMAINNAME is "", reset to the default of "messages". */
--extern char *textdomain PARAMS ((const char *__domainname));
--extern char *textdomain__ PARAMS ((const char *__domainname));
--
--/* Specify that the DOMAINNAME message catalog will be found
-- in DIRNAME rather than in the system locale data base. */
--extern char *bindtextdomain PARAMS ((const char *__domainname,
-- const char *__dirname));
--extern char *bindtextdomain__ PARAMS ((const char *__domainname,
-- const char *__dirname));
--
--#if ENABLE_NLS
--
--/* Solaris 2.3 has the gettext function but dcgettext is missing.
-- So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4
-- has dcgettext. */
--# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT)
--
--# define gettext(Msgid) \
-- dgettext (NULL, Msgid)
--
--# define dgettext(Domainname, Msgid) \
-- dcgettext (Domainname, Msgid, LC_MESSAGES)
--
--# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
--/* This global variable is defined in loadmsgcat.c. We need a sign,
-- whether a new catalog was loaded, which can be associated with all
-- translations. */
--extern int _nl_msg_cat_cntr;
--
--# define dcgettext(Domainname, Msgid, Category) \
-- (__extension__ \
-- ({ \
-- char *__result; \
-- if (__builtin_constant_p (Msgid)) \
-- { \
-- static char *__translation__; \
-- static int __catalog_counter__; \
-- if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \
-- { \
-- __translation__ = \
-- dcgettext__ (Domainname, Msgid, Category); \
-- __catalog_counter__ = _nl_msg_cat_cntr; \
-- } \
-- __result = __translation__; \
-- } \
-- else \
-- __result = dcgettext__ (Domainname, Msgid, Category); \
-- __result; \
-- }))
--# endif
--# endif
--
--#else
--
--# define gettext(Msgid) (Msgid)
--# define dgettext(Domainname, Msgid) (Msgid)
--# define dcgettext(Domainname, Msgid, Category) (Msgid)
--# define textdomain(Domainname) while (0) /* nothing */
--# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
--
--#endif
--
--/* @@ begin of epilog @@ */
--
--#ifdef __cplusplus
--}
--#endif
--
--#endif
---- lrzsz-0.12.20.safe/intl/libgnuintl.h.in 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/libgnuintl.h.in 2004-09-12 14:40:34.462731824 -0400
-@@ -0,0 +1,383 @@
-+/* Message catalogs for internationalization.
-+ Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _LIBINTL_H
-+#define _LIBINTL_H 1
-+
-+#include <locale.h>
-+
-+/* The LC_MESSAGES locale category is the category used by the functions
-+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.
-+ On systems that don't define it, use an arbitrary value instead.
-+ On Solaris, <locale.h> defines __LOCALE_H (or _LOCALE_H in Solaris 2.5)
-+ then includes <libintl.h> (i.e. this file!) and then only defines
-+ LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES
-+ in this case. */
-+#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun))
-+# define LC_MESSAGES 1729
-+#endif
-+
-+/* We define an additional symbol to signal that we use the GNU
-+ implementation of gettext. */
-+#define __USE_GNU_GETTEXT 1
-+
-+/* Provide information about the supported file formats. Returns the
-+ maximum minor revision number supported for a given major revision. */
-+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \
-+ ((major) == 0 ? 1 : -1)
-+
-+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes
-+ precedence over _conio_gettext. */
-+#ifdef __DJGPP__
-+# undef gettext
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+/* We redirect the functions to those prefixed with "libintl_". This is
-+ necessary, because some systems define gettext/textdomain/... in the C
-+ library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).
-+ If we used the unprefixed names, there would be cases where the
-+ definition in the C library would override the one in the libintl.so
-+ shared library. Recall that on ELF systems, the symbols are looked
-+ up in the following order:
-+ 1. in the executable,
-+ 2. in the shared libraries specified on the link command line, in order,
-+ 3. in the dependencies of the shared libraries specified on the link
-+ command line,
-+ 4. in the dlopen()ed shared libraries, in the order in which they were
-+ dlopen()ed.
-+ The definition in the C library would override the one in libintl.so if
-+ either
-+ * -lc is given on the link command line and -lintl isn't, or
-+ * -lc is given on the link command line before -lintl, or
-+ * libintl.so is a dependency of a dlopen()ed shared library but not
-+ linked to the executable at link time.
-+ Since Solaris gettext() behaves differently than GNU gettext(), this
-+ would be unacceptable.
-+
-+ The redirection happens by default through macros in C, so that &gettext
-+ is independent of the compilation unit, but through inline functions in
-+ C++, in order not to interfere with the name mangling of class fields or
-+ class methods called 'gettext'. */
-+
-+/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS.
-+ If he doesn't, we choose the method. A third possible method is
-+ _INTL_REDIRECT_ASM, supported only by GCC. */
-+#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)
-+# if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
-+# define _INTL_REDIRECT_ASM
-+# else
-+# ifdef __cplusplus
-+# define _INTL_REDIRECT_INLINE
-+# else
-+# define _INTL_REDIRECT_MACROS
-+# endif
-+# endif
-+#endif
-+/* Auxiliary macros. */
-+#ifdef _INTL_REDIRECT_ASM
-+# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname))
-+# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring
-+# define _INTL_STRINGIFY(prefix) #prefix
-+#else
-+# define _INTL_ASM(cname)
-+#endif
-+
-+/* Look up MSGID in the current default message catalog for the current
-+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
-+ text). */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_gettext (const char *__msgid);
-+static inline char *gettext (const char *__msgid)
-+{
-+ return libintl_gettext (__msgid);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define gettext libintl_gettext
-+#endif
-+extern char *gettext (const char *__msgid)
-+ _INTL_ASM (libintl_gettext);
-+#endif
-+
-+/* Look up MSGID in the DOMAINNAME message catalog for the current
-+ LC_MESSAGES locale. */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_dgettext (const char *__domainname, const char *__msgid);
-+static inline char *dgettext (const char *__domainname, const char *__msgid)
-+{
-+ return libintl_dgettext (__domainname, __msgid);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define dgettext libintl_dgettext
-+#endif
-+extern char *dgettext (const char *__domainname, const char *__msgid)
-+ _INTL_ASM (libintl_dgettext);
-+#endif
-+
-+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
-+ locale. */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_dcgettext (const char *__domainname, const char *__msgid,
-+ int __category);
-+static inline char *dcgettext (const char *__domainname, const char *__msgid,
-+ int __category)
-+{
-+ return libintl_dcgettext (__domainname, __msgid, __category);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define dcgettext libintl_dcgettext
-+#endif
-+extern char *dcgettext (const char *__domainname, const char *__msgid,
-+ int __category)
-+ _INTL_ASM (libintl_dcgettext);
-+#endif
-+
-+
-+/* Similar to `gettext' but select the plural form corresponding to the
-+ number N. */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n);
-+static inline char *ngettext (const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n)
-+{
-+ return libintl_ngettext (__msgid1, __msgid2, __n);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define ngettext libintl_ngettext
-+#endif
-+extern char *ngettext (const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n)
-+ _INTL_ASM (libintl_ngettext);
-+#endif
-+
-+/* Similar to `dgettext' but select the plural form corresponding to the
-+ number N. */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_dngettext (const char *__domainname, const char *__msgid1,
-+ const char *__msgid2, unsigned long int __n);
-+static inline char *dngettext (const char *__domainname, const char *__msgid1,
-+ const char *__msgid2, unsigned long int __n)
-+{
-+ return libintl_dngettext (__domainname, __msgid1, __msgid2, __n);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define dngettext libintl_dngettext
-+#endif
-+extern char *dngettext (const char *__domainname,
-+ const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n)
-+ _INTL_ASM (libintl_dngettext);
-+#endif
-+
-+/* Similar to `dcgettext' but select the plural form corresponding to the
-+ number N. */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_dcngettext (const char *__domainname,
-+ const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n, int __category);
-+static inline char *dcngettext (const char *__domainname,
-+ const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n, int __category)
-+{
-+ return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define dcngettext libintl_dcngettext
-+#endif
-+extern char *dcngettext (const char *__domainname,
-+ const char *__msgid1, const char *__msgid2,
-+ unsigned long int __n, int __category)
-+ _INTL_ASM (libintl_dcngettext);
-+#endif
-+
-+
-+/* Set the current default message catalog to DOMAINNAME.
-+ If DOMAINNAME is null, return the current default.
-+ If DOMAINNAME is "", reset to the default of "messages". */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_textdomain (const char *__domainname);
-+static inline char *textdomain (const char *__domainname)
-+{
-+ return libintl_textdomain (__domainname);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define textdomain libintl_textdomain
-+#endif
-+extern char *textdomain (const char *__domainname)
-+ _INTL_ASM (libintl_textdomain);
-+#endif
-+
-+/* Specify that the DOMAINNAME message catalog will be found
-+ in DIRNAME rather than in the system locale data base. */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_bindtextdomain (const char *__domainname,
-+ const char *__dirname);
-+static inline char *bindtextdomain (const char *__domainname,
-+ const char *__dirname)
-+{
-+ return libintl_bindtextdomain (__domainname, __dirname);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define bindtextdomain libintl_bindtextdomain
-+#endif
-+extern char *bindtextdomain (const char *__domainname, const char *__dirname)
-+ _INTL_ASM (libintl_bindtextdomain);
-+#endif
-+
-+/* Specify the character encoding in which the messages from the
-+ DOMAINNAME message catalog will be returned. */
-+#ifdef _INTL_REDIRECT_INLINE
-+extern char *libintl_bind_textdomain_codeset (const char *__domainname,
-+ const char *__codeset);
-+static inline char *bind_textdomain_codeset (const char *__domainname,
-+ const char *__codeset)
-+{
-+ return libintl_bind_textdomain_codeset (__domainname, __codeset);
-+}
-+#else
-+#ifdef _INTL_REDIRECT_MACROS
-+# define bind_textdomain_codeset libintl_bind_textdomain_codeset
-+#endif
-+extern char *bind_textdomain_codeset (const char *__domainname,
-+ const char *__codeset)
-+ _INTL_ASM (libintl_bind_textdomain_codeset);
-+#endif
-+
-+
-+/* Support for format strings with positions in *printf(), following the
-+ POSIX/XSI specification.
-+ Note: These replacements for the *printf() functions are visible only
-+ in source files that #include <libintl.h> or #include "gettext.h".
-+ Packages that use *printf() in source files that don't refer to _()
-+ or gettext() but for which the format string could be the return value
-+ of _() or gettext() need to add this #include. Oh well. */
-+
-+#if !@HAVE_POSIX_PRINTF@
-+
-+#include <stdio.h>
-+#include <stddef.h>
-+
-+/* Get va_list. */
-+#if __STDC__ || defined __cplusplus || defined _MSC_VER
-+# include <stdarg.h>
-+#else
-+# include <varargs.h>
-+#endif
-+
-+#undef fprintf
-+#define fprintf libintl_fprintf
-+extern int fprintf (FILE *, const char *, ...);
-+#undef vfprintf
-+#define vfprintf libintl_vfprintf
-+extern int vfprintf (FILE *, const char *, va_list);
-+
-+#undef printf
-+#define printf libintl_printf
-+extern int printf (const char *, ...);
-+#undef vprintf
-+#define vprintf libintl_vprintf
-+extern int vprintf (const char *, va_list);
-+
-+#undef sprintf
-+#define sprintf libintl_sprintf
-+extern int sprintf (char *, const char *, ...);
-+#undef vsprintf
-+#define vsprintf libintl_vsprintf
-+extern int vsprintf (char *, const char *, va_list);
-+
-+#if @HAVE_SNPRINTF@
-+
-+#undef snprintf
-+#define snprintf libintl_snprintf
-+extern int snprintf (char *, size_t, const char *, ...);
-+#undef vsnprintf
-+#define vsnprintf libintl_vsnprintf
-+extern int vsnprintf (char *, size_t, const char *, va_list);
-+
-+#endif
-+
-+#if @HAVE_ASPRINTF@
-+
-+#undef asprintf
-+#define asprintf libintl_asprintf
-+extern int asprintf (char **, const char *, ...);
-+#undef vasprintf
-+#define vasprintf libintl_vasprintf
-+extern int vasprintf (char **, const char *, va_list);
-+
-+#endif
-+
-+#if @HAVE_WPRINTF@
-+
-+#undef fwprintf
-+#define fwprintf libintl_fwprintf
-+extern int fwprintf (FILE *, const wchar_t *, ...);
-+#undef vfwprintf
-+#define vfwprintf libintl_vfwprintf
-+extern int vfwprintf (FILE *, const wchar_t *, va_list);
-+
-+#undef wprintf
-+#define wprintf libintl_wprintf
-+extern int wprintf (const wchar_t *, ...);
-+#undef vwprintf
-+#define vwprintf libintl_vwprintf
-+extern int vwprintf (const wchar_t *, va_list);
-+
-+#undef swprintf
-+#define swprintf libintl_swprintf
-+extern int swprintf (wchar_t *, size_t, const wchar_t *, ...);
-+#undef vswprintf
-+#define vswprintf libintl_vswprintf
-+extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list);
-+
-+#endif
-+
-+#endif
-+
-+
-+/* Support for relocatable packages. */
-+
-+/* Sets the original and the current installation prefix of the package.
-+ Relocation simply replaces a pathname starting with the original prefix
-+ by the corresponding pathname with the current prefix instead. Both
-+ prefixes should be directory names without trailing slash (i.e. use ""
-+ instead of "/"). */
-+#define libintl_set_relocation_prefix libintl_set_relocation_prefix
-+extern void
-+ libintl_set_relocation_prefix (const char *orig_prefix,
-+ const char *curr_prefix);
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* libintl.h */
---- lrzsz-0.12.20.safe/intl/linux-msg.sed 1998-04-26 09:20:52.000000000 -0400
-+++ lrzsz-0.12.20/intl/linux-msg.sed 1969-12-31 19:00:00.000000000 -0500
-@@ -1,100 +0,0 @@
--# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
--# Copyright (C) 1995 Free Software Foundation, Inc.
--# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
--#
--# 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, 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.
--#
--#
--# The first directive in the .msg should be the definition of the
--# message set number. We use always set number 1.
--#
--1 {
-- i\
--$set 1 # Automatically created by po2msg.sed
-- h
-- s/.*/0/
-- x
--}
--#
--# Mitch's old catalog format does not allow comments.
--#
--# We copy the original message as a comment into the .msg file.
--#
--/^msgid/ {
-- s/msgid[ ]*"//
--#
--# This does not work now with the new format.
--# /"$/! {
--# s/\\$//
--# s/$/ ... (more lines following)"/
--# }
-- x
--# The following nice solution is by
--# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
-- td
--# Increment a decimal number in pattern space.
--# First hide trailing `9' digits.
-- :d
-- s/9\(_*\)$/_\1/
-- td
--# Assure at least one digit is available.
-- s/^\(_*\)$/0\1/
--# Increment the last digit.
-- s/8\(_*\)$/9\1/
-- s/7\(_*\)$/8\1/
-- s/6\(_*\)$/7\1/
-- s/5\(_*\)$/6\1/
-- s/4\(_*\)$/5\1/
-- s/3\(_*\)$/4\1/
-- s/2\(_*\)$/3\1/
-- s/1\(_*\)$/2\1/
-- s/0\(_*\)$/1\1/
--# Convert the hidden `9' digits to `0's.
-- s/_/0/g
-- x
-- G
-- s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
--}
--#
--# The .msg file contains, other then the .po file, only the translations
--# but each given a unique ID. Starting from 1 and incrementing by 1 for
--# each message we assign them to the messages.
--# It is important that the .po file used to generate the cat-id-tbl.c file
--# (with po-to-tbl) is the same as the one used here. (At least the order
--# of declarations must not be changed.)
--#
--/^msgstr/ {
-- s/msgstr[ ]*"\(.*\)"/# \1/
--# Clear substitution flag.
-- tb
--# Append the next line.
-- :b
-- N
--# Look whether second part is continuation line.
-- s/\(.*\n\)"\(.*\)"/\1\2/
--# Yes, then branch.
-- ta
-- P
-- D
--# Note that D includes a jump to the start!!
--# We found a continuation line. But before printing insert '\'.
-- :a
-- s/\(.*\)\(\n.*\)/\1\\\2/
-- P
--# We cannot use D here.
-- s/.*\n\(.*\)/\1/
-- tb
--}
--d
---- lrzsz-0.12.20.safe/intl/loadinfo.h 1998-04-26 09:20:52.000000000 -0400
-+++ lrzsz-0.12.20/intl/loadinfo.h 2004-09-12 14:40:34.468730912 -0400
-@@ -1,9 +1,54 @@
--#ifndef PARAMS
--# if __STDC__
--# define PARAMS(args) args
--# else
--# define PARAMS(args) ()
--# endif
-+/* Copyright (C) 1996-1999, 2000-2003 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _LOADINFO_H
-+#define _LOADINFO_H 1
-+
-+/* Declarations of locale dependent catalog lookup functions.
-+ Implemented in
-+
-+ localealias.c Possibly replace a locale name by another.
-+ explodename.c Split a locale name into its various fields.
-+ l10nflist.c Generate a list of filenames of possible message catalogs.
-+ finddomain.c Find and open the relevant message catalogs.
-+
-+ The main function _nl_find_domain() in finddomain.c is declared
-+ in gettextP.h.
-+ */
-+
-+#ifndef internal_function
-+# define internal_function
-+#endif
-+
-+/* Tell the compiler when a conditional or integer expression is
-+ almost always true or almost always false. */
-+#ifndef HAVE_BUILTIN_EXPECT
-+# define __builtin_expect(expr, val) (expr)
-+#endif
-+
-+/* Separator in PATH like lists of pathnames. */
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+ /* Win32, OS/2, DOS */
-+# define PATH_SEPARATOR ';'
-+#else
-+ /* Unix */
-+# define PATH_SEPARATOR ':'
- #endif
-
- /* Encoding of locale name parts. */
-@@ -32,27 +77,69 @@
- };
-
-
--extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
-- size_t name_len));
-+/* Normalize codeset name. There is no standard for the codeset
-+ names. Normalization allows the user to use any of the common
-+ names. The return value is dynamically allocated and has to be
-+ freed by the caller. */
-+extern const char *_nl_normalize_codeset (const char *codeset,
-+ size_t name_len);
-
-+/* Lookup a locale dependent file.
-+ *L10NFILE_LIST denotes a pool of lookup results of locale dependent
-+ files of the same kind, sorted in decreasing order of ->filename.
-+ DIRLIST and DIRLIST_LEN are an argz list of directories in which to
-+ look, containing at least one directory (i.e. DIRLIST_LEN > 0).
-+ MASK, LANGUAGE, TERRITORY, CODESET, NORMALIZED_CODESET, MODIFIER,
-+ SPECIAL, SPONSOR, REVISION are the pieces of the locale name, as
-+ produced by _nl_explode_name(). FILENAME is the filename suffix.
-+ The return value is the lookup result, either found in *L10NFILE_LIST,
-+ or - if DO_ALLOCATE is nonzero - freshly allocated, or possibly NULL.
-+ If the return value is non-NULL, it is added to *L10NFILE_LIST, and
-+ its ->next field denotes the chaining inside *L10NFILE_LIST, and
-+ furthermore its ->successor[] field contains a list of other lookup
-+ results from which this lookup result inherits. */
- extern struct loaded_l10nfile *
--_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
-- const char *dirlist, size_t dirlist_len, int mask,
-- const char *language, const char *territory,
-- const char *codeset,
-- const char *normalized_codeset,
-- const char *modifier, const char *special,
-- const char *sponsor, const char *revision,
-- const char *filename, int do_allocate));
-+_nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
-+ const char *dirlist, size_t dirlist_len, int mask,
-+ const char *language, const char *territory,
-+ const char *codeset, const char *normalized_codeset,
-+ const char *modifier, const char *special,
-+ const char *sponsor, const char *revision,
-+ const char *filename, int do_allocate);
-
-+/* Lookup the real locale name for a locale alias NAME, or NULL if
-+ NAME is not a locale alias (but possibly a real locale name).
-+ The return value is statically allocated and must not be freed. */
-+extern const char *_nl_expand_alias (const char *name);
-
--extern const char *_nl_expand_alias PARAMS ((const char *name));
-+/* Split a locale name NAME into its pieces: language, modifier,
-+ territory, codeset, special, sponsor, revision.
-+ NAME gets destructively modified: NUL bytes are inserted here and
-+ there. *LANGUAGE gets assigned NAME. Each of *MODIFIER, *TERRITORY,
-+ *CODESET, *SPECIAL, *SPONSOR, *REVISION gets assigned either a
-+ pointer into the old NAME string, or NULL. *NORMALIZED_CODESET
-+ gets assigned the expanded *CODESET, if it is different from *CODESET;
-+ this one is dynamically allocated and has to be freed by the caller.
-+ The return value is a bitmask, where each bit corresponds to one
-+ filled-in value:
-+ XPG_MODIFIER, CEN_AUDIENCE for *MODIFIER,
-+ TERRITORY for *TERRITORY,
-+ XPG_CODESET for *CODESET,
-+ XPG_NORM_CODESET for *NORMALIZED_CODESET,
-+ CEN_SPECIAL for *SPECIAL,
-+ CEN_SPONSOR for *SPONSOR,
-+ CEN_REVISION for *REVISION.
-+ */
-+extern int _nl_explode_name (char *name, const char **language,
-+ const char **modifier, const char **territory,
-+ const char **codeset,
-+ const char **normalized_codeset,
-+ const char **special, const char **sponsor,
-+ const char **revision);
-
--extern int _nl_explode_name PARAMS ((char *name, const char **language,
-- const char **modifier,
-- const char **territory,
-- const char **codeset,
-- const char **normalized_codeset,
-- const char **special,
-- const char **sponsor,
-- const char **revision));
-+/* Split a locale name NAME into a leading language part and all the
-+ rest. Return a pointer to the first character after the language,
-+ i.e. to the first byte of the rest. */
-+extern char *_nl_find_language (const char *name);
-+
-+#endif /* loadinfo.h */
---- lrzsz-0.12.20.safe/intl/loadmsgcat.c 1998-04-26 09:22:37.000000000 -0400
-+++ lrzsz-0.12.20/intl/loadmsgcat.c 2004-09-12 14:40:34.473730152 -0400
-@@ -1,42 +1,455 @@
--/* Load needed message catalogs
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-+/* Load needed message catalogs.
-+ Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
-+ This must come before <config.h> because <config.h> may include
-+ <features.h>, and once <features.h> has been included, it's too late. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
-+#include <ctype.h>
-+#include <errno.h>
- #include <fcntl.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-
--#if defined STDC_HEADERS || defined _LIBC
--# include <stdlib.h>
-+#ifdef __GNUC__
-+# undef alloca
-+# define alloca __builtin_alloca
-+# define HAVE_ALLOCA 1
-+#else
-+# ifdef _MSC_VER
-+# include <malloc.h>
-+# define alloca _alloca
-+# else
-+# if defined HAVE_ALLOCA_H || defined _LIBC
-+# include <alloca.h>
-+# else
-+# ifdef _AIX
-+ #pragma alloca
-+# else
-+# ifndef alloca
-+char *alloca ();
-+# endif
-+# endif
-+# endif
-+# endif
- #endif
-
-+#include <stdlib.h>
-+#include <string.h>
-+
- #if defined HAVE_UNISTD_H || defined _LIBC
- # include <unistd.h>
- #endif
-
--#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
-+#ifdef _LIBC
-+# include <langinfo.h>
-+# include <locale.h>
-+#endif
-+
-+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
-+ || (defined _LIBC && defined _POSIX_MAPPED_FILES)
- # include <sys/mman.h>
-+# undef HAVE_MMAP
-+# define HAVE_MMAP 1
-+#else
-+# undef HAVE_MMAP
- #endif
-
--#include "gettext.h"
-+#if defined HAVE_STDINT_H_WITH_UINTMAX || defined _LIBC
-+# include <stdint.h>
-+#endif
-+#if defined HAVE_INTTYPES_H || defined _LIBC
-+# include <inttypes.h>
-+#endif
-+
-+#include "gmo.h"
- #include "gettextP.h"
-+#include "hash-string.h"
-+#include "plural-exp.h"
-+
-+#ifdef _LIBC
-+# include "../locale/localeinfo.h"
-+#endif
-+
-+/* Provide fallback values for macros that ought to be defined in <inttypes.h>.
-+ Note that our fallback values need not be literal strings, because we don't
-+ use them with preprocessor string concatenation. */
-+#if !defined PRId8 || PRI_MACROS_BROKEN
-+# undef PRId8
-+# define PRId8 "d"
-+#endif
-+#if !defined PRIi8 || PRI_MACROS_BROKEN
-+# undef PRIi8
-+# define PRIi8 "i"
-+#endif
-+#if !defined PRIo8 || PRI_MACROS_BROKEN
-+# undef PRIo8
-+# define PRIo8 "o"
-+#endif
-+#if !defined PRIu8 || PRI_MACROS_BROKEN
-+# undef PRIu8
-+# define PRIu8 "u"
-+#endif
-+#if !defined PRIx8 || PRI_MACROS_BROKEN
-+# undef PRIx8
-+# define PRIx8 "x"
-+#endif
-+#if !defined PRIX8 || PRI_MACROS_BROKEN
-+# undef PRIX8
-+# define PRIX8 "X"
-+#endif
-+#if !defined PRId16 || PRI_MACROS_BROKEN
-+# undef PRId16
-+# define PRId16 "d"
-+#endif
-+#if !defined PRIi16 || PRI_MACROS_BROKEN
-+# undef PRIi16
-+# define PRIi16 "i"
-+#endif
-+#if !defined PRIo16 || PRI_MACROS_BROKEN
-+# undef PRIo16
-+# define PRIo16 "o"
-+#endif
-+#if !defined PRIu16 || PRI_MACROS_BROKEN
-+# undef PRIu16
-+# define PRIu16 "u"
-+#endif
-+#if !defined PRIx16 || PRI_MACROS_BROKEN
-+# undef PRIx16
-+# define PRIx16 "x"
-+#endif
-+#if !defined PRIX16 || PRI_MACROS_BROKEN
-+# undef PRIX16
-+# define PRIX16 "X"
-+#endif
-+#if !defined PRId32 || PRI_MACROS_BROKEN
-+# undef PRId32
-+# define PRId32 "d"
-+#endif
-+#if !defined PRIi32 || PRI_MACROS_BROKEN
-+# undef PRIi32
-+# define PRIi32 "i"
-+#endif
-+#if !defined PRIo32 || PRI_MACROS_BROKEN
-+# undef PRIo32
-+# define PRIo32 "o"
-+#endif
-+#if !defined PRIu32 || PRI_MACROS_BROKEN
-+# undef PRIu32
-+# define PRIu32 "u"
-+#endif
-+#if !defined PRIx32 || PRI_MACROS_BROKEN
-+# undef PRIx32
-+# define PRIx32 "x"
-+#endif
-+#if !defined PRIX32 || PRI_MACROS_BROKEN
-+# undef PRIX32
-+# define PRIX32 "X"
-+#endif
-+#if !defined PRId64 || PRI_MACROS_BROKEN
-+# undef PRId64
-+# define PRId64 (sizeof (long) == 8 ? "ld" : "lld")
-+#endif
-+#if !defined PRIi64 || PRI_MACROS_BROKEN
-+# undef PRIi64
-+# define PRIi64 (sizeof (long) == 8 ? "li" : "lli")
-+#endif
-+#if !defined PRIo64 || PRI_MACROS_BROKEN
-+# undef PRIo64
-+# define PRIo64 (sizeof (long) == 8 ? "lo" : "llo")
-+#endif
-+#if !defined PRIu64 || PRI_MACROS_BROKEN
-+# undef PRIu64
-+# define PRIu64 (sizeof (long) == 8 ? "lu" : "llu")
-+#endif
-+#if !defined PRIx64 || PRI_MACROS_BROKEN
-+# undef PRIx64
-+# define PRIx64 (sizeof (long) == 8 ? "lx" : "llx")
-+#endif
-+#if !defined PRIX64 || PRI_MACROS_BROKEN
-+# undef PRIX64
-+# define PRIX64 (sizeof (long) == 8 ? "lX" : "llX")
-+#endif
-+#if !defined PRIdLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIdLEAST8
-+# define PRIdLEAST8 "d"
-+#endif
-+#if !defined PRIiLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIiLEAST8
-+# define PRIiLEAST8 "i"
-+#endif
-+#if !defined PRIoLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIoLEAST8
-+# define PRIoLEAST8 "o"
-+#endif
-+#if !defined PRIuLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIuLEAST8
-+# define PRIuLEAST8 "u"
-+#endif
-+#if !defined PRIxLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIxLEAST8
-+# define PRIxLEAST8 "x"
-+#endif
-+#if !defined PRIXLEAST8 || PRI_MACROS_BROKEN
-+# undef PRIXLEAST8
-+# define PRIXLEAST8 "X"
-+#endif
-+#if !defined PRIdLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIdLEAST16
-+# define PRIdLEAST16 "d"
-+#endif
-+#if !defined PRIiLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIiLEAST16
-+# define PRIiLEAST16 "i"
-+#endif
-+#if !defined PRIoLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIoLEAST16
-+# define PRIoLEAST16 "o"
-+#endif
-+#if !defined PRIuLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIuLEAST16
-+# define PRIuLEAST16 "u"
-+#endif
-+#if !defined PRIxLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIxLEAST16
-+# define PRIxLEAST16 "x"
-+#endif
-+#if !defined PRIXLEAST16 || PRI_MACROS_BROKEN
-+# undef PRIXLEAST16
-+# define PRIXLEAST16 "X"
-+#endif
-+#if !defined PRIdLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIdLEAST32
-+# define PRIdLEAST32 "d"
-+#endif
-+#if !defined PRIiLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIiLEAST32
-+# define PRIiLEAST32 "i"
-+#endif
-+#if !defined PRIoLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIoLEAST32
-+# define PRIoLEAST32 "o"
-+#endif
-+#if !defined PRIuLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIuLEAST32
-+# define PRIuLEAST32 "u"
-+#endif
-+#if !defined PRIxLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIxLEAST32
-+# define PRIxLEAST32 "x"
-+#endif
-+#if !defined PRIXLEAST32 || PRI_MACROS_BROKEN
-+# undef PRIXLEAST32
-+# define PRIXLEAST32 "X"
-+#endif
-+#if !defined PRIdLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIdLEAST64
-+# define PRIdLEAST64 PRId64
-+#endif
-+#if !defined PRIiLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIiLEAST64
-+# define PRIiLEAST64 PRIi64
-+#endif
-+#if !defined PRIoLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIoLEAST64
-+# define PRIoLEAST64 PRIo64
-+#endif
-+#if !defined PRIuLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIuLEAST64
-+# define PRIuLEAST64 PRIu64
-+#endif
-+#if !defined PRIxLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIxLEAST64
-+# define PRIxLEAST64 PRIx64
-+#endif
-+#if !defined PRIXLEAST64 || PRI_MACROS_BROKEN
-+# undef PRIXLEAST64
-+# define PRIXLEAST64 PRIX64
-+#endif
-+#if !defined PRIdFAST8 || PRI_MACROS_BROKEN
-+# undef PRIdFAST8
-+# define PRIdFAST8 "d"
-+#endif
-+#if !defined PRIiFAST8 || PRI_MACROS_BROKEN
-+# undef PRIiFAST8
-+# define PRIiFAST8 "i"
-+#endif
-+#if !defined PRIoFAST8 || PRI_MACROS_BROKEN
-+# undef PRIoFAST8
-+# define PRIoFAST8 "o"
-+#endif
-+#if !defined PRIuFAST8 || PRI_MACROS_BROKEN
-+# undef PRIuFAST8
-+# define PRIuFAST8 "u"
-+#endif
-+#if !defined PRIxFAST8 || PRI_MACROS_BROKEN
-+# undef PRIxFAST8
-+# define PRIxFAST8 "x"
-+#endif
-+#if !defined PRIXFAST8 || PRI_MACROS_BROKEN
-+# undef PRIXFAST8
-+# define PRIXFAST8 "X"
-+#endif
-+#if !defined PRIdFAST16 || PRI_MACROS_BROKEN
-+# undef PRIdFAST16
-+# define PRIdFAST16 "d"
-+#endif
-+#if !defined PRIiFAST16 || PRI_MACROS_BROKEN
-+# undef PRIiFAST16
-+# define PRIiFAST16 "i"
-+#endif
-+#if !defined PRIoFAST16 || PRI_MACROS_BROKEN
-+# undef PRIoFAST16
-+# define PRIoFAST16 "o"
-+#endif
-+#if !defined PRIuFAST16 || PRI_MACROS_BROKEN
-+# undef PRIuFAST16
-+# define PRIuFAST16 "u"
-+#endif
-+#if !defined PRIxFAST16 || PRI_MACROS_BROKEN
-+# undef PRIxFAST16
-+# define PRIxFAST16 "x"
-+#endif
-+#if !defined PRIXFAST16 || PRI_MACROS_BROKEN
-+# undef PRIXFAST16
-+# define PRIXFAST16 "X"
-+#endif
-+#if !defined PRIdFAST32 || PRI_MACROS_BROKEN
-+# undef PRIdFAST32
-+# define PRIdFAST32 "d"
-+#endif
-+#if !defined PRIiFAST32 || PRI_MACROS_BROKEN
-+# undef PRIiFAST32
-+# define PRIiFAST32 "i"
-+#endif
-+#if !defined PRIoFAST32 || PRI_MACROS_BROKEN
-+# undef PRIoFAST32
-+# define PRIoFAST32 "o"
-+#endif
-+#if !defined PRIuFAST32 || PRI_MACROS_BROKEN
-+# undef PRIuFAST32
-+# define PRIuFAST32 "u"
-+#endif
-+#if !defined PRIxFAST32 || PRI_MACROS_BROKEN
-+# undef PRIxFAST32
-+# define PRIxFAST32 "x"
-+#endif
-+#if !defined PRIXFAST32 || PRI_MACROS_BROKEN
-+# undef PRIXFAST32
-+# define PRIXFAST32 "X"
-+#endif
-+#if !defined PRIdFAST64 || PRI_MACROS_BROKEN
-+# undef PRIdFAST64
-+# define PRIdFAST64 PRId64
-+#endif
-+#if !defined PRIiFAST64 || PRI_MACROS_BROKEN
-+# undef PRIiFAST64
-+# define PRIiFAST64 PRIi64
-+#endif
-+#if !defined PRIoFAST64 || PRI_MACROS_BROKEN
-+# undef PRIoFAST64
-+# define PRIoFAST64 PRIo64
-+#endif
-+#if !defined PRIuFAST64 || PRI_MACROS_BROKEN
-+# undef PRIuFAST64
-+# define PRIuFAST64 PRIu64
-+#endif
-+#if !defined PRIxFAST64 || PRI_MACROS_BROKEN
-+# undef PRIxFAST64
-+# define PRIxFAST64 PRIx64
-+#endif
-+#if !defined PRIXFAST64 || PRI_MACROS_BROKEN
-+# undef PRIXFAST64
-+# define PRIXFAST64 PRIX64
-+#endif
-+#if !defined PRIdMAX || PRI_MACROS_BROKEN
-+# undef PRIdMAX
-+# define PRIdMAX (sizeof (uintmax_t) == sizeof (long) ? "ld" : "lld")
-+#endif
-+#if !defined PRIiMAX || PRI_MACROS_BROKEN
-+# undef PRIiMAX
-+# define PRIiMAX (sizeof (uintmax_t) == sizeof (long) ? "li" : "lli")
-+#endif
-+#if !defined PRIoMAX || PRI_MACROS_BROKEN
-+# undef PRIoMAX
-+# define PRIoMAX (sizeof (uintmax_t) == sizeof (long) ? "lo" : "llo")
-+#endif
-+#if !defined PRIuMAX || PRI_MACROS_BROKEN
-+# undef PRIuMAX
-+# define PRIuMAX (sizeof (uintmax_t) == sizeof (long) ? "lu" : "llu")
-+#endif
-+#if !defined PRIxMAX || PRI_MACROS_BROKEN
-+# undef PRIxMAX
-+# define PRIxMAX (sizeof (uintmax_t) == sizeof (long) ? "lx" : "llx")
-+#endif
-+#if !defined PRIXMAX || PRI_MACROS_BROKEN
-+# undef PRIXMAX
-+# define PRIXMAX (sizeof (uintmax_t) == sizeof (long) ? "lX" : "llX")
-+#endif
-+#if !defined PRIdPTR || PRI_MACROS_BROKEN
-+# undef PRIdPTR
-+# define PRIdPTR \
-+ (sizeof (void *) == sizeof (long) ? "ld" : \
-+ sizeof (void *) == sizeof (int) ? "d" : \
-+ "lld")
-+#endif
-+#if !defined PRIiPTR || PRI_MACROS_BROKEN
-+# undef PRIiPTR
-+# define PRIiPTR \
-+ (sizeof (void *) == sizeof (long) ? "li" : \
-+ sizeof (void *) == sizeof (int) ? "i" : \
-+ "lli")
-+#endif
-+#if !defined PRIoPTR || PRI_MACROS_BROKEN
-+# undef PRIoPTR
-+# define PRIoPTR \
-+ (sizeof (void *) == sizeof (long) ? "lo" : \
-+ sizeof (void *) == sizeof (int) ? "o" : \
-+ "llo")
-+#endif
-+#if !defined PRIuPTR || PRI_MACROS_BROKEN
-+# undef PRIuPTR
-+# define PRIuPTR \
-+ (sizeof (void *) == sizeof (long) ? "lu" : \
-+ sizeof (void *) == sizeof (int) ? "u" : \
-+ "llu")
-+#endif
-+#if !defined PRIxPTR || PRI_MACROS_BROKEN
-+# undef PRIxPTR
-+# define PRIxPTR \
-+ (sizeof (void *) == sizeof (long) ? "lx" : \
-+ sizeof (void *) == sizeof (int) ? "x" : \
-+ "llx")
-+#endif
-+#if !defined PRIXPTR || PRI_MACROS_BROKEN
-+# undef PRIXPTR
-+# define PRIXPTR \
-+ (sizeof (void *) == sizeof (long) ? "lX" : \
-+ sizeof (void *) == sizeof (int) ? "X" : \
-+ "llX")
-+#endif
-
- /* @@ end of prolog @@ */
-
-@@ -44,7 +457,6 @@
- /* Rename the non ISO C functions. This is required by the standard
- because some ISO C functions will require linking with this object
- file and the name space must not be polluted. */
--# define fstat __fstat
- # define open __open
- # define close __close
- # define read __read
-@@ -52,30 +464,471 @@
- # define munmap __munmap
- #endif
-
-+/* For those losing systems which don't have `alloca' we have to add
-+ some additional code emulating it. */
-+#ifdef HAVE_ALLOCA
-+# define freea(p) /* nothing */
-+#else
-+# define alloca(n) malloc (n)
-+# define freea(p) free (p)
-+#endif
-+
-+/* For systems that distinguish between text and binary I/O.
-+ O_BINARY is usually declared in <fcntl.h>. */
-+#if !defined O_BINARY && defined _O_BINARY
-+ /* For MSC-compatible compilers. */
-+# define O_BINARY _O_BINARY
-+# define O_TEXT _O_TEXT
-+#endif
-+#ifdef __BEOS__
-+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */
-+# undef O_BINARY
-+# undef O_TEXT
-+#endif
-+/* On reasonable systems, binary I/O is the default. */
-+#ifndef O_BINARY
-+# define O_BINARY 0
-+#endif
-+
-+
- /* We need a sign, whether a new catalog was loaded, which can be associated
- with all translations. This is important if the translations are
- cached by one of GCC's features. */
--int _nl_msg_cat_cntr = 0;
-+int _nl_msg_cat_cntr;
-
-
-+/* Expand a system dependent string segment. Return NULL if unsupported. */
-+static const char *
-+get_sysdep_segment_value (const char *name)
-+{
-+ /* Test for an ISO C 99 section 7.8.1 format string directive.
-+ Syntax:
-+ P R I { d | i | o | u | x | X }
-+ { { | LEAST | FAST } { 8 | 16 | 32 | 64 } | MAX | PTR } */
-+ /* We don't use a table of 14 times 6 'const char *' strings here, because
-+ data relocations cost startup time. */
-+ if (name[0] == 'P' && name[1] == 'R' && name[2] == 'I')
-+ {
-+ if (name[3] == 'd' || name[3] == 'i' || name[3] == 'o' || name[3] == 'u'
-+ || name[3] == 'x' || name[3] == 'X')
-+ {
-+ if (name[4] == '8' && name[5] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRId8;
-+ if (name[3] == 'i')
-+ return PRIi8;
-+ if (name[3] == 'o')
-+ return PRIo8;
-+ if (name[3] == 'u')
-+ return PRIu8;
-+ if (name[3] == 'x')
-+ return PRIx8;
-+ if (name[3] == 'X')
-+ return PRIX8;
-+ abort ();
-+ }
-+ if (name[4] == '1' && name[5] == '6' && name[6] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRId16;
-+ if (name[3] == 'i')
-+ return PRIi16;
-+ if (name[3] == 'o')
-+ return PRIo16;
-+ if (name[3] == 'u')
-+ return PRIu16;
-+ if (name[3] == 'x')
-+ return PRIx16;
-+ if (name[3] == 'X')
-+ return PRIX16;
-+ abort ();
-+ }
-+ if (name[4] == '3' && name[5] == '2' && name[6] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRId32;
-+ if (name[3] == 'i')
-+ return PRIi32;
-+ if (name[3] == 'o')
-+ return PRIo32;
-+ if (name[3] == 'u')
-+ return PRIu32;
-+ if (name[3] == 'x')
-+ return PRIx32;
-+ if (name[3] == 'X')
-+ return PRIX32;
-+ abort ();
-+ }
-+ if (name[4] == '6' && name[5] == '4' && name[6] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRId64;
-+ if (name[3] == 'i')
-+ return PRIi64;
-+ if (name[3] == 'o')
-+ return PRIo64;
-+ if (name[3] == 'u')
-+ return PRIu64;
-+ if (name[3] == 'x')
-+ return PRIx64;
-+ if (name[3] == 'X')
-+ return PRIX64;
-+ abort ();
-+ }
-+ if (name[4] == 'L' && name[5] == 'E' && name[6] == 'A'
-+ && name[7] == 'S' && name[8] == 'T')
-+ {
-+ if (name[9] == '8' && name[10] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdLEAST8;
-+ if (name[3] == 'i')
-+ return PRIiLEAST8;
-+ if (name[3] == 'o')
-+ return PRIoLEAST8;
-+ if (name[3] == 'u')
-+ return PRIuLEAST8;
-+ if (name[3] == 'x')
-+ return PRIxLEAST8;
-+ if (name[3] == 'X')
-+ return PRIXLEAST8;
-+ abort ();
-+ }
-+ if (name[9] == '1' && name[10] == '6' && name[11] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdLEAST16;
-+ if (name[3] == 'i')
-+ return PRIiLEAST16;
-+ if (name[3] == 'o')
-+ return PRIoLEAST16;
-+ if (name[3] == 'u')
-+ return PRIuLEAST16;
-+ if (name[3] == 'x')
-+ return PRIxLEAST16;
-+ if (name[3] == 'X')
-+ return PRIXLEAST16;
-+ abort ();
-+ }
-+ if (name[9] == '3' && name[10] == '2' && name[11] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdLEAST32;
-+ if (name[3] == 'i')
-+ return PRIiLEAST32;
-+ if (name[3] == 'o')
-+ return PRIoLEAST32;
-+ if (name[3] == 'u')
-+ return PRIuLEAST32;
-+ if (name[3] == 'x')
-+ return PRIxLEAST32;
-+ if (name[3] == 'X')
-+ return PRIXLEAST32;
-+ abort ();
-+ }
-+ if (name[9] == '6' && name[10] == '4' && name[11] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdLEAST64;
-+ if (name[3] == 'i')
-+ return PRIiLEAST64;
-+ if (name[3] == 'o')
-+ return PRIoLEAST64;
-+ if (name[3] == 'u')
-+ return PRIuLEAST64;
-+ if (name[3] == 'x')
-+ return PRIxLEAST64;
-+ if (name[3] == 'X')
-+ return PRIXLEAST64;
-+ abort ();
-+ }
-+ }
-+ if (name[4] == 'F' && name[5] == 'A' && name[6] == 'S'
-+ && name[7] == 'T')
-+ {
-+ if (name[8] == '8' && name[9] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdFAST8;
-+ if (name[3] == 'i')
-+ return PRIiFAST8;
-+ if (name[3] == 'o')
-+ return PRIoFAST8;
-+ if (name[3] == 'u')
-+ return PRIuFAST8;
-+ if (name[3] == 'x')
-+ return PRIxFAST8;
-+ if (name[3] == 'X')
-+ return PRIXFAST8;
-+ abort ();
-+ }
-+ if (name[8] == '1' && name[9] == '6' && name[10] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdFAST16;
-+ if (name[3] == 'i')
-+ return PRIiFAST16;
-+ if (name[3] == 'o')
-+ return PRIoFAST16;
-+ if (name[3] == 'u')
-+ return PRIuFAST16;
-+ if (name[3] == 'x')
-+ return PRIxFAST16;
-+ if (name[3] == 'X')
-+ return PRIXFAST16;
-+ abort ();
-+ }
-+ if (name[8] == '3' && name[9] == '2' && name[10] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdFAST32;
-+ if (name[3] == 'i')
-+ return PRIiFAST32;
-+ if (name[3] == 'o')
-+ return PRIoFAST32;
-+ if (name[3] == 'u')
-+ return PRIuFAST32;
-+ if (name[3] == 'x')
-+ return PRIxFAST32;
-+ if (name[3] == 'X')
-+ return PRIXFAST32;
-+ abort ();
-+ }
-+ if (name[8] == '6' && name[9] == '4' && name[10] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdFAST64;
-+ if (name[3] == 'i')
-+ return PRIiFAST64;
-+ if (name[3] == 'o')
-+ return PRIoFAST64;
-+ if (name[3] == 'u')
-+ return PRIuFAST64;
-+ if (name[3] == 'x')
-+ return PRIxFAST64;
-+ if (name[3] == 'X')
-+ return PRIXFAST64;
-+ abort ();
-+ }
-+ }
-+ if (name[4] == 'M' && name[5] == 'A' && name[6] == 'X'
-+ && name[7] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdMAX;
-+ if (name[3] == 'i')
-+ return PRIiMAX;
-+ if (name[3] == 'o')
-+ return PRIoMAX;
-+ if (name[3] == 'u')
-+ return PRIuMAX;
-+ if (name[3] == 'x')
-+ return PRIxMAX;
-+ if (name[3] == 'X')
-+ return PRIXMAX;
-+ abort ();
-+ }
-+ if (name[4] == 'P' && name[5] == 'T' && name[6] == 'R'
-+ && name[7] == '\0')
-+ {
-+ if (name[3] == 'd')
-+ return PRIdPTR;
-+ if (name[3] == 'i')
-+ return PRIiPTR;
-+ if (name[3] == 'o')
-+ return PRIoPTR;
-+ if (name[3] == 'u')
-+ return PRIuPTR;
-+ if (name[3] == 'x')
-+ return PRIxPTR;
-+ if (name[3] == 'X')
-+ return PRIXPTR;
-+ abort ();
-+ }
-+ }
-+ }
-+ /* Test for a glibc specific printf() format directive flag. */
-+ if (name[0] == 'I' && name[1] == '\0')
-+ {
-+#if defined _LIBC || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
-+ /* The 'I' flag, in numeric format directives, replaces ASCII digits
-+ with the 'outdigits' defined in the LC_CTYPE locale facet. This is
-+ used for Farsi (Persian) and maybe Arabic. */
-+ return "I";
-+#else
-+ return "";
-+#endif
-+ }
-+ /* Other system dependent strings are not valid. */
-+ return NULL;
-+}
-+
-+/* Initialize the codeset dependent parts of an opened message catalog.
-+ Return the header entry. */
-+const char *
-+internal_function
-+_nl_init_domain_conv (struct loaded_l10nfile *domain_file,
-+ struct loaded_domain *domain,
-+ struct binding *domainbinding)
-+{
-+ /* Find out about the character set the file is encoded with.
-+ This can be found (in textual form) in the entry "". If this
-+ entry does not exist or if this does not contain the `charset='
-+ information, we will assume the charset matches the one the
-+ current locale and we don't have to perform any conversion. */
-+ char *nullentry;
-+ size_t nullentrylen;
-+
-+ /* Preinitialize fields, to avoid recursion during _nl_find_msg. */
-+ domain->codeset_cntr =
-+ (domainbinding != NULL ? domainbinding->codeset_cntr : 0);
-+#ifdef _LIBC
-+ domain->conv = (__gconv_t) -1;
-+#else
-+# if HAVE_ICONV
-+ domain->conv = (iconv_t) -1;
-+# endif
-+#endif
-+ domain->conv_tab = NULL;
-+
-+ /* Get the header entry. */
-+ nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen);
-+
-+ if (nullentry != NULL)
-+ {
-+#if defined _LIBC || HAVE_ICONV
-+ const char *charsetstr;
-+
-+ charsetstr = strstr (nullentry, "charset=");
-+ if (charsetstr != NULL)
-+ {
-+ size_t len;
-+ char *charset;
-+ const char *outcharset;
-+
-+ charsetstr += strlen ("charset=");
-+ len = strcspn (charsetstr, " \t\n");
-+
-+ charset = (char *) alloca (len + 1);
-+# if defined _LIBC || HAVE_MEMPCPY
-+ *((char *) mempcpy (charset, charsetstr, len)) = '\0';
-+# else
-+ memcpy (charset, charsetstr, len);
-+ charset[len] = '\0';
-+# endif
-+
-+ /* The output charset should normally be determined by the
-+ locale. But sometimes the locale is not used or not correctly
-+ set up, so we provide a possibility for the user to override
-+ this. Moreover, the value specified through
-+ bind_textdomain_codeset overrides both. */
-+ if (domainbinding != NULL && domainbinding->codeset != NULL)
-+ outcharset = domainbinding->codeset;
-+ else
-+ {
-+ outcharset = getenv ("OUTPUT_CHARSET");
-+ if (outcharset == NULL || outcharset[0] == '\0')
-+ {
-+# ifdef _LIBC
-+ outcharset = _NL_CURRENT (LC_CTYPE, CODESET);
-+# else
-+# if HAVE_ICONV
-+ extern const char *locale_charset (void);
-+ outcharset = locale_charset ();
-+# endif
-+# endif
-+ }
-+ }
-+
-+# ifdef _LIBC
-+ /* We always want to use transliteration. */
-+ outcharset = norm_add_slashes (outcharset, "TRANSLIT");
-+ charset = norm_add_slashes (charset, NULL);
-+ if (__gconv_open (outcharset, charset, &domain->conv,
-+ GCONV_AVOID_NOCONV)
-+ != __GCONV_OK)
-+ domain->conv = (__gconv_t) -1;
-+# else
-+# if HAVE_ICONV
-+ /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
-+ we want to use transliteration. */
-+# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \
-+ || _LIBICONV_VERSION >= 0x0105
-+ if (strchr (outcharset, '/') == NULL)
-+ {
-+ char *tmp;
-+
-+ len = strlen (outcharset);
-+ tmp = (char *) alloca (len + 10 + 1);
-+ memcpy (tmp, outcharset, len);
-+ memcpy (tmp + len, "//TRANSLIT", 10 + 1);
-+ outcharset = tmp;
-+
-+ domain->conv = iconv_open (outcharset, charset);
-+
-+ freea (outcharset);
-+ }
-+ else
-+# endif
-+ domain->conv = iconv_open (outcharset, charset);
-+# endif
-+# endif
-+
-+ freea (charset);
-+ }
-+#endif /* _LIBC || HAVE_ICONV */
-+ }
-+
-+ return nullentry;
-+}
-+
-+/* Frees the codeset dependent parts of an opened message catalog. */
-+void
-+internal_function
-+_nl_free_domain_conv (struct loaded_domain *domain)
-+{
-+ if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
-+ free (domain->conv_tab);
-+
-+#ifdef _LIBC
-+ if (domain->conv != (__gconv_t) -1)
-+ __gconv_close (domain->conv);
-+#else
-+# if HAVE_ICONV
-+ if (domain->conv != (iconv_t) -1)
-+ iconv_close (domain->conv);
-+# endif
-+#endif
-+}
-+
- /* Load the message catalogs specified by FILENAME. If it is no valid
- message catalog do nothing. */
- void
--_nl_load_domain (domain_file)
-- struct loaded_l10nfile *domain_file;
-+internal_function
-+_nl_load_domain (struct loaded_l10nfile *domain_file,
-+ struct binding *domainbinding)
- {
- int fd;
-+ size_t size;
-+#ifdef _LIBC
-+ struct stat64 st;
-+#else
- struct stat st;
-+#endif
- struct mo_file_header *data = (struct mo_file_header *) -1;
--#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
-- || defined _LIBC
- int use_mmap = 0;
--#endif
- struct loaded_domain *domain;
-+ int revision;
-+ const char *nullentry;
-
- domain_file->decided = 1;
- domain_file->data = NULL;
-
-+ /* Note that it would be useless to store domainbinding in domain_file
-+ because domainbinding might be == NULL now but != NULL later (after
-+ a call to bind_textdomain_codeset). */
-+
- /* If the record does not represent a valid locale the FILENAME
- might be NULL. This can happen when according to the given
- specification the locale file name is different for XPG and CEN
-@@ -84,27 +937,32 @@
- return;
-
- /* Try to open the addressed file. */
-- fd = open (domain_file->filename, O_RDONLY);
-+ fd = open (domain_file->filename, O_RDONLY | O_BINARY);
- if (fd == -1)
- return;
-
- /* We must know about the size of the file. */
-- if (fstat (fd, &st) != 0
-- && st.st_size < (off_t) sizeof (struct mo_file_header))
-+ if (
-+#ifdef _LIBC
-+ __builtin_expect (fstat64 (fd, &st) != 0, 0)
-+#else
-+ __builtin_expect (fstat (fd, &st) != 0, 0)
-+#endif
-+ || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
-+ || __builtin_expect (size < sizeof (struct mo_file_header), 0))
- {
- /* Something went wrong. */
- close (fd);
- return;
- }
-
--#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
-- || defined _LIBC
-+#ifdef HAVE_MMAP
- /* Now we are ready to load the file. If mmap() is available we try
- this first. If not available or it failed we try to load it. */
-- data = (struct mo_file_header *) mmap (NULL, st.st_size, PROT_READ,
-+ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
- MAP_PRIVATE, fd, 0);
-
-- if (data != (struct mo_file_header *) -1)
-+ if (__builtin_expect (data != (struct mo_file_header *) -1, 1))
- {
- /* mmap() call was successful. */
- close (fd);
-@@ -116,24 +974,27 @@
- it manually. */
- if (data == (struct mo_file_header *) -1)
- {
-- off_t to_read;
-+ size_t to_read;
- char *read_ptr;
-
-- data = (struct mo_file_header *) malloc (st.st_size);
-+ data = (struct mo_file_header *) malloc (size);
- if (data == NULL)
- return;
-
-- to_read = st.st_size;
-+ to_read = size;
- read_ptr = (char *) data;
- do
- {
- long int nb = (long int) read (fd, read_ptr, to_read);
-- if (nb == -1)
-+ if (nb <= 0)
- {
-+#ifdef EINTR
-+ if (nb == -1 && errno == EINTR)
-+ continue;
-+#endif
- close (fd);
- return;
- }
--
- read_ptr += nb;
- to_read -= nb;
- }
-@@ -144,47 +1005,378 @@
-
- /* Using the magic number we can test whether it really is a message
- catalog file. */
-- if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
-+ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED,
-+ 0))
- {
- /* The magic number is wrong: not a message catalog file. */
--#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
-- || defined _LIBC
-+#ifdef HAVE_MMAP
- if (use_mmap)
-- munmap ((caddr_t) data, st.st_size);
-+ munmap ((caddr_t) data, size);
- else
- #endif
- free (data);
- return;
- }
-
-- domain_file->data
-- = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
-- if (domain_file->data == NULL)
-+ domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
-+ if (domain == NULL)
- return;
-+ domain_file->data = domain;
-
-- domain = (struct loaded_domain *) domain_file->data;
- domain->data = (char *) data;
-+ domain->use_mmap = use_mmap;
-+ domain->mmap_size = size;
- domain->must_swap = data->magic != _MAGIC;
-+ domain->malloced = NULL;
-
- /* Fill in the information about the available tables. */
-- switch (W (domain->must_swap, data->revision))
-+ revision = W (domain->must_swap, data->revision);
-+ /* We support only the major revisions 0 and 1. */
-+ switch (revision >> 16)
- {
- case 0:
-+ case 1:
- domain->nstrings = W (domain->must_swap, data->nstrings);
-- domain->orig_tab = (struct string_desc *)
-+ domain->orig_tab = (const struct string_desc *)
- ((char *) data + W (domain->must_swap, data->orig_tab_offset));
-- domain->trans_tab = (struct string_desc *)
-+ domain->trans_tab = (const struct string_desc *)
- ((char *) data + W (domain->must_swap, data->trans_tab_offset));
- domain->hash_size = W (domain->must_swap, data->hash_tab_size);
-- domain->hash_tab = (nls_uint32 *)
-- ((char *) data + W (domain->must_swap, data->hash_tab_offset));
-+ domain->hash_tab =
-+ (domain->hash_size > 2
-+ ? (const nls_uint32 *)
-+ ((char *) data + W (domain->must_swap, data->hash_tab_offset))
-+ : NULL);
-+ domain->must_swap_hash_tab = domain->must_swap;
-+
-+ /* Now dispatch on the minor revision. */
-+ switch (revision & 0xffff)
-+ {
-+ case 0:
-+ domain->n_sysdep_strings = 0;
-+ domain->orig_sysdep_tab = NULL;
-+ domain->trans_sysdep_tab = NULL;
-+ break;
-+ case 1:
-+ default:
-+ {
-+ nls_uint32 n_sysdep_strings;
-+
-+ if (domain->hash_tab == NULL)
-+ /* This is invalid. These minor revisions need a hash table. */
-+ goto invalid;
-+
-+ n_sysdep_strings =
-+ W (domain->must_swap, data->n_sysdep_strings);
-+ if (n_sysdep_strings > 0)
-+ {
-+ nls_uint32 n_sysdep_segments;
-+ const struct sysdep_segment *sysdep_segments;
-+ const char **sysdep_segment_values;
-+ const nls_uint32 *orig_sysdep_tab;
-+ const nls_uint32 *trans_sysdep_tab;
-+ nls_uint32 n_inmem_sysdep_strings;
-+ size_t memneed;
-+ char *mem;
-+ struct sysdep_string_desc *inmem_orig_sysdep_tab;
-+ struct sysdep_string_desc *inmem_trans_sysdep_tab;
-+ nls_uint32 *inmem_hash_tab;
-+ unsigned int i, j;
-+
-+ /* Get the values of the system dependent segments. */
-+ n_sysdep_segments =
-+ W (domain->must_swap, data->n_sysdep_segments);
-+ sysdep_segments = (const struct sysdep_segment *)
-+ ((char *) data
-+ + W (domain->must_swap, data->sysdep_segments_offset));
-+ sysdep_segment_values =
-+ alloca (n_sysdep_segments * sizeof (const char *));
-+ for (i = 0; i < n_sysdep_segments; i++)
-+ {
-+ const char *name =
-+ (char *) data
-+ + W (domain->must_swap, sysdep_segments[i].offset);
-+ nls_uint32 namelen =
-+ W (domain->must_swap, sysdep_segments[i].length);
-+
-+ if (!(namelen > 0 && name[namelen - 1] == '\0'))
-+ {
-+ freea (sysdep_segment_values);
-+ goto invalid;
-+ }
-+
-+ sysdep_segment_values[i] = get_sysdep_segment_value (name);
-+ }
-+
-+ orig_sysdep_tab = (const nls_uint32 *)
-+ ((char *) data
-+ + W (domain->must_swap, data->orig_sysdep_tab_offset));
-+ trans_sysdep_tab = (const nls_uint32 *)
-+ ((char *) data
-+ + W (domain->must_swap, data->trans_sysdep_tab_offset));
-+
-+ /* Compute the amount of additional memory needed for the
-+ system dependent strings and the augmented hash table.
-+ At the same time, also drop string pairs which refer to
-+ an undefined system dependent segment. */
-+ n_inmem_sysdep_strings = 0;
-+ memneed = domain->hash_size * sizeof (nls_uint32);
-+ for (i = 0; i < n_sysdep_strings; i++)
-+ {
-+ int valid = 1;
-+ size_t needs[2];
-+
-+ for (j = 0; j < 2; j++)
-+ {
-+ const struct sysdep_string *sysdep_string =
-+ (const struct sysdep_string *)
-+ ((char *) data
-+ + W (domain->must_swap,
-+ j == 0
-+ ? orig_sysdep_tab[i]
-+ : trans_sysdep_tab[i]));
-+ size_t need = 0;
-+ const struct segment_pair *p = sysdep_string->segments;
-+
-+ if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END)
-+ for (p = sysdep_string->segments;; p++)
-+ {
-+ nls_uint32 sysdepref;
-+
-+ need += W (domain->must_swap, p->segsize);
-+
-+ sysdepref = W (domain->must_swap, p->sysdepref);
-+ if (sysdepref == SEGMENTS_END)
-+ break;
-+
-+ if (sysdepref >= n_sysdep_segments)
-+ {
-+ /* Invalid. */
-+ freea (sysdep_segment_values);
-+ goto invalid;
-+ }
-+
-+ if (sysdep_segment_values[sysdepref] == NULL)
-+ {
-+ /* This particular string pair is invalid. */
-+ valid = 0;
-+ break;
-+ }
-+
-+ need += strlen (sysdep_segment_values[sysdepref]);
-+ }
-+
-+ needs[j] = need;
-+ if (!valid)
-+ break;
-+ }
-+
-+ if (valid)
-+ {
-+ n_inmem_sysdep_strings++;
-+ memneed += needs[0] + needs[1];
-+ }
-+ }
-+ memneed += 2 * n_inmem_sysdep_strings
-+ * sizeof (struct sysdep_string_desc);
-+
-+ if (n_inmem_sysdep_strings > 0)
-+ {
-+ unsigned int k;
-+
-+ /* Allocate additional memory. */
-+ mem = (char *) malloc (memneed);
-+ if (mem == NULL)
-+ goto invalid;
-+
-+ domain->malloced = mem;
-+ inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem;
-+ mem += n_inmem_sysdep_strings
-+ * sizeof (struct sysdep_string_desc);
-+ inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem;
-+ mem += n_inmem_sysdep_strings
-+ * sizeof (struct sysdep_string_desc);
-+ inmem_hash_tab = (nls_uint32 *) mem;
-+ mem += domain->hash_size * sizeof (nls_uint32);
-+
-+ /* Compute the system dependent strings. */
-+ k = 0;
-+ for (i = 0; i < n_sysdep_strings; i++)
-+ {
-+ int valid = 1;
-+
-+ for (j = 0; j < 2; j++)
-+ {
-+ const struct sysdep_string *sysdep_string =
-+ (const struct sysdep_string *)
-+ ((char *) data
-+ + W (domain->must_swap,
-+ j == 0
-+ ? orig_sysdep_tab[i]
-+ : trans_sysdep_tab[i]));
-+ const struct segment_pair *p =
-+ sysdep_string->segments;
-+
-+ if (W (domain->must_swap, p->sysdepref)
-+ != SEGMENTS_END)
-+ for (p = sysdep_string->segments;; p++)
-+ {
-+ nls_uint32 sysdepref;
-+
-+ sysdepref =
-+ W (domain->must_swap, p->sysdepref);
-+ if (sysdepref == SEGMENTS_END)
-+ break;
-+
-+ if (sysdep_segment_values[sysdepref] == NULL)
-+ {
-+ /* This particular string pair is
-+ invalid. */
-+ valid = 0;
-+ break;
-+ }
-+ }
-+
-+ if (!valid)
-+ break;
-+ }
-+
-+ if (valid)
-+ {
-+ for (j = 0; j < 2; j++)
-+ {
-+ const struct sysdep_string *sysdep_string =
-+ (const struct sysdep_string *)
-+ ((char *) data
-+ + W (domain->must_swap,
-+ j == 0
-+ ? orig_sysdep_tab[i]
-+ : trans_sysdep_tab[i]));
-+ const char *static_segments =
-+ (char *) data
-+ + W (domain->must_swap, sysdep_string->offset);
-+ const struct segment_pair *p =
-+ sysdep_string->segments;
-+
-+ /* Concatenate the segments, and fill
-+ inmem_orig_sysdep_tab[k] (for j == 0) and
-+ inmem_trans_sysdep_tab[k] (for j == 1). */
-+
-+ struct sysdep_string_desc *inmem_tab_entry =
-+ (j == 0
-+ ? inmem_orig_sysdep_tab
-+ : inmem_trans_sysdep_tab)
-+ + k;
-+
-+ if (W (domain->must_swap, p->sysdepref)
-+ == SEGMENTS_END)
-+ {
-+ /* Only one static segment. */
-+ inmem_tab_entry->length =
-+ W (domain->must_swap, p->segsize);
-+ inmem_tab_entry->pointer = static_segments;
-+ }
-+ else
-+ {
-+ inmem_tab_entry->pointer = mem;
-+
-+ for (p = sysdep_string->segments;; p++)
-+ {
-+ nls_uint32 segsize =
-+ W (domain->must_swap, p->segsize);
-+ nls_uint32 sysdepref =
-+ W (domain->must_swap, p->sysdepref);
-+ size_t n;
-+
-+ if (segsize > 0)
-+ {
-+ memcpy (mem, static_segments, segsize);
-+ mem += segsize;
-+ static_segments += segsize;
-+ }
-+
-+ if (sysdepref == SEGMENTS_END)
-+ break;
-+
-+ n = strlen (sysdep_segment_values[sysdepref]);
-+ memcpy (mem, sysdep_segment_values[sysdepref], n);
-+ mem += n;
-+ }
-+
-+ inmem_tab_entry->length =
-+ mem - inmem_tab_entry->pointer;
-+ }
-+ }
-+
-+ k++;
-+ }
-+ }
-+ if (k != n_inmem_sysdep_strings)
-+ abort ();
-+
-+ /* Compute the augmented hash table. */
-+ for (i = 0; i < domain->hash_size; i++)
-+ inmem_hash_tab[i] =
-+ W (domain->must_swap_hash_tab, domain->hash_tab[i]);
-+ for (i = 0; i < n_inmem_sysdep_strings; i++)
-+ {
-+ const char *msgid = inmem_orig_sysdep_tab[i].pointer;
-+ nls_uint32 hash_val = hash_string (msgid);
-+ nls_uint32 idx = hash_val % domain->hash_size;
-+ nls_uint32 incr =
-+ 1 + (hash_val % (domain->hash_size - 2));
-+
-+ for (;;)
-+ {
-+ if (inmem_hash_tab[idx] == 0)
-+ {
-+ /* Hash table entry is empty. Use it. */
-+ inmem_hash_tab[idx] = 1 + domain->nstrings + i;
-+ break;
-+ }
-+
-+ if (idx >= domain->hash_size - incr)
-+ idx -= domain->hash_size - incr;
-+ else
-+ idx += incr;
-+ }
-+ }
-+
-+ domain->n_sysdep_strings = n_inmem_sysdep_strings;
-+ domain->orig_sysdep_tab = inmem_orig_sysdep_tab;
-+ domain->trans_sysdep_tab = inmem_trans_sysdep_tab;
-+
-+ domain->hash_tab = inmem_hash_tab;
-+ domain->must_swap_hash_tab = 0;
-+ }
-+ else
-+ {
-+ domain->n_sysdep_strings = 0;
-+ domain->orig_sysdep_tab = NULL;
-+ domain->trans_sysdep_tab = NULL;
-+ }
-+
-+ freea (sysdep_segment_values);
-+ }
-+ else
-+ {
-+ domain->n_sysdep_strings = 0;
-+ domain->orig_sysdep_tab = NULL;
-+ domain->trans_sysdep_tab = NULL;
-+ }
-+ }
-+ break;
-+ }
- break;
- default:
-- /* This is an illegal revision. */
--#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
-- || defined _LIBC
-+ /* This is an invalid revision. */
-+ invalid:
-+ /* This is an invalid .mo file. */
-+ if (domain->malloced)
-+ free (domain->malloced);
-+#ifdef HAVE_MMAP
- if (use_mmap)
-- munmap ((caddr_t) data, st.st_size);
-+ munmap ((caddr_t) data, size);
- else
- #endif
- free (data);
-@@ -193,7 +1385,36 @@
- return;
- }
-
-- /* Show that one domain is changed. This might make some cached
-- translations invalid. */
-- ++_nl_msg_cat_cntr;
-+ /* Now initialize the character set converter from the character set
-+ the file is encoded with (found in the header entry) to the domain's
-+ specified character set or the locale's character set. */
-+ nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
-+
-+ /* Also look for a plural specification. */
-+ EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals);
- }
-+
-+
-+#ifdef _LIBC
-+void
-+internal_function
-+_nl_unload_domain (struct loaded_domain *domain)
-+{
-+ if (domain->plural != &__gettext_germanic_plural)
-+ __gettext_free_exp (domain->plural);
-+
-+ _nl_free_domain_conv (domain);
-+
-+ if (domain->malloced)
-+ free (domain->malloced);
-+
-+# ifdef _POSIX_MAPPED_FILES
-+ if (domain->use_mmap)
-+ munmap ((caddr_t) domain->data, domain->mmap_size);
-+ else
-+# endif /* _POSIX_MAPPED_FILES */
-+ free ((void *) domain->data);
-+
-+ free (domain);
-+}
-+#endif
---- lrzsz-0.12.20.safe/intl/localcharset.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/localcharset.c 2004-09-12 14:40:34.478729392 -0400
-@@ -0,0 +1,398 @@
-+/* Determine a canonical name for the current locale's character encoding.
-+
-+ Copyright (C) 2000-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+/* Specification. */
-+#include "localcharset.h"
-+
-+#if HAVE_STDDEF_H
-+# include <stddef.h>
-+#endif
-+
-+#include <stdio.h>
-+#if HAVE_STRING_H
-+# include <string.h>
-+#else
-+# include <strings.h>
-+#endif
-+#if HAVE_STDLIB_H
-+# include <stdlib.h>
-+#endif
-+
-+#if defined _WIN32 || defined __WIN32__
-+# undef WIN32 /* avoid warning on mingw32 */
-+# define WIN32
-+#endif
-+
-+#if defined __EMX__
-+/* Assume EMX program runs on OS/2, even if compiled under DOS. */
-+# define OS2
-+#endif
-+
-+#if !defined WIN32
-+# if HAVE_LANGINFO_CODESET
-+# include <langinfo.h>
-+# else
-+# if HAVE_SETLOCALE
-+# include <locale.h>
-+# endif
-+# endif
-+#elif defined WIN32
-+# define WIN32_LEAN_AND_MEAN
-+# include <windows.h>
-+#endif
-+#if defined OS2
-+# define INCL_DOS
-+# include <os2.h>
-+#endif
-+
-+#if ENABLE_RELOCATABLE
-+# include "relocatable.h"
-+#else
-+# define relocate(pathname) (pathname)
-+#endif
-+
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+ /* Win32, OS/2, DOS */
-+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-+#endif
-+
-+#ifndef DIRECTORY_SEPARATOR
-+# define DIRECTORY_SEPARATOR '/'
-+#endif
-+
-+#ifndef ISSLASH
-+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
-+#endif
-+
-+#if HAVE_DECL_GETC_UNLOCKED
-+# undef getc
-+# define getc getc_unlocked
-+#endif
-+
-+/* The following static variable is declared 'volatile' to avoid a
-+ possible multithread problem in the function get_charset_aliases. If we
-+ are running in a threaded environment, and if two threads initialize
-+ 'charset_aliases' simultaneously, both will produce the same value,
-+ and everything will be ok if the two assignments to 'charset_aliases'
-+ are atomic. But I don't know what will happen if the two assignments mix. */
-+#if __STDC__ != 1
-+# define volatile /* empty */
-+#endif
-+/* Pointer to the contents of the charset.alias file, if it has already been
-+ read, else NULL. Its format is:
-+ ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
-+static const char * volatile charset_aliases;
-+
-+/* Return a pointer to the contents of the charset.alias file. */
-+static const char *
-+get_charset_aliases ()
-+{
-+ const char *cp;
-+
-+ cp = charset_aliases;
-+ if (cp == NULL)
-+ {
-+#if !(defined VMS || defined WIN32)
-+ FILE *fp;
-+ const char *dir = relocate (LIBDIR);
-+ const char *base = "charset.alias";
-+ char *file_name;
-+
-+ /* Concatenate dir and base into freshly allocated file_name. */
-+ {
-+ size_t dir_len = strlen (dir);
-+ size_t base_len = strlen (base);
-+ int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
-+ file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
-+ if (file_name != NULL)
-+ {
-+ memcpy (file_name, dir, dir_len);
-+ if (add_slash)
-+ file_name[dir_len] = DIRECTORY_SEPARATOR;
-+ memcpy (file_name + dir_len + add_slash, base, base_len + 1);
-+ }
-+ }
-+
-+ if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
-+ /* Out of memory or file not found, treat it as empty. */
-+ cp = "";
-+ else
-+ {
-+ /* Parse the file's contents. */
-+ int c;
-+ char buf1[50+1];
-+ char buf2[50+1];
-+ char *res_ptr = NULL;
-+ size_t res_size = 0;
-+ size_t l1, l2;
-+
-+ for (;;)
-+ {
-+ c = getc (fp);
-+ if (c == EOF)
-+ break;
-+ if (c == '\n' || c == ' ' || c == '\t')
-+ continue;
-+ if (c == '#')
-+ {
-+ /* Skip comment, to end of line. */
-+ do
-+ c = getc (fp);
-+ while (!(c == EOF || c == '\n'));
-+ if (c == EOF)
-+ break;
-+ continue;
-+ }
-+ ungetc (c, fp);
-+ if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
-+ break;
-+ l1 = strlen (buf1);
-+ l2 = strlen (buf2);
-+ if (res_size == 0)
-+ {
-+ res_size = l1 + 1 + l2 + 1;
-+ res_ptr = (char *) malloc (res_size + 1);
-+ }
-+ else
-+ {
-+ res_size += l1 + 1 + l2 + 1;
-+ res_ptr = (char *) realloc (res_ptr, res_size + 1);
-+ }
-+ if (res_ptr == NULL)
-+ {
-+ /* Out of memory. */
-+ res_size = 0;
-+ break;
-+ }
-+ strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
-+ strcpy (res_ptr + res_size - (l2 + 1), buf2);
-+ }
-+ fclose (fp);
-+ if (res_size == 0)
-+ cp = "";
-+ else
-+ {
-+ *(res_ptr + res_size) = '\0';
-+ cp = res_ptr;
-+ }
-+ }
-+
-+ if (file_name != NULL)
-+ free (file_name);
-+
-+#else
-+
-+# if defined VMS
-+ /* To avoid the troubles of an extra file charset.alias_vms in the
-+ sources of many GNU packages, simply inline the aliases here. */
-+ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
-+ "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
-+ section 10.7 "Handling Different Character Sets". */
-+ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
-+ "ISO8859-2" "\0" "ISO-8859-2" "\0"
-+ "ISO8859-5" "\0" "ISO-8859-5" "\0"
-+ "ISO8859-7" "\0" "ISO-8859-7" "\0"
-+ "ISO8859-8" "\0" "ISO-8859-8" "\0"
-+ "ISO8859-9" "\0" "ISO-8859-9" "\0"
-+ /* Japanese */
-+ "eucJP" "\0" "EUC-JP" "\0"
-+ "SJIS" "\0" "SHIFT_JIS" "\0"
-+ "DECKANJI" "\0" "DEC-KANJI" "\0"
-+ "SDECKANJI" "\0" "EUC-JP" "\0"
-+ /* Chinese */
-+ "eucTW" "\0" "EUC-TW" "\0"
-+ "DECHANYU" "\0" "DEC-HANYU" "\0"
-+ "DECHANZI" "\0" "GB2312" "\0"
-+ /* Korean */
-+ "DECKOREAN" "\0" "EUC-KR" "\0";
-+# endif
-+
-+# if defined WIN32
-+ /* To avoid the troubles of installing a separate file in the same
-+ directory as the DLL and of retrieving the DLL's directory at
-+ runtime, simply inline the aliases here. */
-+
-+ cp = "CP936" "\0" "GBK" "\0"
-+ "CP1361" "\0" "JOHAB" "\0"
-+ "CP20127" "\0" "ASCII" "\0"
-+ "CP20866" "\0" "KOI8-R" "\0"
-+ "CP21866" "\0" "KOI8-RU" "\0"
-+ "CP28591" "\0" "ISO-8859-1" "\0"
-+ "CP28592" "\0" "ISO-8859-2" "\0"
-+ "CP28593" "\0" "ISO-8859-3" "\0"
-+ "CP28594" "\0" "ISO-8859-4" "\0"
-+ "CP28595" "\0" "ISO-8859-5" "\0"
-+ "CP28596" "\0" "ISO-8859-6" "\0"
-+ "CP28597" "\0" "ISO-8859-7" "\0"
-+ "CP28598" "\0" "ISO-8859-8" "\0"
-+ "CP28599" "\0" "ISO-8859-9" "\0"
-+ "CP28605" "\0" "ISO-8859-15" "\0";
-+# endif
-+#endif
-+
-+ charset_aliases = cp;
-+ }
-+
-+ return cp;
-+}
-+
-+/* Determine the current locale's character encoding, and canonicalize it
-+ into one of the canonical names listed in config.charset.
-+ The result must not be freed; it is statically allocated.
-+ If the canonical name cannot be determined, the result is a non-canonical
-+ name. */
-+
-+#ifdef STATIC
-+STATIC
-+#endif
-+const char *
-+locale_charset ()
-+{
-+ const char *codeset;
-+ const char *aliases;
-+
-+#if !(defined WIN32 || defined OS2)
-+
-+# if HAVE_LANGINFO_CODESET
-+
-+ /* Most systems support nl_langinfo (CODESET) nowadays. */
-+ codeset = nl_langinfo (CODESET);
-+
-+# else
-+
-+ /* On old systems which lack it, use setlocale or getenv. */
-+ const char *locale = NULL;
-+
-+ /* But most old systems don't have a complete set of locales. Some
-+ (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
-+ use setlocale here; it would return "C" when it doesn't support the
-+ locale name the user has set. */
-+# if HAVE_SETLOCALE && 0
-+ locale = setlocale (LC_CTYPE, NULL);
-+# endif
-+ if (locale == NULL || locale[0] == '\0')
-+ {
-+ locale = getenv ("LC_ALL");
-+ if (locale == NULL || locale[0] == '\0')
-+ {
-+ locale = getenv ("LC_CTYPE");
-+ if (locale == NULL || locale[0] == '\0')
-+ locale = getenv ("LANG");
-+ }
-+ }
-+
-+ /* On some old systems, one used to set locale = "iso8859_1". On others,
-+ you set it to "language_COUNTRY.charset". In any case, we resolve it
-+ through the charset.alias file. */
-+ codeset = locale;
-+
-+# endif
-+
-+#elif defined WIN32
-+
-+ static char buf[2 + 10 + 1];
-+
-+ /* Woe32 has a function returning the locale's codepage as a number. */
-+ sprintf (buf, "CP%u", GetACP ());
-+ codeset = buf;
-+
-+#elif defined OS2
-+
-+ const char *locale;
-+ static char buf[2 + 10 + 1];
-+ ULONG cp[3];
-+ ULONG cplen;
-+
-+ /* Allow user to override the codeset, as set in the operating system,
-+ with standard language environment variables. */
-+ locale = getenv ("LC_ALL");
-+ if (locale == NULL || locale[0] == '\0')
-+ {
-+ locale = getenv ("LC_CTYPE");
-+ if (locale == NULL || locale[0] == '\0')
-+ locale = getenv ("LANG");
-+ }
-+ if (locale != NULL && locale[0] != '\0')
-+ {
-+ /* If the locale name contains an encoding after the dot, return it. */
-+ const char *dot = strchr (locale, '.');
-+
-+ if (dot != NULL)
-+ {
-+ const char *modifier;
-+
-+ dot++;
-+ /* Look for the possible @... trailer and remove it, if any. */
-+ modifier = strchr (dot, '@');
-+ if (modifier == NULL)
-+ return dot;
-+ if (modifier - dot < sizeof (buf))
-+ {
-+ memcpy (buf, dot, modifier - dot);
-+ buf [modifier - dot] = '\0';
-+ return buf;
-+ }
-+ }
-+
-+ /* Resolve through the charset.alias file. */
-+ codeset = locale;
-+ }
-+ else
-+ {
-+ /* OS/2 has a function returning the locale's codepage as a number. */
-+ if (DosQueryCp (sizeof (cp), cp, &cplen))
-+ codeset = "";
-+ else
-+ {
-+ sprintf (buf, "CP%u", cp[0]);
-+ codeset = buf;
-+ }
-+ }
-+
-+#endif
-+
-+ if (codeset == NULL)
-+ /* The canonical name cannot be determined. */
-+ codeset = "";
-+
-+ /* Resolve alias. */
-+ for (aliases = get_charset_aliases ();
-+ *aliases != '\0';
-+ aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
-+ if (strcmp (codeset, aliases) == 0
-+ || (aliases[0] == '*' && aliases[1] == '\0'))
-+ {
-+ codeset = aliases + strlen (aliases) + 1;
-+ break;
-+ }
-+
-+ /* Don't return an empty string. GNU libc and GNU libiconv interpret
-+ the empty string as denoting "the locale's character encoding",
-+ thus GNU libiconv would call this function a second time. */
-+ if (codeset[0] == '\0')
-+ codeset = "ASCII";
-+
-+ return codeset;
-+}
---- lrzsz-0.12.20.safe/intl/localcharset.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/localcharset.h 2004-09-12 14:40:34.483728632 -0400
-@@ -0,0 +1,42 @@
-+/* Determine a canonical name for the current locale's character encoding.
-+ Copyright (C) 2000-2003 Free Software Foundation, Inc.
-+ This file is part of the GNU CHARSET Library.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _LOCALCHARSET_H
-+#define _LOCALCHARSET_H
-+
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+/* Determine the current locale's character encoding, and canonicalize it
-+ into one of the canonical names listed in config.charset.
-+ The result must not be freed; it is statically allocated.
-+ If the canonical name cannot be determined, the result is a non-canonical
-+ name. */
-+extern const char * locale_charset (void);
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+
-+#endif /* _LOCALCHARSET_H */
---- lrzsz-0.12.20.safe/intl/locale.alias 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/locale.alias 2004-09-12 14:40:34.499726200 -0400
-@@ -0,0 +1,78 @@
-+# Locale name alias data base.
-+# Copyright (C) 1996-2001,2003 Free Software Foundation, Inc.
-+#
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU Library General Public License as published
-+# by the Free Software Foundation; either version 2, 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
-+# Library General Public License for more details.
-+#
-+# You should have received a copy of the GNU Library 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.
-+
-+# The format of this file is the same as for the corresponding file of
-+# the X Window System, which normally can be found in
-+# /usr/lib/X11/locale/locale.alias
-+# A single line contains two fields: an alias and a substitution value.
-+# All entries are case independent.
-+
-+# Note: This file is far from being complete. If you have a value for
-+# your own site which you think might be useful for others too, share
-+# it with the rest of us. Send it using the `glibcbug' script to
-+# bugs@gnu.org.
-+
-+# Packages using this file:
-+
-+bokmal nb_NO.ISO-8859-1
-+bokmål nb_NO.ISO-8859-1
-+catalan ca_ES.ISO-8859-1
-+croatian hr_HR.ISO-8859-2
-+czech cs_CZ.ISO-8859-2
-+danish da_DK.ISO-8859-1
-+dansk da_DK.ISO-8859-1
-+deutsch de_DE.ISO-8859-1
-+dutch nl_NL.ISO-8859-1
-+eesti et_EE.ISO-8859-1
-+estonian et_EE.ISO-8859-1
-+finnish fi_FI.ISO-8859-1
-+français fr_FR.ISO-8859-1
-+french fr_FR.ISO-8859-1
-+galego gl_ES.ISO-8859-1
-+galician gl_ES.ISO-8859-1
-+german de_DE.ISO-8859-1
-+greek el_GR.ISO-8859-7
-+hebrew he_IL.ISO-8859-8
-+hrvatski hr_HR.ISO-8859-2
-+hungarian hu_HU.ISO-8859-2
-+icelandic is_IS.ISO-8859-1
-+italian it_IT.ISO-8859-1
-+japanese ja_JP.eucJP
-+japanese.euc ja_JP.eucJP
-+ja_JP ja_JP.eucJP
-+ja_JP.ujis ja_JP.eucJP
-+japanese.sjis ja_JP.SJIS
-+korean ko_KR.eucKR
-+korean.euc ko_KR.eucKR
-+ko_KR ko_KR.eucKR
-+lithuanian lt_LT.ISO-8859-13
-+no_NO nb_NO.ISO-8859-1
-+no_NO.ISO-8859-1 nb_NO.ISO-8859-1
-+norwegian nb_NO.ISO-8859-1
-+nynorsk nn_NO.ISO-8859-1
-+polish pl_PL.ISO-8859-2
-+portuguese pt_PT.ISO-8859-1
-+romanian ro_RO.ISO-8859-2
-+russian ru_RU.ISO-8859-5
-+slovak sk_SK.ISO-8859-2
-+slovene sl_SI.ISO-8859-2
-+slovenian sl_SI.ISO-8859-2
-+spanish es_ES.ISO-8859-1
-+swedish sv_SE.ISO-8859-1
-+thai th_TH.TIS-620
-+turkish tr_TR.ISO-8859-9
---- lrzsz-0.12.20.safe/intl/localealias.c 1998-04-26 09:22:37.000000000 -0400
-+++ lrzsz-0.12.20/intl/localealias.c 2004-09-12 14:40:34.505725288 -0400
-@@ -1,20 +1,27 @@
--/* Handle aliases for locale names
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-+/* Handle aliases for locale names.
-+ Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
-+ This must come before <config.h> because <config.h> may include
-+ <features.h>, and once <features.h> has been included, it's too late. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -22,56 +29,45 @@
-
- #include <ctype.h>
- #include <stdio.h>
-+#if defined _LIBC || defined HAVE___FSETLOCKING
-+# include <stdio_ext.h>
-+#endif
- #include <sys/types.h>
-
- #ifdef __GNUC__
-+# undef alloca
- # define alloca __builtin_alloca
- # define HAVE_ALLOCA 1
- #else
--# if defined HAVE_ALLOCA_H || defined _LIBC
--# include <alloca.h>
-+# ifdef _MSC_VER
-+# include <malloc.h>
-+# define alloca _alloca
- # else
--# ifdef _AIX
-- #pragma alloca
-+# if defined HAVE_ALLOCA_H || defined _LIBC
-+# include <alloca.h>
- # else
--# ifndef alloca
-+# ifdef _AIX
-+ #pragma alloca
-+# else
-+# ifndef alloca
- char *alloca ();
-+# endif
- # endif
- # endif
- # endif
- #endif
-
--#if defined STDC_HEADERS || defined _LIBC
--# include <stdlib.h>
--#else
--char *getenv ();
--# ifdef HAVE_MALLOC_H
--# include <malloc.h>
--# else
--void free ();
--# endif
--#endif
-+#include <stdlib.h>
-+#include <string.h>
-
--#if defined HAVE_STRING_H || defined _LIBC
--# ifndef _GNU_SOURCE
--# define _GNU_SOURCE 1
--# endif
--# include <string.h>
-+#include "gettextP.h"
-+
-+#if ENABLE_RELOCATABLE
-+# include "relocatable.h"
- #else
--# include <strings.h>
--# ifndef memcpy
--# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
--# endif
--#endif
--#if !HAVE_STRCHR && !defined _LIBC
--# ifndef strchr
--# define strchr index
--# endif
-+# define relocate(pathname) (pathname)
- #endif
-
--#include "gettext.h"
--#include "gettextP.h"
--
- /* @@ end of prolog @@ */
-
- #ifdef _LIBC
-@@ -79,43 +75,49 @@
- because some ANSI C functions will require linking with this object
- file and the name space must not be polluted. */
- # define strcasecmp __strcasecmp
-+
-+# ifndef mempcpy
-+# define mempcpy __mempcpy
-+# endif
-+# define HAVE_MEMPCPY 1
-+# define HAVE___FSETLOCKING 1
-+
-+/* We need locking here since we can be called from different places. */
-+# include <bits/libc-lock.h>
-+
-+__libc_lock_define_initialized (static, lock);
-+#endif
-+
-+#ifndef internal_function
-+# define internal_function
- #endif
-
-+/* Some optimizations for glibc. */
-+#ifdef _LIBC
-+# define FEOF(fp) feof_unlocked (fp)
-+# define FGETS(buf, n, fp) fgets_unlocked (buf, n, fp)
-+#else
-+# define FEOF(fp) feof (fp)
-+# define FGETS(buf, n, fp) fgets (buf, n, fp)
-+#endif
-
--/* For those loosing systems which don't have `alloca' we have to add
-+/* For those losing systems which don't have `alloca' we have to add
- some additional code emulating it. */
- #ifdef HAVE_ALLOCA
--/* Nothing has to be done. */
--# define ADD_BLOCK(list, address) /* nothing */
--# define FREE_BLOCKS(list) /* nothing */
-+# define freea(p) /* nothing */
- #else
--struct block_list
--{
-- void *address;
-- struct block_list *next;
--};
--# define ADD_BLOCK(list, addr) \
-- do { \
-- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
-- /* If we cannot get a free block we cannot add the new element to \
-- the list. */ \
-- if (newp != NULL) { \
-- newp->address = (addr); \
-- newp->next = (list); \
-- (list) = newp; \
-- } \
-- } while (0)
--# define FREE_BLOCKS(list) \
-- do { \
-- while (list != NULL) { \
-- struct block_list *old = list; \
-- list = list->next; \
-- free (old); \
-- } \
-- } while (0)
--# undef alloca
--# define alloca(size) (malloc (size))
--#endif /* have alloca */
-+# define alloca(n) malloc (n)
-+# define freea(p) free (p)
-+#endif
-+
-+#if defined _LIBC_REENTRANT || HAVE_DECL_FGETS_UNLOCKED
-+# undef fgets
-+# define fgets(buf, len, s) fgets_unlocked (buf, len, s)
-+#endif
-+#if defined _LIBC_REENTRANT || HAVE_DECL_FEOF_UNLOCKED
-+# undef feof
-+# define feof(s) feof_unlocked (s)
-+#endif
-
-
- struct alias_map
-@@ -125,26 +127,41 @@
- };
-
-
--static struct alias_map *map;
--static size_t nmap = 0;
--static size_t maxmap = 0;
-+#ifndef _LIBC
-+# define libc_freeres_ptr(decl) decl
-+#endif
-+
-+libc_freeres_ptr (static char *string_space);
-+static size_t string_space_act;
-+static size_t string_space_max;
-+libc_freeres_ptr (static struct alias_map *map);
-+static size_t nmap;
-+static size_t maxmap;
-
-
- /* Prototypes for local functions. */
--static size_t read_alias_file PARAMS ((const char *fname, int fname_len));
--static void extend_alias_table PARAMS ((void));
--static int alias_compare PARAMS ((const struct alias_map *map1,
-- const struct alias_map *map2));
-+static size_t read_alias_file (const char *fname, int fname_len)
-+ internal_function;
-+static int extend_alias_table (void);
-+static int alias_compare (const struct alias_map *map1,
-+ const struct alias_map *map2);
-
-
- const char *
--_nl_expand_alias (name)
-- const char *name;
-+_nl_expand_alias (const char *name)
- {
-- static const char *locale_alias_path = LOCALE_ALIAS_PATH;
-+ static const char *locale_alias_path;
- struct alias_map *retval;
-+ const char *result = NULL;
- size_t added;
-
-+#ifdef _LIBC
-+ __libc_lock_lock (lock);
-+#endif
-+
-+ if (locale_alias_path == NULL)
-+ locale_alias_path = LOCALE_ALIAS_PATH;
-+
- do
- {
- struct alias_map item;
-@@ -154,15 +171,18 @@
- if (nmap > 0)
- retval = (struct alias_map *) bsearch (&item, map, nmap,
- sizeof (struct alias_map),
-- (int (*) PARAMS ((const void *,
-- const void *))
-+ (int (*) (const void *,
-+ const void *)
- ) alias_compare);
- else
- retval = NULL;
-
- /* We really found an alias. Return the value. */
- if (retval != NULL)
-- return retval->value;
-+ {
-+ result = retval->value;
-+ break;
-+ }
-
- /* Perhaps we can find another alias file. */
- added = 0;
-@@ -170,11 +190,12 @@
- {
- const char *start;
-
-- while (locale_alias_path[0] == ':')
-+ while (locale_alias_path[0] == PATH_SEPARATOR)
- ++locale_alias_path;
- start = locale_alias_path;
-
-- while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
-+ while (locale_alias_path[0] != '\0'
-+ && locale_alias_path[0] != PATH_SEPARATOR)
- ++locale_alias_path;
-
- if (start < locale_alias_path)
-@@ -183,78 +204,87 @@
- }
- while (added != 0);
-
-- return NULL;
-+#ifdef _LIBC
-+ __libc_lock_unlock (lock);
-+#endif
-+
-+ return result;
- }
-
-
- static size_t
--read_alias_file (fname, fname_len)
-- const char *fname;
-- int fname_len;
-+internal_function
-+read_alias_file (const char *fname, int fname_len)
- {
--#ifndef HAVE_ALLOCA
-- struct block_list *block_list = NULL;
--#endif
- FILE *fp;
- char *full_fname;
- size_t added;
- static const char aliasfile[] = "/locale.alias";
-
- full_fname = (char *) alloca (fname_len + sizeof aliasfile);
-- ADD_BLOCK (block_list, full_fname);
-+#ifdef HAVE_MEMPCPY
-+ mempcpy (mempcpy (full_fname, fname, fname_len),
-+ aliasfile, sizeof aliasfile);
-+#else
- memcpy (full_fname, fname, fname_len);
- memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
-+#endif
-
-- fp = fopen (full_fname, "r");
-+ fp = fopen (relocate (full_fname), "r");
-+ freea (full_fname);
- if (fp == NULL)
-- {
-- FREE_BLOCKS (block_list);
-- return 0;
-- }
-+ return 0;
-+
-+#ifdef HAVE___FSETLOCKING
-+ /* No threads present. */
-+ __fsetlocking (fp, FSETLOCKING_BYCALLER);
-+#endif
-
- added = 0;
-- while (!feof (fp))
-+ while (!FEOF (fp))
- {
- /* It is a reasonable approach to use a fix buffer here because
- a) we are only interested in the first two fields
- b) these fields must be usable as file names and so must not
- be that long
-- */
-- char buf[BUFSIZ];
-+ We avoid a multi-kilobyte buffer here since this would use up
-+ stack space which we might not have if the program ran out of
-+ memory. */
-+ char buf[400];
- char *alias;
- char *value;
- char *cp;
-
-- if (fgets (buf, BUFSIZ, fp) == NULL)
-+ if (FGETS (buf, sizeof buf, fp) == NULL)
- /* EOF reached. */
- break;
-
- cp = buf;
- /* Ignore leading white space. */
-- while (isspace (cp[0]))
-+ while (isspace ((unsigned char) cp[0]))
- ++cp;
-
- /* A leading '#' signals a comment line. */
- if (cp[0] != '\0' && cp[0] != '#')
- {
- alias = cp++;
-- while (cp[0] != '\0' && !isspace (cp[0]))
-+ while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
- ++cp;
- /* Terminate alias name. */
- if (cp[0] != '\0')
- *cp++ = '\0';
-
- /* Now look for the beginning of the value. */
-- while (isspace (cp[0]))
-+ while (isspace ((unsigned char) cp[0]))
- ++cp;
-
- if (cp[0] != '\0')
- {
-- char *tp;
-- size_t len;
-+ size_t alias_len;
-+ size_t value_len;
-
- value = cp++;
-- while (cp[0] != '\0' && !isspace (cp[0]))
-+ while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
- ++cp;
- /* Terminate value. */
- if (cp[0] == '\n')
-@@ -269,28 +299,44 @@
- *cp++ = '\0';
-
- if (nmap >= maxmap)
-- extend_alias_table ();
--
-- /* We cannot depend on strdup available in the libc. Sigh! */
-- len = strlen (alias) + 1;
-- tp = (char *) malloc (len);
-- if (tp == NULL)
-- {
-- FREE_BLOCKS (block_list);
-+ if (__builtin_expect (extend_alias_table (), 0))
- return added;
-- }
-- memcpy (tp, alias, len);
-- map[nmap].alias = tp;
-
-- len = strlen (value) + 1;
-- tp = (char *) malloc (len);
-- if (tp == NULL)
-+ alias_len = strlen (alias) + 1;
-+ value_len = strlen (value) + 1;
-+
-+ if (string_space_act + alias_len + value_len > string_space_max)
- {
-- FREE_BLOCKS (block_list);
-- return added;
-+ /* Increase size of memory pool. */
-+ size_t new_size = (string_space_max
-+ + (alias_len + value_len > 1024
-+ ? alias_len + value_len : 1024));
-+ char *new_pool = (char *) realloc (string_space, new_size);
-+ if (new_pool == NULL)
-+ return added;
-+
-+ if (__builtin_expect (string_space != new_pool, 0))
-+ {
-+ size_t i;
-+
-+ for (i = 0; i < nmap; i++)
-+ {
-+ map[i].alias += new_pool - string_space;
-+ map[i].value += new_pool - string_space;
-+ }
-+ }
-+
-+ string_space = new_pool;
-+ string_space_max = new_size;
- }
-- memcpy (tp, value, len);
-- map[nmap].value = tp;
-+
-+ map[nmap].alias = memcpy (&string_space[string_space_act],
-+ alias, alias_len);
-+ string_space_act += alias_len;
-+
-+ map[nmap].value = memcpy (&string_space[string_space_act],
-+ value, value_len);
-+ string_space_act += value_len;
-
- ++nmap;
- ++added;
-@@ -299,14 +345,11 @@
-
- /* Possibly not the whole line fits into the buffer. Ignore
- the rest of the line. */
-- while (strchr (cp, '\n') == NULL)
-- {
-- cp = buf;
-- if (fgets (buf, BUFSIZ, fp) == NULL)
-- /* Make sure the inner loop will be left. The outer loop
-- will exit at the `feof' test. */
-- *cp = '\n';
-- }
-+ while (strchr (buf, '\n') == NULL)
-+ if (FGETS (buf, sizeof buf, fp) == NULL)
-+ /* Make sure the inner loop will be left. The outer loop
-+ will exit at the `feof' test. */
-+ break;
- }
-
- /* Should we test for ferror()? I think we have to silently ignore
-@@ -315,40 +358,33 @@
-
- if (added > 0)
- qsort (map, nmap, sizeof (struct alias_map),
-- (int (*) PARAMS ((const void *, const void *))) alias_compare);
-+ (int (*) (const void *, const void *)) alias_compare);
-
-- FREE_BLOCKS (block_list);
- return added;
- }
-
-
--static void
-+static int
- extend_alias_table ()
- {
- size_t new_size;
- struct alias_map *new_map;
-
- new_size = maxmap == 0 ? 100 : 2 * maxmap;
-- new_map = (struct alias_map *) malloc (new_size
-- * sizeof (struct alias_map));
-+ new_map = (struct alias_map *) realloc (map, (new_size
-+ * sizeof (struct alias_map)));
- if (new_map == NULL)
- /* Simply don't extend: we don't have any more core. */
-- return;
--
-- memcpy (new_map, map, nmap * sizeof (struct alias_map));
--
-- if (maxmap != 0)
-- free (map);
-+ return -1;
-
- map = new_map;
- maxmap = new_size;
-+ return 0;
- }
-
-
- static int
--alias_compare (map1, map2)
-- const struct alias_map *map1;
-- const struct alias_map *map2;
-+alias_compare (const struct alias_map *map1, const struct alias_map *map2)
- {
- #if defined _LIBC || defined HAVE_STRCASECMP
- return strcasecmp (map1->alias, map2->alias);
---- lrzsz-0.12.20.safe/intl/localename.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/localename.c 2004-09-12 14:40:34.510724528 -0400
-@@ -0,0 +1,1142 @@
-+/* Determine the current selected locale.
-+ Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* Written by Ulrich Drepper <drepper@gnu.org>, 1995. */
-+/* Win32 code written by Tor Lillqvist <tml@iki.fi>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <stdlib.h>
-+#include <locale.h>
-+
-+#if defined _WIN32 || defined __WIN32__
-+# undef WIN32 /* avoid warning on mingw32 */
-+# define WIN32
-+#endif
-+
-+#ifdef WIN32
-+# define WIN32_LEAN_AND_MEAN
-+# include <windows.h>
-+/* List of language codes, sorted by value:
-+ 0x01 LANG_ARABIC
-+ 0x02 LANG_BULGARIAN
-+ 0x03 LANG_CATALAN
-+ 0x04 LANG_CHINESE
-+ 0x05 LANG_CZECH
-+ 0x06 LANG_DANISH
-+ 0x07 LANG_GERMAN
-+ 0x08 LANG_GREEK
-+ 0x09 LANG_ENGLISH
-+ 0x0a LANG_SPANISH
-+ 0x0b LANG_FINNISH
-+ 0x0c LANG_FRENCH
-+ 0x0d LANG_HEBREW
-+ 0x0e LANG_HUNGARIAN
-+ 0x0f LANG_ICELANDIC
-+ 0x10 LANG_ITALIAN
-+ 0x11 LANG_JAPANESE
-+ 0x12 LANG_KOREAN
-+ 0x13 LANG_DUTCH
-+ 0x14 LANG_NORWEGIAN
-+ 0x15 LANG_POLISH
-+ 0x16 LANG_PORTUGUESE
-+ 0x17 LANG_RHAETO_ROMANCE
-+ 0x18 LANG_ROMANIAN
-+ 0x19 LANG_RUSSIAN
-+ 0x1a LANG_CROATIAN == LANG_SERBIAN
-+ 0x1b LANG_SLOVAK
-+ 0x1c LANG_ALBANIAN
-+ 0x1d LANG_SWEDISH
-+ 0x1e LANG_THAI
-+ 0x1f LANG_TURKISH
-+ 0x20 LANG_URDU
-+ 0x21 LANG_INDONESIAN
-+ 0x22 LANG_UKRAINIAN
-+ 0x23 LANG_BELARUSIAN
-+ 0x24 LANG_SLOVENIAN
-+ 0x25 LANG_ESTONIAN
-+ 0x26 LANG_LATVIAN
-+ 0x27 LANG_LITHUANIAN
-+ 0x28 LANG_TAJIK
-+ 0x29 LANG_FARSI
-+ 0x2a LANG_VIETNAMESE
-+ 0x2b LANG_ARMENIAN
-+ 0x2c LANG_AZERI
-+ 0x2d LANG_BASQUE
-+ 0x2e LANG_SORBIAN
-+ 0x2f LANG_MACEDONIAN
-+ 0x30 LANG_SUTU
-+ 0x31 LANG_TSONGA
-+ 0x32 LANG_TSWANA
-+ 0x33 LANG_VENDA
-+ 0x34 LANG_XHOSA
-+ 0x35 LANG_ZULU
-+ 0x36 LANG_AFRIKAANS
-+ 0x37 LANG_GEORGIAN
-+ 0x38 LANG_FAEROESE
-+ 0x39 LANG_HINDI
-+ 0x3a LANG_MALTESE
-+ 0x3b LANG_SAAMI
-+ 0x3c LANG_GAELIC
-+ 0x3d LANG_YIDDISH
-+ 0x3e LANG_MALAY
-+ 0x3f LANG_KAZAK
-+ 0x40 LANG_KYRGYZ
-+ 0x41 LANG_SWAHILI
-+ 0x42 LANG_TURKMEN
-+ 0x43 LANG_UZBEK
-+ 0x44 LANG_TATAR
-+ 0x45 LANG_BENGALI
-+ 0x46 LANG_PUNJABI
-+ 0x47 LANG_GUJARATI
-+ 0x48 LANG_ORIYA
-+ 0x49 LANG_TAMIL
-+ 0x4a LANG_TELUGU
-+ 0x4b LANG_KANNADA
-+ 0x4c LANG_MALAYALAM
-+ 0x4d LANG_ASSAMESE
-+ 0x4e LANG_MARATHI
-+ 0x4f LANG_SANSKRIT
-+ 0x50 LANG_MONGOLIAN
-+ 0x51 LANG_TIBETAN
-+ 0x52 LANG_WELSH
-+ 0x53 LANG_CAMBODIAN
-+ 0x54 LANG_LAO
-+ 0x55 LANG_BURMESE
-+ 0x56 LANG_GALICIAN
-+ 0x57 LANG_KONKANI
-+ 0x58 LANG_MANIPURI
-+ 0x59 LANG_SINDHI
-+ 0x5a LANG_SYRIAC
-+ 0x5b LANG_SINHALESE
-+ 0x5c LANG_CHEROKEE
-+ 0x5d LANG_INUKTITUT
-+ 0x5e LANG_AMHARIC
-+ 0x5f LANG_TAMAZIGHT
-+ 0x60 LANG_KASHMIRI
-+ 0x61 LANG_NEPALI
-+ 0x62 LANG_FRISIAN
-+ 0x63 LANG_PASHTO
-+ 0x64 LANG_TAGALOG
-+ 0x65 LANG_DIVEHI
-+ 0x66 LANG_EDO
-+ 0x67 LANG_FULFULDE
-+ 0x68 LANG_HAUSA
-+ 0x69 LANG_IBIBIO
-+ 0x6a LANG_YORUBA
-+ 0x70 LANG_IGBO
-+ 0x71 LANG_KANURI
-+ 0x72 LANG_OROMO
-+ 0x73 LANG_TIGRINYA
-+ 0x74 LANG_GUARANI
-+ 0x75 LANG_HAWAIIAN
-+ 0x76 LANG_LATIN
-+ 0x77 LANG_SOMALI
-+ 0x78 LANG_YI
-+ 0x79 LANG_PAPIAMENTU
-+*/
-+/* Mingw headers don't have latest language and sublanguage codes. */
-+# ifndef LANG_AFRIKAANS
-+# define LANG_AFRIKAANS 0x36
-+# endif
-+# ifndef LANG_ALBANIAN
-+# define LANG_ALBANIAN 0x1c
-+# endif
-+# ifndef LANG_AMHARIC
-+# define LANG_AMHARIC 0x5e
-+# endif
-+# ifndef LANG_ARABIC
-+# define LANG_ARABIC 0x01
-+# endif
-+# ifndef LANG_ARMENIAN
-+# define LANG_ARMENIAN 0x2b
-+# endif
-+# ifndef LANG_ASSAMESE
-+# define LANG_ASSAMESE 0x4d
-+# endif
-+# ifndef LANG_AZERI
-+# define LANG_AZERI 0x2c
-+# endif
-+# ifndef LANG_BASQUE
-+# define LANG_BASQUE 0x2d
-+# endif
-+# ifndef LANG_BELARUSIAN
-+# define LANG_BELARUSIAN 0x23
-+# endif
-+# ifndef LANG_BENGALI
-+# define LANG_BENGALI 0x45
-+# endif
-+# ifndef LANG_BURMESE
-+# define LANG_BURMESE 0x55
-+# endif
-+# ifndef LANG_CAMBODIAN
-+# define LANG_CAMBODIAN 0x53
-+# endif
-+# ifndef LANG_CATALAN
-+# define LANG_CATALAN 0x03
-+# endif
-+# ifndef LANG_CHEROKEE
-+# define LANG_CHEROKEE 0x5c
-+# endif
-+# ifndef LANG_DIVEHI
-+# define LANG_DIVEHI 0x65
-+# endif
-+# ifndef LANG_EDO
-+# define LANG_EDO 0x66
-+# endif
-+# ifndef LANG_ESTONIAN
-+# define LANG_ESTONIAN 0x25
-+# endif
-+# ifndef LANG_FAEROESE
-+# define LANG_FAEROESE 0x38
-+# endif
-+# ifndef LANG_FARSI
-+# define LANG_FARSI 0x29
-+# endif
-+# ifndef LANG_FRISIAN
-+# define LANG_FRISIAN 0x62
-+# endif
-+# ifndef LANG_FULFULDE
-+# define LANG_FULFULDE 0x67
-+# endif
-+# ifndef LANG_GAELIC
-+# define LANG_GAELIC 0x3c
-+# endif
-+# ifndef LANG_GALICIAN
-+# define LANG_GALICIAN 0x56
-+# endif
-+# ifndef LANG_GEORGIAN
-+# define LANG_GEORGIAN 0x37
-+# endif
-+# ifndef LANG_GUARANI
-+# define LANG_GUARANI 0x74
-+# endif
-+# ifndef LANG_GUJARATI
-+# define LANG_GUJARATI 0x47
-+# endif
-+# ifndef LANG_HAUSA
-+# define LANG_HAUSA 0x68
-+# endif
-+# ifndef LANG_HAWAIIAN
-+# define LANG_HAWAIIAN 0x75
-+# endif
-+# ifndef LANG_HEBREW
-+# define LANG_HEBREW 0x0d
-+# endif
-+# ifndef LANG_HINDI
-+# define LANG_HINDI 0x39
-+# endif
-+# ifndef LANG_IBIBIO
-+# define LANG_IBIBIO 0x69
-+# endif
-+# ifndef LANG_IGBO
-+# define LANG_IGBO 0x70
-+# endif
-+# ifndef LANG_INDONESIAN
-+# define LANG_INDONESIAN 0x21
-+# endif
-+# ifndef LANG_INUKTITUT
-+# define LANG_INUKTITUT 0x5d
-+# endif
-+# ifndef LANG_KANNADA
-+# define LANG_KANNADA 0x4b
-+# endif
-+# ifndef LANG_KANURI
-+# define LANG_KANURI 0x71
-+# endif
-+# ifndef LANG_KASHMIRI
-+# define LANG_KASHMIRI 0x60
-+# endif
-+# ifndef LANG_KAZAK
-+# define LANG_KAZAK 0x3f
-+# endif
-+# ifndef LANG_KONKANI
-+# define LANG_KONKANI 0x57
-+# endif
-+# ifndef LANG_KYRGYZ
-+# define LANG_KYRGYZ 0x40
-+# endif
-+# ifndef LANG_LAO
-+# define LANG_LAO 0x54
-+# endif
-+# ifndef LANG_LATIN
-+# define LANG_LATIN 0x76
-+# endif
-+# ifndef LANG_LATVIAN
-+# define LANG_LATVIAN 0x26
-+# endif
-+# ifndef LANG_LITHUANIAN
-+# define LANG_LITHUANIAN 0x27
-+# endif
-+# ifndef LANG_MACEDONIAN
-+# define LANG_MACEDONIAN 0x2f
-+# endif
-+# ifndef LANG_MALAY
-+# define LANG_MALAY 0x3e
-+# endif
-+# ifndef LANG_MALAYALAM
-+# define LANG_MALAYALAM 0x4c
-+# endif
-+# ifndef LANG_MALTESE
-+# define LANG_MALTESE 0x3a
-+# endif
-+# ifndef LANG_MANIPURI
-+# define LANG_MANIPURI 0x58
-+# endif
-+# ifndef LANG_MARATHI
-+# define LANG_MARATHI 0x4e
-+# endif
-+# ifndef LANG_MONGOLIAN
-+# define LANG_MONGOLIAN 0x50
-+# endif
-+# ifndef LANG_NEPALI
-+# define LANG_NEPALI 0x61
-+# endif
-+# ifndef LANG_ORIYA
-+# define LANG_ORIYA 0x48
-+# endif
-+# ifndef LANG_OROMO
-+# define LANG_OROMO 0x72
-+# endif
-+# ifndef LANG_PAPIAMENTU
-+# define LANG_PAPIAMENTU 0x79
-+# endif
-+# ifndef LANG_PASHTO
-+# define LANG_PASHTO 0x63
-+# endif
-+# ifndef LANG_PUNJABI
-+# define LANG_PUNJABI 0x46
-+# endif
-+# ifndef LANG_RHAETO_ROMANCE
-+# define LANG_RHAETO_ROMANCE 0x17
-+# endif
-+# ifndef LANG_SAAMI
-+# define LANG_SAAMI 0x3b
-+# endif
-+# ifndef LANG_SANSKRIT
-+# define LANG_SANSKRIT 0x4f
-+# endif
-+# ifndef LANG_SERBIAN
-+# define LANG_SERBIAN 0x1a
-+# endif
-+# ifndef LANG_SINDHI
-+# define LANG_SINDHI 0x59
-+# endif
-+# ifndef LANG_SINHALESE
-+# define LANG_SINHALESE 0x5b
-+# endif
-+# ifndef LANG_SLOVAK
-+# define LANG_SLOVAK 0x1b
-+# endif
-+# ifndef LANG_SOMALI
-+# define LANG_SOMALI 0x77
-+# endif
-+# ifndef LANG_SORBIAN
-+# define LANG_SORBIAN 0x2e
-+# endif
-+# ifndef LANG_SUTU
-+# define LANG_SUTU 0x30
-+# endif
-+# ifndef LANG_SWAHILI
-+# define LANG_SWAHILI 0x41
-+# endif
-+# ifndef LANG_SYRIAC
-+# define LANG_SYRIAC 0x5a
-+# endif
-+# ifndef LANG_TAGALOG
-+# define LANG_TAGALOG 0x64
-+# endif
-+# ifndef LANG_TAJIK
-+# define LANG_TAJIK 0x28
-+# endif
-+# ifndef LANG_TAMAZIGHT
-+# define LANG_TAMAZIGHT 0x5f
-+# endif
-+# ifndef LANG_TAMIL
-+# define LANG_TAMIL 0x49
-+# endif
-+# ifndef LANG_TATAR
-+# define LANG_TATAR 0x44
-+# endif
-+# ifndef LANG_TELUGU
-+# define LANG_TELUGU 0x4a
-+# endif
-+# ifndef LANG_THAI
-+# define LANG_THAI 0x1e
-+# endif
-+# ifndef LANG_TIBETAN
-+# define LANG_TIBETAN 0x51
-+# endif
-+# ifndef LANG_TIGRINYA
-+# define LANG_TIGRINYA 0x73
-+# endif
-+# ifndef LANG_TSONGA
-+# define LANG_TSONGA 0x31
-+# endif
-+# ifndef LANG_TSWANA
-+# define LANG_TSWANA 0x32
-+# endif
-+# ifndef LANG_TURKMEN
-+# define LANG_TURKMEN 0x42
-+# endif
-+# ifndef LANG_UKRAINIAN
-+# define LANG_UKRAINIAN 0x22
-+# endif
-+# ifndef LANG_URDU
-+# define LANG_URDU 0x20
-+# endif
-+# ifndef LANG_UZBEK
-+# define LANG_UZBEK 0x43
-+# endif
-+# ifndef LANG_VENDA
-+# define LANG_VENDA 0x33
-+# endif
-+# ifndef LANG_VIETNAMESE
-+# define LANG_VIETNAMESE 0x2a
-+# endif
-+# ifndef LANG_WELSH
-+# define LANG_WELSH 0x52
-+# endif
-+# ifndef LANG_XHOSA
-+# define LANG_XHOSA 0x34
-+# endif
-+# ifndef LANG_YI
-+# define LANG_YI 0x78
-+# endif
-+# ifndef LANG_YIDDISH
-+# define LANG_YIDDISH 0x3d
-+# endif
-+# ifndef LANG_YORUBA
-+# define LANG_YORUBA 0x6a
-+# endif
-+# ifndef LANG_ZULU
-+# define LANG_ZULU 0x35
-+# endif
-+# ifndef SUBLANG_ARABIC_SAUDI_ARABIA
-+# define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
-+# endif
-+# ifndef SUBLANG_ARABIC_IRAQ
-+# define SUBLANG_ARABIC_IRAQ 0x02
-+# endif
-+# ifndef SUBLANG_ARABIC_EGYPT
-+# define SUBLANG_ARABIC_EGYPT 0x03
-+# endif
-+# ifndef SUBLANG_ARABIC_LIBYA
-+# define SUBLANG_ARABIC_LIBYA 0x04
-+# endif
-+# ifndef SUBLANG_ARABIC_ALGERIA
-+# define SUBLANG_ARABIC_ALGERIA 0x05
-+# endif
-+# ifndef SUBLANG_ARABIC_MOROCCO
-+# define SUBLANG_ARABIC_MOROCCO 0x06
-+# endif
-+# ifndef SUBLANG_ARABIC_TUNISIA
-+# define SUBLANG_ARABIC_TUNISIA 0x07
-+# endif
-+# ifndef SUBLANG_ARABIC_OMAN
-+# define SUBLANG_ARABIC_OMAN 0x08
-+# endif
-+# ifndef SUBLANG_ARABIC_YEMEN
-+# define SUBLANG_ARABIC_YEMEN 0x09
-+# endif
-+# ifndef SUBLANG_ARABIC_SYRIA
-+# define SUBLANG_ARABIC_SYRIA 0x0a
-+# endif
-+# ifndef SUBLANG_ARABIC_JORDAN
-+# define SUBLANG_ARABIC_JORDAN 0x0b
-+# endif
-+# ifndef SUBLANG_ARABIC_LEBANON
-+# define SUBLANG_ARABIC_LEBANON 0x0c
-+# endif
-+# ifndef SUBLANG_ARABIC_KUWAIT
-+# define SUBLANG_ARABIC_KUWAIT 0x0d
-+# endif
-+# ifndef SUBLANG_ARABIC_UAE
-+# define SUBLANG_ARABIC_UAE 0x0e
-+# endif
-+# ifndef SUBLANG_ARABIC_BAHRAIN
-+# define SUBLANG_ARABIC_BAHRAIN 0x0f
-+# endif
-+# ifndef SUBLANG_ARABIC_QATAR
-+# define SUBLANG_ARABIC_QATAR 0x10
-+# endif
-+# ifndef SUBLANG_AZERI_LATIN
-+# define SUBLANG_AZERI_LATIN 0x01
-+# endif
-+# ifndef SUBLANG_AZERI_CYRILLIC
-+# define SUBLANG_AZERI_CYRILLIC 0x02
-+# endif
-+# ifndef SUBLANG_BENGALI_INDIA
-+# define SUBLANG_BENGALI_INDIA 0x00
-+# endif
-+# ifndef SUBLANG_BENGALI_BANGLADESH
-+# define SUBLANG_BENGALI_BANGLADESH 0x01
-+# endif
-+# ifndef SUBLANG_CHINESE_MACAU
-+# define SUBLANG_CHINESE_MACAU 0x05
-+# endif
-+# ifndef SUBLANG_ENGLISH_SOUTH_AFRICA
-+# define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
-+# endif
-+# ifndef SUBLANG_ENGLISH_JAMAICA
-+# define SUBLANG_ENGLISH_JAMAICA 0x08
-+# endif
-+# ifndef SUBLANG_ENGLISH_CARIBBEAN
-+# define SUBLANG_ENGLISH_CARIBBEAN 0x09
-+# endif
-+# ifndef SUBLANG_ENGLISH_BELIZE
-+# define SUBLANG_ENGLISH_BELIZE 0x0a
-+# endif
-+# ifndef SUBLANG_ENGLISH_TRINIDAD
-+# define SUBLANG_ENGLISH_TRINIDAD 0x0b
-+# endif
-+# ifndef SUBLANG_ENGLISH_ZIMBABWE
-+# define SUBLANG_ENGLISH_ZIMBABWE 0x0c
-+# endif
-+# ifndef SUBLANG_ENGLISH_PHILIPPINES
-+# define SUBLANG_ENGLISH_PHILIPPINES 0x0d
-+# endif
-+# ifndef SUBLANG_ENGLISH_INDONESIA
-+# define SUBLANG_ENGLISH_INDONESIA 0x0e
-+# endif
-+# ifndef SUBLANG_ENGLISH_HONGKONG
-+# define SUBLANG_ENGLISH_HONGKONG 0x0f
-+# endif
-+# ifndef SUBLANG_ENGLISH_INDIA
-+# define SUBLANG_ENGLISH_INDIA 0x10
-+# endif
-+# ifndef SUBLANG_ENGLISH_MALAYSIA
-+# define SUBLANG_ENGLISH_MALAYSIA 0x11
-+# endif
-+# ifndef SUBLANG_ENGLISH_SINGAPORE
-+# define SUBLANG_ENGLISH_SINGAPORE 0x12
-+# endif
-+# ifndef SUBLANG_FRENCH_LUXEMBOURG
-+# define SUBLANG_FRENCH_LUXEMBOURG 0x05
-+# endif
-+# ifndef SUBLANG_FRENCH_MONACO
-+# define SUBLANG_FRENCH_MONACO 0x06
-+# endif
-+# ifndef SUBLANG_FRENCH_WESTINDIES
-+# define SUBLANG_FRENCH_WESTINDIES 0x07
-+# endif
-+# ifndef SUBLANG_FRENCH_REUNION
-+# define SUBLANG_FRENCH_REUNION 0x08
-+# endif
-+# ifndef SUBLANG_FRENCH_CONGO
-+# define SUBLANG_FRENCH_CONGO 0x09
-+# endif
-+# ifndef SUBLANG_FRENCH_SENEGAL
-+# define SUBLANG_FRENCH_SENEGAL 0x0a
-+# endif
-+# ifndef SUBLANG_FRENCH_CAMEROON
-+# define SUBLANG_FRENCH_CAMEROON 0x0b
-+# endif
-+# ifndef SUBLANG_FRENCH_COTEDIVOIRE
-+# define SUBLANG_FRENCH_COTEDIVOIRE 0x0c
-+# endif
-+# ifndef SUBLANG_FRENCH_MALI
-+# define SUBLANG_FRENCH_MALI 0x0d
-+# endif
-+# ifndef SUBLANG_FRENCH_MOROCCO
-+# define SUBLANG_FRENCH_MOROCCO 0x0e
-+# endif
-+# ifndef SUBLANG_FRENCH_HAITI
-+# define SUBLANG_FRENCH_HAITI 0x0f
-+# endif
-+# ifndef SUBLANG_GERMAN_LUXEMBOURG
-+# define SUBLANG_GERMAN_LUXEMBOURG 0x04
-+# endif
-+# ifndef SUBLANG_GERMAN_LIECHTENSTEIN
-+# define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
-+# endif
-+# ifndef SUBLANG_KASHMIRI_INDIA
-+# define SUBLANG_KASHMIRI_INDIA 0x02
-+# endif
-+# ifndef SUBLANG_MALAY_MALAYSIA
-+# define SUBLANG_MALAY_MALAYSIA 0x01
-+# endif
-+# ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM
-+# define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
-+# endif
-+# ifndef SUBLANG_NEPALI_INDIA
-+# define SUBLANG_NEPALI_INDIA 0x02
-+# endif
-+# ifndef SUBLANG_PUNJABI_INDIA
-+# define SUBLANG_PUNJABI_INDIA 0x00
-+# endif
-+# ifndef SUBLANG_PUNJABI_PAKISTAN
-+# define SUBLANG_PUNJABI_PAKISTAN 0x01
-+# endif
-+# ifndef SUBLANG_ROMANIAN_ROMANIA
-+# define SUBLANG_ROMANIAN_ROMANIA 0x00
-+# endif
-+# ifndef SUBLANG_ROMANIAN_MOLDOVA
-+# define SUBLANG_ROMANIAN_MOLDOVA 0x01
-+# endif
-+# ifndef SUBLANG_SERBIAN_LATIN
-+# define SUBLANG_SERBIAN_LATIN 0x02
-+# endif
-+# ifndef SUBLANG_SERBIAN_CYRILLIC
-+# define SUBLANG_SERBIAN_CYRILLIC 0x03
-+# endif
-+# ifndef SUBLANG_SINDHI_INDIA
-+# define SUBLANG_SINDHI_INDIA 0x00
-+# endif
-+# ifndef SUBLANG_SINDHI_PAKISTAN
-+# define SUBLANG_SINDHI_PAKISTAN 0x01
-+# endif
-+# ifndef SUBLANG_SPANISH_GUATEMALA
-+# define SUBLANG_SPANISH_GUATEMALA 0x04
-+# endif
-+# ifndef SUBLANG_SPANISH_COSTA_RICA
-+# define SUBLANG_SPANISH_COSTA_RICA 0x05
-+# endif
-+# ifndef SUBLANG_SPANISH_PANAMA
-+# define SUBLANG_SPANISH_PANAMA 0x06
-+# endif
-+# ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC
-+# define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
-+# endif
-+# ifndef SUBLANG_SPANISH_VENEZUELA
-+# define SUBLANG_SPANISH_VENEZUELA 0x08
-+# endif
-+# ifndef SUBLANG_SPANISH_COLOMBIA
-+# define SUBLANG_SPANISH_COLOMBIA 0x09
-+# endif
-+# ifndef SUBLANG_SPANISH_PERU
-+# define SUBLANG_SPANISH_PERU 0x0a
-+# endif
-+# ifndef SUBLANG_SPANISH_ARGENTINA
-+# define SUBLANG_SPANISH_ARGENTINA 0x0b
-+# endif
-+# ifndef SUBLANG_SPANISH_ECUADOR
-+# define SUBLANG_SPANISH_ECUADOR 0x0c
-+# endif
-+# ifndef SUBLANG_SPANISH_CHILE
-+# define SUBLANG_SPANISH_CHILE 0x0d
-+# endif
-+# ifndef SUBLANG_SPANISH_URUGUAY
-+# define SUBLANG_SPANISH_URUGUAY 0x0e
-+# endif
-+# ifndef SUBLANG_SPANISH_PARAGUAY
-+# define SUBLANG_SPANISH_PARAGUAY 0x0f
-+# endif
-+# ifndef SUBLANG_SPANISH_BOLIVIA
-+# define SUBLANG_SPANISH_BOLIVIA 0x10
-+# endif
-+# ifndef SUBLANG_SPANISH_EL_SALVADOR
-+# define SUBLANG_SPANISH_EL_SALVADOR 0x11
-+# endif
-+# ifndef SUBLANG_SPANISH_HONDURAS
-+# define SUBLANG_SPANISH_HONDURAS 0x12
-+# endif
-+# ifndef SUBLANG_SPANISH_NICARAGUA
-+# define SUBLANG_SPANISH_NICARAGUA 0x13
-+# endif
-+# ifndef SUBLANG_SPANISH_PUERTO_RICO
-+# define SUBLANG_SPANISH_PUERTO_RICO 0x14
-+# endif
-+# ifndef SUBLANG_SWEDISH_FINLAND
-+# define SUBLANG_SWEDISH_FINLAND 0x02
-+# endif
-+# ifndef SUBLANG_TAMAZIGHT_ARABIC
-+# define SUBLANG_TAMAZIGHT_ARABIC 0x01
-+# endif
-+# ifndef SUBLANG_TAMAZIGHT_LATIN
-+# define SUBLANG_TAMAZIGHT_LATIN 0x02
-+# endif
-+# ifndef SUBLANG_TIGRINYA_ETHIOPIA
-+# define SUBLANG_TIGRINYA_ETHIOPIA 0x00
-+# endif
-+# ifndef SUBLANG_TIGRINYA_ERITREA
-+# define SUBLANG_TIGRINYA_ERITREA 0x01
-+# endif
-+# ifndef SUBLANG_URDU_PAKISTAN
-+# define SUBLANG_URDU_PAKISTAN 0x01
-+# endif
-+# ifndef SUBLANG_URDU_INDIA
-+# define SUBLANG_URDU_INDIA 0x02
-+# endif
-+# ifndef SUBLANG_UZBEK_LATIN
-+# define SUBLANG_UZBEK_LATIN 0x01
-+# endif
-+# ifndef SUBLANG_UZBEK_CYRILLIC
-+# define SUBLANG_UZBEK_CYRILLIC 0x02
-+# endif
-+#endif
-+
-+/* XPG3 defines the result of 'setlocale (category, NULL)' as:
-+ "Directs 'setlocale()' to query 'category' and return the current
-+ setting of 'local'."
-+ However it does not specify the exact format. Neither do SUSV2 and
-+ ISO C 99. So we can use this feature only on selected systems (e.g.
-+ those using GNU C Library). */
-+#if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2)
-+# define HAVE_LOCALE_NULL
-+#endif
-+
-+/* Determine the current locale's name, and canonicalize it into XPG syntax
-+ language[_territory[.codeset]][@modifier]
-+ The codeset part in the result is not reliable; the locale_charset()
-+ should be used for codeset information instead.
-+ The result must not be freed; it is statically allocated. */
-+
-+const char *
-+_nl_locale_name (int category, const char *categoryname)
-+{
-+ const char *retval;
-+
-+#ifndef WIN32
-+
-+ /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'.
-+ On some systems this can be done by the 'setlocale' function itself. */
-+# if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
-+ retval = setlocale (category, NULL);
-+# else
-+ /* Setting of LC_ALL overwrites all other. */
-+ retval = getenv ("LC_ALL");
-+ if (retval == NULL || retval[0] == '\0')
-+ {
-+ /* Next comes the name of the desired category. */
-+ retval = getenv (categoryname);
-+ if (retval == NULL || retval[0] == '\0')
-+ {
-+ /* Last possibility is the LANG environment variable. */
-+ retval = getenv ("LANG");
-+ if (retval == NULL || retval[0] == '\0')
-+ /* We use C as the default domain. POSIX says this is
-+ implementation defined. */
-+ retval = "C";
-+ }
-+ }
-+# endif
-+
-+ return retval;
-+
-+#else /* WIN32 */
-+
-+ /* Return an XPG style locale name language[_territory][@modifier].
-+ Don't even bother determining the codeset; it's not useful in this
-+ context, because message catalogs are not specific to a single
-+ codeset. */
-+
-+ LCID lcid;
-+ LANGID langid;
-+ int primary, sub;
-+
-+ /* Let the user override the system settings through environment
-+ variables, as on POSIX systems. */
-+ retval = getenv ("LC_ALL");
-+ if (retval != NULL && retval[0] != '\0')
-+ return retval;
-+ retval = getenv (categoryname);
-+ if (retval != NULL && retval[0] != '\0')
-+ return retval;
-+ retval = getenv ("LANG");
-+ if (retval != NULL && retval[0] != '\0')
-+ return retval;
-+
-+ /* Use native Win32 API locale ID. */
-+ lcid = GetThreadLocale ();
-+
-+ /* Strip off the sorting rules, keep only the language part. */
-+ langid = LANGIDFROMLCID (lcid);
-+
-+ /* Split into language and territory part. */
-+ primary = PRIMARYLANGID (langid);
-+ sub = SUBLANGID (langid);
-+
-+ /* Dispatch on language.
-+ See also http://www.unicode.org/unicode/onlinedat/languages.html .
-+ For details about languages, see http://www.ethnologue.com/ . */
-+ switch (primary)
-+ {
-+ case LANG_AFRIKAANS: return "af_ZA";
-+ case LANG_ALBANIAN: return "sq_AL";
-+ case LANG_AMHARIC: return "am_ET";
-+ case LANG_ARABIC:
-+ switch (sub)
-+ {
-+ case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA";
-+ case SUBLANG_ARABIC_IRAQ: return "ar_IQ";
-+ case SUBLANG_ARABIC_EGYPT: return "ar_EG";
-+ case SUBLANG_ARABIC_LIBYA: return "ar_LY";
-+ case SUBLANG_ARABIC_ALGERIA: return "ar_DZ";
-+ case SUBLANG_ARABIC_MOROCCO: return "ar_MA";
-+ case SUBLANG_ARABIC_TUNISIA: return "ar_TN";
-+ case SUBLANG_ARABIC_OMAN: return "ar_OM";
-+ case SUBLANG_ARABIC_YEMEN: return "ar_YE";
-+ case SUBLANG_ARABIC_SYRIA: return "ar_SY";
-+ case SUBLANG_ARABIC_JORDAN: return "ar_JO";
-+ case SUBLANG_ARABIC_LEBANON: return "ar_LB";
-+ case SUBLANG_ARABIC_KUWAIT: return "ar_KW";
-+ case SUBLANG_ARABIC_UAE: return "ar_AE";
-+ case SUBLANG_ARABIC_BAHRAIN: return "ar_BH";
-+ case SUBLANG_ARABIC_QATAR: return "ar_QA";
-+ }
-+ return "ar";
-+ case LANG_ARMENIAN: return "hy_AM";
-+ case LANG_ASSAMESE: return "as_IN";
-+ case LANG_AZERI:
-+ switch (sub)
-+ {
-+ /* FIXME: Adjust this when Azerbaijani locales appear on Unix. */
-+ case SUBLANG_AZERI_LATIN: return "az_AZ@latin";
-+ case SUBLANG_AZERI_CYRILLIC: return "az_AZ@cyrillic";
-+ }
-+ return "az";
-+ case LANG_BASQUE:
-+ return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */
-+ case LANG_BELARUSIAN: return "be_BY";
-+ case LANG_BENGALI:
-+ switch (sub)
-+ {
-+ case SUBLANG_BENGALI_INDIA: return "bn_IN";
-+ case SUBLANG_BENGALI_BANGLADESH: return "bn_BD";
-+ }
-+ return "bn";
-+ case LANG_BULGARIAN: return "bg_BG";
-+ case LANG_BURMESE: return "my_MM";
-+ case LANG_CAMBODIAN: return "km_KH";
-+ case LANG_CATALAN: return "ca_ES";
-+ case LANG_CHEROKEE: return "chr_US";
-+ case LANG_CHINESE:
-+ switch (sub)
-+ {
-+ case SUBLANG_CHINESE_TRADITIONAL: return "zh_TW";
-+ case SUBLANG_CHINESE_SIMPLIFIED: return "zh_CN";
-+ case SUBLANG_CHINESE_HONGKONG: return "zh_HK";
-+ case SUBLANG_CHINESE_SINGAPORE: return "zh_SG";
-+ case SUBLANG_CHINESE_MACAU: return "zh_MO";
-+ }
-+ return "zh";
-+ case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN
-+ * What used to be called Serbo-Croatian
-+ * should really now be two separate
-+ * languages because of political reasons.
-+ * (Says tml, who knows nothing about Serbian
-+ * or Croatian.)
-+ * (I can feel those flames coming already.)
-+ */
-+ switch (sub)
-+ {
-+ case SUBLANG_DEFAULT: return "hr_HR";
-+ case SUBLANG_SERBIAN_LATIN: return "sr_CS";
-+ case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS@cyrillic";
-+ }
-+ return "hr";
-+ case LANG_CZECH: return "cs_CZ";
-+ case LANG_DANISH: return "da_DK";
-+ case LANG_DIVEHI: return "dv_MV";
-+ case LANG_DUTCH:
-+ switch (sub)
-+ {
-+ case SUBLANG_DUTCH: return "nl_NL";
-+ case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE";
-+ }
-+ return "nl";
-+ case LANG_EDO: return "bin_NG";
-+ case LANG_ENGLISH:
-+ switch (sub)
-+ {
-+ /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought
-+ * English was the language spoken in England.
-+ * Oh well.
-+ */
-+ case SUBLANG_ENGLISH_US: return "en_US";
-+ case SUBLANG_ENGLISH_UK: return "en_GB";
-+ case SUBLANG_ENGLISH_AUS: return "en_AU";
-+ case SUBLANG_ENGLISH_CAN: return "en_CA";
-+ case SUBLANG_ENGLISH_NZ: return "en_NZ";
-+ case SUBLANG_ENGLISH_EIRE: return "en_IE";
-+ case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA";
-+ case SUBLANG_ENGLISH_JAMAICA: return "en_JM";
-+ case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */
-+ case SUBLANG_ENGLISH_BELIZE: return "en_BZ";
-+ case SUBLANG_ENGLISH_TRINIDAD: return "en_TT";
-+ case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW";
-+ case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH";
-+ case SUBLANG_ENGLISH_INDONESIA: return "en_ID";
-+ case SUBLANG_ENGLISH_HONGKONG: return "en_HK";
-+ case SUBLANG_ENGLISH_INDIA: return "en_IN";
-+ case SUBLANG_ENGLISH_MALAYSIA: return "en_MY";
-+ case SUBLANG_ENGLISH_SINGAPORE: return "en_SG";
-+ }
-+ return "en";
-+ case LANG_ESTONIAN: return "et_EE";
-+ case LANG_FAEROESE: return "fo_FO";
-+ case LANG_FARSI: return "fa_IR";
-+ case LANG_FINNISH: return "fi_FI";
-+ case LANG_FRENCH:
-+ switch (sub)
-+ {
-+ case SUBLANG_FRENCH: return "fr_FR";
-+ case SUBLANG_FRENCH_BELGIAN: /* WALLOON */ return "fr_BE";
-+ case SUBLANG_FRENCH_CANADIAN: return "fr_CA";
-+ case SUBLANG_FRENCH_SWISS: return "fr_CH";
-+ case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU";
-+ case SUBLANG_FRENCH_MONACO: return "fr_MC";
-+ case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */
-+ case SUBLANG_FRENCH_REUNION: return "fr_RE";
-+ case SUBLANG_FRENCH_CONGO: return "fr_CG";
-+ case SUBLANG_FRENCH_SENEGAL: return "fr_SN";
-+ case SUBLANG_FRENCH_CAMEROON: return "fr_CM";
-+ case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI";
-+ case SUBLANG_FRENCH_MALI: return "fr_ML";
-+ case SUBLANG_FRENCH_MOROCCO: return "fr_MA";
-+ case SUBLANG_FRENCH_HAITI: return "fr_HT";
-+ }
-+ return "fr";
-+ case LANG_FRISIAN: return "fy_NL";
-+ case LANG_FULFULDE:
-+ /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */
-+ return "ff_NG";
-+ case LANG_GAELIC:
-+ switch (sub)
-+ {
-+ case 0x01: /* SCOTTISH */ return "gd_GB";
-+ case 0x02: /* IRISH */ return "ga_IE";
-+ }
-+ return "C";
-+ case LANG_GALICIAN: return "gl_ES";
-+ case LANG_GEORGIAN: return "ka_GE";
-+ case LANG_GERMAN:
-+ switch (sub)
-+ {
-+ case SUBLANG_GERMAN: return "de_DE";
-+ case SUBLANG_GERMAN_SWISS: return "de_CH";
-+ case SUBLANG_GERMAN_AUSTRIAN: return "de_AT";
-+ case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU";
-+ case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI";
-+ }
-+ return "de";
-+ case LANG_GREEK: return "el_GR";
-+ case LANG_GUARANI: return "gn_PY";
-+ case LANG_GUJARATI: return "gu_IN";
-+ case LANG_HAUSA: return "ha_NG";
-+ case LANG_HAWAIIAN:
-+ /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers)
-+ or Hawaii Creole English ("cpe_US", 600000 speakers)? */
-+ return "cpe_US";
-+ case LANG_HEBREW: return "he_IL";
-+ case LANG_HINDI: return "hi_IN";
-+ case LANG_HUNGARIAN: return "hu_HU";
-+ case LANG_IBIBIO: return "nic_NG";
-+ case LANG_ICELANDIC: return "is_IS";
-+ case LANG_IGBO: return "ig_NG";
-+ case LANG_INDONESIAN: return "id_ID";
-+ case LANG_INUKTITUT: return "iu_CA";
-+ case LANG_ITALIAN:
-+ switch (sub)
-+ {
-+ case SUBLANG_ITALIAN: return "it_IT";
-+ case SUBLANG_ITALIAN_SWISS: return "it_CH";
-+ }
-+ return "it";
-+ case LANG_JAPANESE: return "ja_JP";
-+ case LANG_KANNADA: return "kn_IN";
-+ case LANG_KANURI: return "kr_NG";
-+ case LANG_KASHMIRI:
-+ switch (sub)
-+ {
-+ case SUBLANG_DEFAULT: return "ks_PK";
-+ case SUBLANG_KASHMIRI_INDIA: return "ks_IN";
-+ }
-+ return "ks";
-+ case LANG_KAZAK: return "kk_KZ";
-+ case LANG_KONKANI:
-+ /* FIXME: Adjust this when such locales appear on Unix. */
-+ return "kok_IN";
-+ case LANG_KOREAN: return "ko_KR";
-+ case LANG_KYRGYZ: return "ky_KG";
-+ case LANG_LAO: return "lo_LA";
-+ case LANG_LATIN: return "la_VA";
-+ case LANG_LATVIAN: return "lv_LV";
-+ case LANG_LITHUANIAN: return "lt_LT";
-+ case LANG_MACEDONIAN: return "mk_MK";
-+ case LANG_MALAY:
-+ switch (sub)
-+ {
-+ case SUBLANG_MALAY_MALAYSIA: return "ms_MY";
-+ case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN";
-+ }
-+ return "ms";
-+ case LANG_MALAYALAM: return "ml_IN";
-+ case LANG_MALTESE: return "mt_MT";
-+ case LANG_MANIPURI:
-+ /* FIXME: Adjust this when such locales appear on Unix. */
-+ return "mni_IN";
-+ case LANG_MARATHI: return "mr_IN";
-+ case LANG_MONGOLIAN:
-+ return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */
-+ case LANG_NEPALI:
-+ switch (sub)
-+ {
-+ case SUBLANG_DEFAULT: return "ne_NP";
-+ case SUBLANG_NEPALI_INDIA: return "ne_IN";
-+ }
-+ return "ne";
-+ case LANG_NORWEGIAN:
-+ switch (sub)
-+ {
-+ case SUBLANG_NORWEGIAN_BOKMAL: return "no_NO";
-+ case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO";
-+ }
-+ return "no";
-+ case LANG_ORIYA: return "or_IN";
-+ case LANG_OROMO: return "om_ET";
-+ case LANG_PAPIAMENTU: return "pap_AN";
-+ case LANG_PASHTO:
-+ return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */
-+ case LANG_POLISH: return "pl_PL";
-+ case LANG_PORTUGUESE:
-+ switch (sub)
-+ {
-+ case SUBLANG_PORTUGUESE: return "pt_PT";
-+ /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT.
-+ Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */
-+ case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR";
-+ }
-+ return "pt";
-+ case LANG_PUNJABI:
-+ switch (sub)
-+ {
-+ case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */
-+ case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */
-+ }
-+ return "pa";
-+ case LANG_RHAETO_ROMANCE: return "rm_CH";
-+ case LANG_ROMANIAN:
-+ switch (sub)
-+ {
-+ case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO";
-+ case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD";
-+ }
-+ return "ro";
-+ case LANG_RUSSIAN:
-+ return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */
-+ case LANG_SAAMI: /* actually Northern Sami */ return "se_NO";
-+ case LANG_SANSKRIT: return "sa_IN";
-+ case LANG_SINDHI:
-+ switch (sub)
-+ {
-+ case SUBLANG_SINDHI_INDIA: return "sd_IN";
-+ case SUBLANG_SINDHI_PAKISTAN: return "sd_PK";
-+ }
-+ return "sd";
-+ case LANG_SINHALESE: return "si_LK";
-+ case LANG_SLOVAK: return "sk_SK";
-+ case LANG_SLOVENIAN: return "sl_SI";
-+ case LANG_SOMALI: return "so_SO";
-+ case LANG_SORBIAN:
-+ /* FIXME: Adjust this when such locales appear on Unix. */
-+ return "wen_DE";
-+ case LANG_SPANISH:
-+ switch (sub)
-+ {
-+ case SUBLANG_SPANISH: return "es_ES";
-+ case SUBLANG_SPANISH_MEXICAN: return "es_MX";
-+ case SUBLANG_SPANISH_MODERN:
-+ return "es_ES@modern"; /* not seen on Unix */
-+ case SUBLANG_SPANISH_GUATEMALA: return "es_GT";
-+ case SUBLANG_SPANISH_COSTA_RICA: return "es_CR";
-+ case SUBLANG_SPANISH_PANAMA: return "es_PA";
-+ case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO";
-+ case SUBLANG_SPANISH_VENEZUELA: return "es_VE";
-+ case SUBLANG_SPANISH_COLOMBIA: return "es_CO";
-+ case SUBLANG_SPANISH_PERU: return "es_PE";
-+ case SUBLANG_SPANISH_ARGENTINA: return "es_AR";
-+ case SUBLANG_SPANISH_ECUADOR: return "es_EC";
-+ case SUBLANG_SPANISH_CHILE: return "es_CL";
-+ case SUBLANG_SPANISH_URUGUAY: return "es_UY";
-+ case SUBLANG_SPANISH_PARAGUAY: return "es_PY";
-+ case SUBLANG_SPANISH_BOLIVIA: return "es_BO";
-+ case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV";
-+ case SUBLANG_SPANISH_HONDURAS: return "es_HN";
-+ case SUBLANG_SPANISH_NICARAGUA: return "es_NI";
-+ case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR";
-+ }
-+ return "es";
-+ case LANG_SUTU: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */
-+ case LANG_SWAHILI: return "sw_KE";
-+ case LANG_SWEDISH:
-+ switch (sub)
-+ {
-+ case SUBLANG_DEFAULT: return "sv_SE";
-+ case SUBLANG_SWEDISH_FINLAND: return "sv_FI";
-+ }
-+ return "sv";
-+ case LANG_SYRIAC: return "syr_TR"; /* An extinct language. */
-+ case LANG_TAGALOG: return "tl_PH";
-+ case LANG_TAJIK: return "tg_TJ";
-+ case LANG_TAMAZIGHT:
-+ switch (sub)
-+ {
-+ /* FIXME: Adjust this when Tamazight locales appear on Unix. */
-+ case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA@arabic";
-+ case SUBLANG_TAMAZIGHT_LATIN: return "ber_MA@latin";
-+ }
-+ return "ber_MA";
-+ case LANG_TAMIL:
-+ return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */
-+ case LANG_TATAR: return "tt_RU";
-+ case LANG_TELUGU: return "te_IN";
-+ case LANG_THAI: return "th_TH";
-+ case LANG_TIBETAN: return "bo_CN";
-+ case LANG_TIGRINYA:
-+ switch (sub)
-+ {
-+ case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET";
-+ case SUBLANG_TIGRINYA_ERITREA: return "ti_ER";
-+ }
-+ return "ti";
-+ case LANG_TSONGA: return "ts_ZA";
-+ case LANG_TSWANA: return "tn_BW";
-+ case LANG_TURKISH: return "tr_TR";
-+ case LANG_TURKMEN: return "tk_TM";
-+ case LANG_UKRAINIAN: return "uk_UA";
-+ case LANG_URDU:
-+ switch (sub)
-+ {
-+ case SUBLANG_URDU_PAKISTAN: return "ur_PK";
-+ case SUBLANG_URDU_INDIA: return "ur_IN";
-+ }
-+ return "ur";
-+ case LANG_UZBEK:
-+ switch (sub)
-+ {
-+ case SUBLANG_UZBEK_LATIN: return "uz_UZ";
-+ case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic";
-+ }
-+ return "uz";
-+ case LANG_VENDA: return "ve_ZA";
-+ case LANG_VIETNAMESE: return "vi_VN";
-+ case LANG_WELSH: return "cy_GB";
-+ case LANG_XHOSA: return "xh_ZA";
-+ case LANG_YI: return "sit_CN";
-+ case LANG_YIDDISH: return "yi_IL";
-+ case LANG_YORUBA: return "yo_NG";
-+ case LANG_ZULU: return "zu_ZA";
-+ default: return "C";
-+ }
-+
-+#endif
-+}
---- lrzsz-0.12.20.safe/intl/log.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/log.c 2004-09-12 14:40:34.515723768 -0400
-@@ -0,0 +1,98 @@
-+/* Log file output.
-+ Copyright (C) 2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* Written by Bruno Haible <bruno@clisp.org>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+/* Print an ASCII string with quotes and escape sequences where needed. */
-+static void
-+print_escaped (FILE *stream, const char *str)
-+{
-+ putc ('"', stream);
-+ for (; *str != '\0'; str++)
-+ if (*str == '\n')
-+ {
-+ fputs ("\\n\"", stream);
-+ if (str[1] == '\0')
-+ return;
-+ fputs ("\n\"", stream);
-+ }
-+ else
-+ {
-+ if (*str == '"' || *str == '\\')
-+ putc ('\\', stream);
-+ putc (*str, stream);
-+ }
-+ putc ('"', stream);
-+}
-+
-+/* Add to the log file an entry denoting a failed translation. */
-+void
-+_nl_log_untranslated (const char *logfilename, const char *domainname,
-+ const char *msgid1, const char *msgid2, int plural)
-+{
-+ static char *last_logfilename = NULL;
-+ static FILE *last_logfile = NULL;
-+ FILE *logfile;
-+
-+ /* Can we reuse the last opened logfile? */
-+ if (last_logfilename == NULL || strcmp (logfilename, last_logfilename) != 0)
-+ {
-+ /* Close the last used logfile. */
-+ if (last_logfilename != NULL)
-+ {
-+ if (last_logfile != NULL)
-+ {
-+ fclose (last_logfile);
-+ last_logfile = NULL;
-+ }
-+ free (last_logfilename);
-+ last_logfilename = NULL;
-+ }
-+ /* Open the logfile. */
-+ last_logfilename = (char *) malloc (strlen (logfilename) + 1);
-+ if (last_logfilename == NULL)
-+ return;
-+ strcpy (last_logfilename, logfilename);
-+ last_logfile = fopen (logfilename, "a");
-+ if (last_logfile == NULL)
-+ return;
-+ }
-+ logfile = last_logfile;
-+
-+ fprintf (logfile, "domain ");
-+ print_escaped (logfile, domainname);
-+ fprintf (logfile, "\nmsgid ");
-+ print_escaped (logfile, msgid1);
-+ if (plural)
-+ {
-+ fprintf (logfile, "\nmsgid_plural ");
-+ print_escaped (logfile, msgid2);
-+ fprintf (logfile, "\nmsgstr[0] \"\"\n");
-+ }
-+ else
-+ fprintf (logfile, "\nmsgstr \"\"\n");
-+ putc ('\n', logfile);
-+}
---- lrzsz-0.12.20.safe/intl/Makefile.in 1998-04-26 09:22:35.000000000 -0400
-+++ lrzsz-0.12.20/intl/Makefile.in 2004-09-12 14:40:34.521722856 -0400
-@@ -1,19 +1,20 @@
--# Makefile for directory with message catalog handling in GNU NLS Utilities.
--# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-+# Makefile for directory with message catalog handling library of GNU gettext
-+# Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc.
- #
--# 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, or (at your option)
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU Library General Public License as published
-+# by the Free Software Foundation; either version 2, 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.
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+# Library 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.
-+# You should have received a copy of the GNU Library 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.
-
- PACKAGE = @PACKAGE@
- VERSION = @VERSION@
-@@ -23,118 +24,341 @@
- srcdir = @srcdir@
- top_srcdir = @top_srcdir@
- top_builddir = ..
--VPATH = @srcdir@
-+#VPATH = $(srcdir)
-
- prefix = @prefix@
- exec_prefix = @exec_prefix@
- transform = @program_transform_name@
--libdir = $(exec_prefix)/lib
--includedir = $(prefix)/include
--datadir = $(prefix)/@DATADIRNAME@
-+libdir = @libdir@
-+includedir = @includedir@
-+datadir = @datadir@
- localedir = $(datadir)/locale
--gnulocaledir = $(prefix)/share/locale
--gettextsrcdir = @datadir@/gettext/intl
--aliaspath = $(localedir):.
-+gettextsrcdir = $(datadir)/gettext/intl
-+aliaspath = $(localedir)
- subdir = intl
-
- INSTALL = @INSTALL@
- INSTALL_DATA = @INSTALL_DATA@
- MKINSTALLDIRS = @MKINSTALLDIRS@
-+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
-
--l = @l@
-+l = @INTL_LIBTOOL_SUFFIX_PREFIX@
-
- AR = ar
- CC = @CC@
- LIBTOOL = @LIBTOOL@
- RANLIB = @RANLIB@
-+YACC = @INTLBISON@ -y -d
-+YFLAGS = --name-prefix=__gettext
-
--DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
---DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
-+DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
-+-DLIBDIR=\"$(libdir)\" -DIN_LIBINTL \
-+-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
-+-Dset_relocation_prefix=libintl_set_relocation_prefix \
-+-Drelocate=libintl_relocate \
-+-DDEPENDS_ON_LIBICONV=1 @DEFS@
- CPPFLAGS = @CPPFLAGS@
- CFLAGS = @CFLAGS@
- LDFLAGS = @LDFLAGS@
-+LIBS = @LIBS@
-
- COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-
--HEADERS = $(COMHDRS) libgettext.h loadinfo.h
--COMHDRS = gettext.h gettextP.h hash-string.h
--SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
--COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
--finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
--explodename.c
--OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
--finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
--explodename.$lo
--CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
--GETTOBJS = intl-compat.$lo
--DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
--xopen-msg.sed $(HEADERS) $(SOURCES)
-+HEADERS = \
-+ gmo.h \
-+ gettextP.h \
-+ hash-string.h \
-+ loadinfo.h \
-+ plural-exp.h \
-+ eval-plural.h \
-+ localcharset.h \
-+ relocatable.h \
-+ xsize.h \
-+ printf-args.h printf-args.c \
-+ printf-parse.h wprintf-parse.h printf-parse.c \
-+ vasnprintf.h vasnwprintf.h vasnprintf.c \
-+ os2compat.h \
-+ libgnuintl.h.in
-+SOURCES = \
-+ bindtextdom.c \
-+ dcgettext.c \
-+ dgettext.c \
-+ gettext.c \
-+ finddomain.c \
-+ loadmsgcat.c \
-+ localealias.c \
-+ textdomain.c \
-+ l10nflist.c \
-+ explodename.c \
-+ dcigettext.c \
-+ dcngettext.c \
-+ dngettext.c \
-+ ngettext.c \
-+ plural.y \
-+ plural-exp.c \
-+ localcharset.c \
-+ relocatable.c \
-+ localename.c \
-+ log.c \
-+ printf.c \
-+ osdep.c \
-+ os2compat.c \
-+ intl-compat.c
-+OBJECTS = \
-+ bindtextdom.$lo \
-+ dcgettext.$lo \
-+ dgettext.$lo \
-+ gettext.$lo \
-+ finddomain.$lo \
-+ loadmsgcat.$lo \
-+ localealias.$lo \
-+ textdomain.$lo \
-+ l10nflist.$lo \
-+ explodename.$lo \
-+ dcigettext.$lo \
-+ dcngettext.$lo \
-+ dngettext.$lo \
-+ ngettext.$lo \
-+ plural.$lo \
-+ plural-exp.$lo \
-+ localcharset.$lo \
-+ relocatable.$lo \
-+ localename.$lo \
-+ log.$lo \
-+ printf.$lo \
-+ osdep.$lo \
-+ intl-compat.$lo
-+DISTFILES.common = Makefile.in \
-+config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
-+DISTFILES.generated = plural.c
- DISTFILES.normal = VERSION
--DISTFILES.gettext = libintl.glibc intlh.inst.in
-+DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \
-+libgnuintl.h_vms Makefile.vms \
-+libgnuintl.h.msvc-static libgnuintl.h.msvc-shared README.woe32 Makefile.msvc
-+DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
-+COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h
-+
-+all: all-@USE_INCLUDED_LIBINTL@
-+all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
-+all-no: all-no-@BUILD_INCLUDED_LIBINTL@
-+all-no-yes: libgnuintl.$la
-+all-no-no:
-+
-+libintl.a libgnuintl.a: $(OBJECTS)
-+ rm -f $@
-+ $(AR) cru $@ $(OBJECTS)
-+ $(RANLIB) $@
-+
-+libintl.la libgnuintl.la: $(OBJECTS)
-+ $(LIBTOOL) --mode=link \
-+ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
-+ $(OBJECTS) @LTLIBICONV@ $(LIBS) -lc \
-+ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
-+ -rpath $(libdir) \
-+ -no-undefined
-+
-+# Libtool's library version information for libintl.
-+# Before making a gettext release, the gettext maintainer must change this
-+# according to the libtool documentation, section "Library interface versions".
-+# Maintainers of other packages that include the intl directory must *not*
-+# change these values.
-+LTV_CURRENT=7
-+LTV_REVISION=0
-+LTV_AGE=4
-
- .SUFFIXES:
--.SUFFIXES: .c .o .lo
-+.SUFFIXES: .c .y .o .lo .sin .sed
-+
- .c.o:
- $(COMPILE) $<
--.c.lo:
-- $(LIBTOOL) --mode=compile $(COMPILE) $<
-
--INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
-+.y.c:
-+ $(YACC) $(YFLAGS) --output $@ $<
-+ rm -f $*.h
-
--all: all-@USE_INCLUDED_LIBINTL@
-+bindtextdom.lo: $(srcdir)/bindtextdom.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/bindtextdom.c
-+dcgettext.lo: $(srcdir)/dcgettext.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcgettext.c
-+dgettext.lo: $(srcdir)/dgettext.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dgettext.c
-+gettext.lo: $(srcdir)/gettext.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c
-+finddomain.lo: $(srcdir)/finddomain.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c
-+loadmsgcat.lo: $(srcdir)/loadmsgcat.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c
-+localealias.lo: $(srcdir)/localealias.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localealias.c
-+textdomain.lo: $(srcdir)/textdomain.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/textdomain.c
-+l10nflist.lo: $(srcdir)/l10nflist.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/l10nflist.c
-+explodename.lo: $(srcdir)/explodename.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/explodename.c
-+dcigettext.lo: $(srcdir)/dcigettext.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcigettext.c
-+dcngettext.lo: $(srcdir)/dcngettext.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcngettext.c
-+dngettext.lo: $(srcdir)/dngettext.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dngettext.c
-+ngettext.lo: $(srcdir)/ngettext.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/ngettext.c
-+plural.lo: $(srcdir)/plural.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural.c
-+plural-exp.lo: $(srcdir)/plural-exp.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c
-+localcharset.lo: $(srcdir)/localcharset.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c
-+relocatable.lo: $(srcdir)/relocatable.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c
-+localename.lo: $(srcdir)/localename.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c
-+log.lo: $(srcdir)/log.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c
-+printf.lo: $(srcdir)/printf.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c
-+osdep.lo: $(srcdir)/osdep.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c
-+intl-compat.lo: $(srcdir)/intl-compat.c
-+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/intl-compat.c
-
--all-yes: libintl.$la intlh.inst
--all-no:
-+ref-add.sed: $(srcdir)/ref-add.sin
-+ sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-add.sin > t-ref-add.sed
-+ mv t-ref-add.sed ref-add.sed
-+ref-del.sed: $(srcdir)/ref-del.sin
-+ sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-del.sin > t-ref-del.sed
-+ mv t-ref-del.sed ref-del.sed
-
--libintl.a: $(OBJECTS)
-- rm -f $@
-- $(AR) cru $@ $(OBJECTS)
-- $(RANLIB) $@
-+INCLUDES = -I. -I$(srcdir) -I..
-
--libintl.la: $(OBJECTS)
-- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
-- -version-info 1:0 -rpath $(libdir)
-+libgnuintl.h: $(srcdir)/libgnuintl.h.in
-+ sed -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \
-+ -e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \
-+ -e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \
-+ -e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \
-+ < $(srcdir)/libgnuintl.h.in > libgnuintl.h
-
--../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
-- cd ../po && $(MAKE) cat-id-tbl.$lo
-+libintl.h: libgnuintl.h
-+ cp libgnuintl.h libintl.h
-
--check: all
-+charset.alias: $(srcdir)/config.charset
-+ $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
-+ mv t-$@ $@
-
--# This installation goal is only used in GNU gettext. Packages which
--# only use the library should use install instead.
-+check: all
-
- # We must not install the libintl.h/libintl.a files if we are on a
--# system which has the gettext() function in its C library or in a
--# separate library or use the catgets interface. A special case is
--# where configure found a previously installed GNU gettext library.
-+# system which has the GNU gettext() function in its C library or in a
-+# separate library.
- # If you want to use the one which comes with this version of the
- # package, you have to use `configure --with-included-gettext'.
- install: install-exec install-data
- install-exec: all
-- if test "$(PACKAGE)" = "gettext" \
-- && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
-- if test -r $(MKINSTALLDIRS); then \
-- $(MKINSTALLDIRS) $(libdir) $(includedir); \
-- else \
-- $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
-+ if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
-+ && test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
-+ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
-+ $(LIBTOOL) --mode=install \
-+ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
-+ if test "@RELOCATABLE@" = yes; then \
-+ dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \
-+ if test -n "$$dependencies"; then \
-+ rm -f $(DESTDIR)$(libdir)/libintl.la; \
-+ fi; \
- fi; \
-- $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
-- $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
- else \
- : ; \
- fi
--install-data: all
-- if test "$(PACKAGE)" = "gettext"; then \
-- if test -r $(MKINSTALLDIRS); then \
-- $(MKINSTALLDIRS) $(gettextsrcdir); \
-+ if test "$(PACKAGE)" = "gettext-tools" \
-+ && test '@USE_INCLUDED_LIBINTL@' = no; then \
-+ $(mkinstalldirs) $(DESTDIR)$(libdir); \
-+ $(LIBTOOL) --mode=install \
-+ $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \
-+ rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
-+ $(INSTALL_DATA) $(DESTDIR)$(libdir)/libgnuintl.so $(DESTDIR)$(libdir)/preloadable_libintl.so; \
-+ $(LIBTOOL) --mode=uninstall \
-+ rm -f $(DESTDIR)$(libdir)/libgnuintl.$la; \
-+ else \
-+ : ; \
-+ fi
-+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+ test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
-+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
-+ dest=$(DESTDIR)$(libdir)/charset.alias; \
-+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
-+ orig=$(DESTDIR)$(libdir)/charset.alias; \
-+ sed -f ref-add.sed $$orig > $$temp; \
-+ $(INSTALL_DATA) $$temp $$dest; \
-+ rm -f $$temp; \
- else \
-- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
-+ if test @GLIBC21@ = no; then \
-+ orig=charset.alias; \
-+ sed -f ref-add.sed $$orig > $$temp; \
-+ $(INSTALL_DATA) $$temp $$dest; \
-+ rm -f $$temp; \
-+ fi; \
- fi; \
-- $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
-- dists="$(DISTFILES.common)"; \
-+ $(mkinstalldirs) $(DESTDIR)$(localedir); \
-+ test -f $(DESTDIR)$(localedir)/locale.alias \
-+ && orig=$(DESTDIR)$(localedir)/locale.alias \
-+ || orig=$(srcdir)/locale.alias; \
-+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \
-+ dest=$(DESTDIR)$(localedir)/locale.alias; \
-+ sed -f ref-add.sed $$orig > $$temp; \
-+ $(INSTALL_DATA) $$temp $$dest; \
-+ rm -f $$temp; \
-+ else \
-+ : ; \
-+ fi
-+install-data: all
-+ if test "$(PACKAGE)" = "gettext-tools"; then \
-+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
-+ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
-+ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
-+ dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \
- for file in $$dists; do \
-- $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
-+ $(INSTALL_DATA) $(srcdir)/$$file \
-+ $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
-+ chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
-+ dists="$(DISTFILES.generated)"; \
-+ for file in $$dists; do \
-+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
-+ $(INSTALL_DATA) $$dir/$$file \
-+ $(DESTDIR)$(gettextsrcdir)/$$file; \
-+ done; \
-+ dists="$(DISTFILES.obsolete)"; \
-+ for file in $$dists; do \
-+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-+ done; \
-+ else \
-+ : ; \
-+ fi
-+
-+install-strip: install
-+
-+installdirs:
-+ if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
-+ && test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
-+ else \
-+ : ; \
-+ fi
-+ if test "$(PACKAGE)" = "gettext-tools" \
-+ && test '@USE_INCLUDED_LIBINTL@' = no; then \
-+ $(mkinstalldirs) $(DESTDIR)$(libdir); \
-+ else \
-+ : ; \
-+ fi
-+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+ test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
-+ $(mkinstalldirs) $(DESTDIR)$(localedir); \
-+ else \
-+ : ; \
-+ fi
-+ if test "$(PACKAGE)" = "gettext-tools"; then \
-+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-@@ -143,22 +367,76 @@
- installcheck:
-
- uninstall:
-- dists="$(DISTFILES.common)"; \
-- for file in $$dists; do \
-- rm -f $(gettextsrcdir)/$$file; \
-- done
-+ if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
-+ && test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+ rm -f $(DESTDIR)$(includedir)/libintl.h; \
-+ $(LIBTOOL) --mode=uninstall \
-+ rm -f $(DESTDIR)$(libdir)/libintl.$la; \
-+ else \
-+ : ; \
-+ fi
-+ if test "$(PACKAGE)" = "gettext-tools" \
-+ && test '@USE_INCLUDED_LIBINTL@' = no; then \
-+ rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
-+ else \
-+ : ; \
-+ fi
-+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
-+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
-+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
-+ dest=$(DESTDIR)$(libdir)/charset.alias; \
-+ sed -f ref-del.sed $$dest > $$temp; \
-+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
-+ rm -f $$dest; \
-+ else \
-+ $(INSTALL_DATA) $$temp $$dest; \
-+ fi; \
-+ rm -f $$temp; \
-+ fi; \
-+ if test -f $(DESTDIR)$(localedir)/locale.alias; then \
-+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \
-+ dest=$(DESTDIR)$(localedir)/locale.alias; \
-+ sed -f ref-del.sed $$dest > $$temp; \
-+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
-+ rm -f $$dest; \
-+ else \
-+ $(INSTALL_DATA) $$temp $$dest; \
-+ fi; \
-+ rm -f $$temp; \
-+ fi; \
-+ else \
-+ : ; \
-+ fi
-+ if test "$(PACKAGE)" = "gettext-tools"; then \
-+ for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
-+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-+ done; \
-+ else \
-+ : ; \
-+ fi
-
--info dvi:
-+info dvi ps pdf html:
-
--$(OBJECTS): ../config.h libgettext.h
--bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
--dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
-+$(OBJECTS): ../config.h libgnuintl.h
-+bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
-+dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h
-+explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h
-+dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h
-+dcigettext.$lo: $(srcdir)/eval-plural.h
-+localcharset.$lo: $(srcdir)/localcharset.h
-+localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h
-+printf.$lo: $(srcdir)/printf-args.h $(srcdir)/printf-args.c $(srcdir)/printf-parse.h $(srcdir)/wprintf-parse.h $(srcdir)/xsize.h $(srcdir)/printf-parse.c $(srcdir)/vasnprintf.h $(srcdir)/vasnwprintf.h $(srcdir)/vasnprintf.c
-
- tags: TAGS
-
- TAGS: $(HEADERS) $(SOURCES)
- here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
-
-+ctags: CTAGS
-+
-+CTAGS: $(HEADERS) $(SOURCES)
-+ here=`pwd`; cd $(srcdir) && ctags -o $$here/CTAGS $(HEADERS) $(SOURCES)
-+
- id: ID
-
- ID: $(HEADERS) $(SOURCES)
-@@ -166,12 +444,19 @@
-
-
- mostlyclean:
-- rm -f *.a *.o *.lo core core.*
-+ rm -f *.a *.la *.o *.obj *.lo core core.*
-+ rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed
-+ rm -f -r .libs _libs
-
- clean: mostlyclean
-
- distclean: clean
-- rm -f Makefile ID TAGS po2msg.sed po2tbl.sed libintl.h
-+ rm -f Makefile ID TAGS
-+ if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \
-+ rm -f ChangeLog.inst $(DISTFILES.normal); \
-+ else \
-+ : ; \
-+ fi
-
- maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
-@@ -181,33 +466,27 @@
- # GNU gettext needs not contain the file `VERSION' but contains some
- # other files which should not be distributed in other packages.
- distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
--dist distdir: Makefile $(DISTFILES)
-- if test "$(PACKAGE)" = gettext; then \
-- additional="$(DISTFILES.gettext)"; \
-+dist distdir: Makefile
-+ if test "$(PACKAGE)" = "gettext-tools"; then \
-+ : ; \
- else \
-- additional="$(DISTFILES.normal)"; \
-- fi; \
-- for file in $(DISTFILES.common) $$additional; do \
-- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
-- || cp -p $(srcdir)/$$file $(distdir); \
-- done
--
--dist-libc:
-- tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
--
--Makefile: Makefile.in ../config.status
-- cd .. \
-- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-+ if test "$(PACKAGE)" = "gettext-runtime"; then \
-+ additional="$(DISTFILES.gettext)"; \
-+ else \
-+ additional="$(DISTFILES.normal)"; \
-+ fi; \
-+ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
-+ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
-+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
-+ cp -p $$dir/$$file $(distdir); \
-+ done; \
-+ fi
-
--# The dependency for intlh.inst is different in gettext and all other
--# packages. Because we cannot you GNU make features we have to solve
--# the problem while rewriting Makefile.in.
--@GT_YES@intlh.inst: intlh.inst.in ../config.status
--@GT_YES@ cd .. \
--@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
--@GT_YES@ $(SHELL) ./config.status
--@GT_NO@.PHONY: intlh.inst
--@GT_NO@intlh.inst:
-+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-+ cd $(top_builddir) && $(SHELL) ./config.status
-+# This would be more efficient, but doesn't work any more with autoconf-2.57,
-+# when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used.
-+# cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
- # Tell versions [3.59,3.63) of GNU make not to export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
---- lrzsz-0.12.20.safe/intl/ngettext.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/ngettext.c 2004-09-12 14:40:34.533721032 -0400
-@@ -0,0 +1,65 @@
-+/* Implementation of ngettext(3) function.
-+ Copyright (C) 1995, 1997, 2000-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#ifdef _LIBC
-+# define __need_NULL
-+# include <stddef.h>
-+#else
-+# include <stdlib.h> /* Just for NULL. */
-+#endif
-+
-+#include "gettextP.h"
-+#ifdef _LIBC
-+# include <libintl.h>
-+#else
-+# include "libgnuintl.h"
-+#endif
-+
-+#include <locale.h>
-+
-+/* @@ end of prolog @@ */
-+
-+/* Names for the libintl functions are a problem. They must not clash
-+ with existing names and they should follow ANSI C. But this source
-+ code is also used in GNU C Library where the names have a __
-+ prefix. So we have to make a difference here. */
-+#ifdef _LIBC
-+# define NGETTEXT __ngettext
-+# define DCNGETTEXT __dcngettext
-+#else
-+# define NGETTEXT libintl_ngettext
-+# define DCNGETTEXT libintl_dcngettext
-+#endif
-+
-+/* Look up MSGID in the current default message catalog for the current
-+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
-+ text). */
-+char *
-+NGETTEXT (const char *msgid1, const char *msgid2, unsigned long int n)
-+{
-+ return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
-+}
-+
-+#ifdef _LIBC
-+/* Alias for function name in GNU C Library. */
-+weak_alias (__ngettext, ngettext);
-+#endif
---- lrzsz-0.12.20.safe/intl/os2compat.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/os2compat.c 2004-09-12 14:40:34.539720120 -0400
-@@ -0,0 +1,98 @@
-+/* OS/2 compatibility functions.
-+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 OS2_AWARE
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/param.h>
-+
-+/* A version of getenv() that works from DLLs */
-+extern unsigned long DosScanEnv (const unsigned char *pszName, unsigned char **ppszValue);
-+
-+char *
-+_nl_getenv (const char *name)
-+{
-+ unsigned char *value;
-+ if (DosScanEnv (name, &value))
-+ return NULL;
-+ else
-+ return value;
-+}
-+
-+/* A fixed size buffer. */
-+char libintl_nl_default_dirname[MAXPATHLEN+1];
-+
-+char *_nlos2_libdir = NULL;
-+char *_nlos2_localealiaspath = NULL;
-+char *_nlos2_localedir = NULL;
-+
-+static __attribute__((constructor)) void
-+nlos2_initialize ()
-+{
-+ char *root = getenv ("UNIXROOT");
-+ char *gnulocaledir = getenv ("GNULOCALEDIR");
-+
-+ _nlos2_libdir = gnulocaledir;
-+ if (!_nlos2_libdir)
-+ {
-+ if (root)
-+ {
-+ size_t sl = strlen (root);
-+ _nlos2_libdir = (char *) malloc (sl + strlen (LIBDIR) + 1);
-+ memcpy (_nlos2_libdir, root, sl);
-+ memcpy (_nlos2_libdir + sl, LIBDIR, strlen (LIBDIR) + 1);
-+ }
-+ else
-+ _nlos2_libdir = LIBDIR;
-+ }
-+
-+ _nlos2_localealiaspath = gnulocaledir;
-+ if (!_nlos2_localealiaspath)
-+ {
-+ if (root)
-+ {
-+ size_t sl = strlen (root);
-+ _nlos2_localealiaspath = (char *) malloc (sl + strlen (LOCALE_ALIAS_PATH) + 1);
-+ memcpy (_nlos2_localealiaspath, root, sl);
-+ memcpy (_nlos2_localealiaspath + sl, LOCALE_ALIAS_PATH, strlen (LOCALE_ALIAS_PATH) + 1);
-+ }
-+ else
-+ _nlos2_localealiaspath = LOCALE_ALIAS_PATH;
-+ }
-+
-+ _nlos2_localedir = gnulocaledir;
-+ if (!_nlos2_localedir)
-+ {
-+ if (root)
-+ {
-+ size_t sl = strlen (root);
-+ _nlos2_localedir = (char *) malloc (sl + strlen (LOCALEDIR) + 1);
-+ memcpy (_nlos2_localedir, root, sl);
-+ memcpy (_nlos2_localedir + sl, LOCALEDIR, strlen (LOCALEDIR) + 1);
-+ }
-+ else
-+ _nlos2_localedir = LOCALEDIR;
-+ }
-+
-+ if (strlen (_nlos2_localedir) <= MAXPATHLEN)
-+ strcpy (libintl_nl_default_dirname, _nlos2_localedir);
-+}
---- lrzsz-0.12.20.safe/intl/os2compat.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/os2compat.h 2004-09-12 14:40:34.544719360 -0400
-@@ -0,0 +1,46 @@
-+/* OS/2 compatibility defines.
-+ This file is intended to be included from config.h
-+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* When included from os2compat.h we need all the original definitions */
-+#ifndef OS2_AWARE
-+
-+#undef LIBDIR
-+#define LIBDIR _nlos2_libdir
-+extern char *_nlos2_libdir;
-+
-+#undef LOCALEDIR
-+#define LOCALEDIR _nlos2_localedir
-+extern char *_nlos2_localedir;
-+
-+#undef LOCALE_ALIAS_PATH
-+#define LOCALE_ALIAS_PATH _nlos2_localealiaspath
-+extern char *_nlos2_localealiaspath;
-+
-+#endif
-+
-+#undef HAVE_STRCASECMP
-+#define HAVE_STRCASECMP 1
-+#define strcasecmp stricmp
-+#define strncasecmp strnicmp
-+
-+/* We have our own getenv() which works even if library is compiled as DLL */
-+#define getenv _nl_getenv
-+
-+/* Older versions of gettext used -1 as the value of LC_MESSAGES */
-+#define LC_MESSAGES_COMPAT (-1)
---- lrzsz-0.12.20.safe/intl/osdep.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/osdep.c 2004-09-12 14:40:34.550718448 -0400
-@@ -0,0 +1,24 @@
-+/* OS dependent parts of libintl.
-+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with this program; if not, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+ USA. */
-+
-+#if defined __EMX__
-+# include "os2compat.c"
-+#else
-+/* Avoid AIX compiler warning. */
-+typedef int dummy;
-+#endif
---- lrzsz-0.12.20.safe/intl/plural.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/plural.c 2004-09-12 14:40:36.571411256 -0400
-@@ -0,0 +1,1490 @@
-+/* A Bison parser, made from plural.y
-+ by GNU bison 1.35. */
-+
-+#define YYBISON 1 /* Identify Bison output. */
-+
-+#define yyparse __gettextparse
-+#define yylex __gettextlex
-+#define yyerror __gettexterror
-+#define yylval __gettextlval
-+#define yychar __gettextchar
-+#define yydebug __gettextdebug
-+#define yynerrs __gettextnerrs
-+# define EQUOP2 257
-+# define CMPOP2 258
-+# define ADDOP2 259
-+# define MULOP2 260
-+# define NUMBER 261
-+
-+#line 1 "plural.y"
-+
-+/* Expression parsing for plural form selection.
-+ Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
-+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* The bison generated parser uses alloca. AIX 3 forces us to put this
-+ declaration at the beginning of the file. The declaration in bison's
-+ skeleton file comes too late. This must come before <config.h>
-+ because <config.h> may include arbitrary system headers. */
-+#if defined _AIX && !defined __GNUC__
-+ #pragma alloca
-+#endif
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <stddef.h>
-+#include <stdlib.h>
-+#include "plural-exp.h"
-+
-+/* The main function generated by the parser is called __gettextparse,
-+ but we want it to be called PLURAL_PARSE. */
-+#ifndef _LIBC
-+# define __gettextparse PLURAL_PARSE
-+#endif
-+
-+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
-+#define YYPARSE_PARAM arg
-+
-+#line 49 "plural.y"
-+#ifndef YYSTYPE
-+typedef union {
-+ unsigned long int num;
-+ enum operator op;
-+ struct expression *exp;
-+} yystype;
-+# define YYSTYPE yystype
-+# define YYSTYPE_IS_TRIVIAL 1
-+#endif
-+#line 55 "plural.y"
-+
-+/* Prototypes for local functions. */
-+static int yylex (YYSTYPE *lval, const char **pexp);
-+static void yyerror (const char *str);
-+
-+/* Allocation of expressions. */
-+
-+static struct expression *
-+new_exp (int nargs, enum operator op, struct expression * const *args)
-+{
-+ int i;
-+ struct expression *newp;
-+
-+ /* If any of the argument could not be malloc'ed, just return NULL. */
-+ for (i = nargs - 1; i >= 0; i--)
-+ if (args[i] == NULL)
-+ goto fail;
-+
-+ /* Allocate a new expression. */
-+ newp = (struct expression *) malloc (sizeof (*newp));
-+ if (newp != NULL)
-+ {
-+ newp->nargs = nargs;
-+ newp->operation = op;
-+ for (i = nargs - 1; i >= 0; i--)
-+ newp->val.args[i] = args[i];
-+ return newp;
-+ }
-+
-+ fail:
-+ for (i = nargs - 1; i >= 0; i--)
-+ FREE_EXPRESSION (args[i]);
-+
-+ return NULL;
-+}
-+
-+static inline struct expression *
-+new_exp_0 (enum operator op)
-+{
-+ return new_exp (0, op, NULL);
-+}
-+
-+static inline struct expression *
-+new_exp_1 (enum operator op, struct expression *right)
-+{
-+ struct expression *args[1];
-+
-+ args[0] = right;
-+ return new_exp (1, op, args);
-+}
-+
-+static struct expression *
-+new_exp_2 (enum operator op, struct expression *left, struct expression *right)
-+{
-+ struct expression *args[2];
-+
-+ args[0] = left;
-+ args[1] = right;
-+ return new_exp (2, op, args);
-+}
-+
-+static inline struct expression *
-+new_exp_3 (enum operator op, struct expression *bexp,
-+ struct expression *tbranch, struct expression *fbranch)
-+{
-+ struct expression *args[3];
-+
-+ args[0] = bexp;
-+ args[1] = tbranch;
-+ args[2] = fbranch;
-+ return new_exp (3, op, args);
-+}
-+
-+#ifndef YYDEBUG
-+# define YYDEBUG 0
-+#endif
-+
-+
-+
-+#define YYFINAL 27
-+#define YYFLAG -32768
-+#define YYNTBASE 16
-+
-+/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-+#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
-+
-+/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-+static const char yytranslate[] =
-+{
-+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 10, 2, 2, 2, 2, 5, 2,
-+ 14, 15, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 12, 2,
-+ 2, 2, 2, 3, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 13, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 4, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 1, 6, 7, 8,
-+ 9, 11
-+};
-+
-+#if YYDEBUG
-+static const short yyprhs[] =
-+{
-+ 0, 0, 2, 8, 12, 16, 20, 24, 28, 32,
-+ 35, 37, 39
-+};
-+static const short yyrhs[] =
-+{
-+ 17, 0, 17, 3, 17, 12, 17, 0, 17, 4,
-+ 17, 0, 17, 5, 17, 0, 17, 6, 17, 0,
-+ 17, 7, 17, 0, 17, 8, 17, 0, 17, 9,
-+ 17, 0, 10, 17, 0, 13, 0, 11, 0, 14,
-+ 17, 15, 0
-+};
-+
-+#endif
-+
-+#if YYDEBUG
-+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-+static const short yyrline[] =
-+{
-+ 0, 150, 158, 162, 166, 170, 174, 178, 182, 186,
-+ 190, 194, 199
-+};
-+#endif
-+
-+
-+#if (YYDEBUG) || defined YYERROR_VERBOSE
-+
-+/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
-+static const char *const yytname[] =
-+{
-+ "$", "error", "$undefined.", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2",
-+ "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'",
-+ "start", "exp", 0
-+};
-+#endif
-+
-+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-+static const short yyr1[] =
-+{
-+ 0, 16, 17, 17, 17, 17, 17, 17, 17, 17,
-+ 17, 17, 17
-+};
-+
-+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-+static const short yyr2[] =
-+{
-+ 0, 1, 5, 3, 3, 3, 3, 3, 3, 2,
-+ 1, 1, 3
-+};
-+
-+/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-+ doesn't specify something else to do. Zero means the default is an
-+ error. */
-+static const short yydefact[] =
-+{
-+ 0, 0, 11, 10, 0, 1, 9, 0, 0, 0,
-+ 0, 0, 0, 0, 0, 12, 0, 3, 4, 5,
-+ 6, 7, 8, 0, 2, 0, 0, 0
-+};
-+
-+static const short yydefgoto[] =
-+{
-+ 25, 5
-+};
-+
-+static const short yypact[] =
-+{
-+ -9, -9,-32768,-32768, -9, 34,-32768, 11, -9, -9,
-+ -9, -9, -9, -9, -9,-32768, 24, 39, 43, 16,
-+ 26, -3,-32768, -9, 34, 21, 53,-32768
-+};
-+
-+static const short yypgoto[] =
-+{
-+ -32768, -1
-+};
-+
-+
-+#define YYLAST 53
-+
-+
-+static const short yytable[] =
-+{
-+ 6, 1, 2, 7, 3, 4, 14, 16, 17, 18,
-+ 19, 20, 21, 22, 8, 9, 10, 11, 12, 13,
-+ 14, 26, 24, 12, 13, 14, 15, 8, 9, 10,
-+ 11, 12, 13, 14, 13, 14, 23, 8, 9, 10,
-+ 11, 12, 13, 14, 10, 11, 12, 13, 14, 11,
-+ 12, 13, 14, 27
-+};
-+
-+static const short yycheck[] =
-+{
-+ 1, 10, 11, 4, 13, 14, 9, 8, 9, 10,
-+ 11, 12, 13, 14, 3, 4, 5, 6, 7, 8,
-+ 9, 0, 23, 7, 8, 9, 15, 3, 4, 5,
-+ 6, 7, 8, 9, 8, 9, 12, 3, 4, 5,
-+ 6, 7, 8, 9, 5, 6, 7, 8, 9, 6,
-+ 7, 8, 9, 0
-+};
-+#define YYPURE 1
-+
-+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-+#line 3 "/usr/local/share/bison/bison.simple"
-+
-+/* Skeleton output parser for bison,
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
-+ Foundation, Inc.
-+
-+ 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, 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. */
-+
-+/* As a special exception, when this file is copied by Bison into a
-+ Bison output file, you may use that output file without restriction.
-+ This special exception was added by the Free Software Foundation
-+ in version 1.24 of Bison. */
-+
-+/* This is the parser code that is written into each bison parser when
-+ the %semantic_parser declaration is not specified in the grammar.
-+ It was written by Richard Stallman by simplifying the hairy parser
-+ used when %semantic_parser is specified. */
-+
-+/* All symbols defined below should begin with yy or YY, to avoid
-+ infringing on user name space. This should be done even for local
-+ variables, as they might otherwise be expanded by user macros.
-+ There are some unavoidable exceptions within include files to
-+ define necessary library symbols; they are noted "INFRINGES ON
-+ USER NAME SPACE" below. */
-+
-+#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
-+
-+/* The parser invokes alloca or malloc; define the necessary symbols. */
-+
-+# if YYSTACK_USE_ALLOCA
-+# define YYSTACK_ALLOC alloca
-+# else
-+# ifndef YYSTACK_USE_ALLOCA
-+# if defined (alloca) || defined (_ALLOCA_H)
-+# define YYSTACK_ALLOC alloca
-+# else
-+# ifdef __GNUC__
-+# define YYSTACK_ALLOC __builtin_alloca
-+# endif
-+# endif
-+# endif
-+# endif
-+
-+# ifdef YYSTACK_ALLOC
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-+# else
-+# if defined (__STDC__) || defined (__cplusplus)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# endif
-+# define YYSTACK_ALLOC malloc
-+# define YYSTACK_FREE free
-+# endif
-+#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
-+
-+
-+#if (! defined (yyoverflow) \
-+ && (! defined (__cplusplus) \
-+ || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-+
-+/* A type that is properly aligned for any stack member. */
-+union yyalloc
-+{
-+ short yyss;
-+ YYSTYPE yyvs;
-+# if YYLSP_NEEDED
-+ YYLTYPE yyls;
-+# endif
-+};
-+
-+/* The size of the maximum gap between one aligned stack and the next. */
-+# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
-+
-+/* The size of an array large to enough to hold all stacks, each with
-+ N elements. */
-+# if YYLSP_NEEDED
-+# define YYSTACK_BYTES(N) \
-+ ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
-+ + 2 * YYSTACK_GAP_MAX)
-+# else
-+# define YYSTACK_BYTES(N) \
-+ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ + YYSTACK_GAP_MAX)
-+# endif
-+
-+/* Copy COUNT objects from FROM to TO. The source and destination do
-+ not overlap. */
-+# ifndef YYCOPY
-+# if 1 < __GNUC__
-+# define YYCOPY(To, From, Count) \
-+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-+# else
-+# define YYCOPY(To, From, Count) \
-+ do \
-+ { \
-+ register YYSIZE_T yyi; \
-+ for (yyi = 0; yyi < (Count); yyi++) \
-+ (To)[yyi] = (From)[yyi]; \
-+ } \
-+ while (0)
-+# endif
-+# endif
-+
-+/* Relocate STACK from its old location to the new one. The
-+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
-+ elements in the stack, and YYPTR gives the new location of the
-+ stack. Advance YYPTR to a properly aligned location for the next
-+ stack. */
-+# define YYSTACK_RELOCATE(Stack) \
-+ do \
-+ { \
-+ YYSIZE_T yynewbytes; \
-+ YYCOPY (&yyptr->Stack, Stack, yysize); \
-+ Stack = &yyptr->Stack; \
-+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
-+ yyptr += yynewbytes / sizeof (*yyptr); \
-+ } \
-+ while (0)
-+
-+#endif
-+
-+
-+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-+# define YYSIZE_T __SIZE_TYPE__
-+#endif
-+#if ! defined (YYSIZE_T) && defined (size_t)
-+# define YYSIZE_T size_t
-+#endif
-+#if ! defined (YYSIZE_T)
-+# if defined (__STDC__) || defined (__cplusplus)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# endif
-+#endif
-+#if ! defined (YYSIZE_T)
-+# define YYSIZE_T unsigned int
-+#endif
-+
-+#define yyerrok (yyerrstatus = 0)
-+#define yyclearin (yychar = YYEMPTY)
-+#define YYEMPTY -2
-+#define YYEOF 0
-+#define YYACCEPT goto yyacceptlab
-+#define YYABORT goto yyabortlab
-+#define YYERROR goto yyerrlab1
-+/* Like YYERROR except do call yyerror. This remains here temporarily
-+ to ease the transition to the new meaning of YYERROR, for GCC.
-+ Once GCC version 2 has supplanted version 1, this can go. */
-+#define YYFAIL goto yyerrlab
-+#define YYRECOVERING() (!!yyerrstatus)
-+#define YYBACKUP(Token, Value) \
-+do \
-+ if (yychar == YYEMPTY && yylen == 1) \
-+ { \
-+ yychar = (Token); \
-+ yylval = (Value); \
-+ yychar1 = YYTRANSLATE (yychar); \
-+ YYPOPSTACK; \
-+ goto yybackup; \
-+ } \
-+ else \
-+ { \
-+ yyerror ("syntax error: cannot back up"); \
-+ YYERROR; \
-+ } \
-+while (0)
-+
-+#define YYTERROR 1
-+#define YYERRCODE 256
-+
-+
-+/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-+ are run).
-+
-+ When YYLLOC_DEFAULT is run, CURRENT is set the location of the
-+ first token. By default, to implement support for ranges, extend
-+ its range to the last symbol. */
-+
-+#ifndef YYLLOC_DEFAULT
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ Current.last_line = Rhs[N].last_line; \
-+ Current.last_column = Rhs[N].last_column;
-+#endif
-+
-+
-+/* YYLEX -- calling `yylex' with the right arguments. */
-+
-+#if YYPURE
-+# if YYLSP_NEEDED
-+# ifdef YYLEX_PARAM
-+# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
-+# else
-+# define YYLEX yylex (&yylval, &yylloc)
-+# endif
-+# else /* !YYLSP_NEEDED */
-+# ifdef YYLEX_PARAM
-+# define YYLEX yylex (&yylval, YYLEX_PARAM)
-+# else
-+# define YYLEX yylex (&yylval)
-+# endif
-+# endif /* !YYLSP_NEEDED */
-+#else /* !YYPURE */
-+# define YYLEX yylex ()
-+#endif /* !YYPURE */
-+
-+
-+/* Enable debugging if requested. */
-+#if YYDEBUG
-+
-+# ifndef YYFPRINTF
-+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYFPRINTF fprintf
-+# endif
-+
-+# define YYDPRINTF(Args) \
-+do { \
-+ if (yydebug) \
-+ YYFPRINTF Args; \
-+} while (0)
-+/* Nonzero means print parse trace. It is left uninitialized so that
-+ multiple parsers can coexist. */
-+int yydebug;
-+#else /* !YYDEBUG */
-+# define YYDPRINTF(Args)
-+#endif /* !YYDEBUG */
-+
-+/* YYINITDEPTH -- initial size of the parser's stacks. */
-+#ifndef YYINITDEPTH
-+# define YYINITDEPTH 200
-+#endif
-+
-+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-+ if the built-in stack extension method is used).
-+
-+ Do not make this value too large; the results are undefined if
-+ SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ evaluated with infinite-precision integer arithmetic. */
-+
-+#if YYMAXDEPTH == 0
-+# undef YYMAXDEPTH
-+#endif
-+
-+#ifndef YYMAXDEPTH
-+# define YYMAXDEPTH 10000
-+#endif
-+
-+#ifdef YYERROR_VERBOSE
-+
-+# ifndef yystrlen
-+# if defined (__GLIBC__) && defined (_STRING_H)
-+# define yystrlen strlen
-+# else
-+/* Return the length of YYSTR. */
-+static YYSIZE_T
-+# if defined (__STDC__) || defined (__cplusplus)
-+yystrlen (const char *yystr)
-+# else
-+yystrlen (yystr)
-+ const char *yystr;
-+# endif
-+{
-+ register const char *yys = yystr;
-+
-+ while (*yys++ != '\0')
-+ continue;
-+
-+ return yys - yystr - 1;
-+}
-+# endif
-+# endif
-+
-+# ifndef yystpcpy
-+# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# define yystpcpy stpcpy
-+# else
-+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-+ YYDEST. */
-+static char *
-+# if defined (__STDC__) || defined (__cplusplus)
-+yystpcpy (char *yydest, const char *yysrc)
-+# else
-+yystpcpy (yydest, yysrc)
-+ char *yydest;
-+ const char *yysrc;
-+# endif
-+{
-+ register char *yyd = yydest;
-+ register const char *yys = yysrc;
-+
-+ while ((*yyd++ = *yys++) != '\0')
-+ continue;
-+
-+ return yyd - 1;
-+}
-+# endif
-+# endif
-+#endif
-+
-+#line 315 "/usr/local/share/bison/bison.simple"
-+
-+
-+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-+ into yyparse. The argument should have type void *.
-+ It should actually point to an object.
-+ Grammar actions can access the variable by casting it
-+ to the proper pointer type. */
-+
-+#ifdef YYPARSE_PARAM
-+# if defined (__STDC__) || defined (__cplusplus)
-+# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-+# define YYPARSE_PARAM_DECL
-+# else
-+# define YYPARSE_PARAM_ARG YYPARSE_PARAM
-+# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-+# endif
-+#else /* !YYPARSE_PARAM */
-+# define YYPARSE_PARAM_ARG
-+# define YYPARSE_PARAM_DECL
-+#endif /* !YYPARSE_PARAM */
-+
-+/* Prevent warning if -Wstrict-prototypes. */
-+#ifdef __GNUC__
-+# ifdef YYPARSE_PARAM
-+int yyparse (void *);
-+# else
-+int yyparse (void);
-+# endif
-+#endif
-+
-+/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
-+ variables are global, or local to YYPARSE. */
-+
-+#define YY_DECL_NON_LSP_VARIABLES \
-+/* The lookahead symbol. */ \
-+int yychar; \
-+ \
-+/* The semantic value of the lookahead symbol. */ \
-+YYSTYPE yylval; \
-+ \
-+/* Number of parse errors so far. */ \
-+int yynerrs;
-+
-+#if YYLSP_NEEDED
-+# define YY_DECL_VARIABLES \
-+YY_DECL_NON_LSP_VARIABLES \
-+ \
-+/* Location data for the lookahead symbol. */ \
-+YYLTYPE yylloc;
-+#else
-+# define YY_DECL_VARIABLES \
-+YY_DECL_NON_LSP_VARIABLES
-+#endif
-+
-+
-+/* If nonreentrant, generate the variables here. */
-+
-+#if !YYPURE
-+YY_DECL_VARIABLES
-+#endif /* !YYPURE */
-+
-+int
-+yyparse (YYPARSE_PARAM_ARG)
-+ YYPARSE_PARAM_DECL
-+{
-+ /* If reentrant, generate the variables here. */
-+#if YYPURE
-+ YY_DECL_VARIABLES
-+#endif /* !YYPURE */
-+
-+ register int yystate;
-+ register int yyn;
-+ int yyresult;
-+ /* Number of tokens to shift before error messages enabled. */
-+ int yyerrstatus;
-+ /* Lookahead token as an internal (translated) token number. */
-+ int yychar1 = 0;
-+
-+ /* Three stacks and their tools:
-+ `yyss': related to states,
-+ `yyvs': related to semantic values,
-+ `yyls': related to locations.
-+
-+ Refer to the stacks thru separate pointers, to allow yyoverflow
-+ to reallocate them elsewhere. */
-+
-+ /* The state stack. */
-+ short yyssa[YYINITDEPTH];
-+ short *yyss = yyssa;
-+ register short *yyssp;
-+
-+ /* The semantic value stack. */
-+ YYSTYPE yyvsa[YYINITDEPTH];
-+ YYSTYPE *yyvs = yyvsa;
-+ register YYSTYPE *yyvsp;
-+
-+#if YYLSP_NEEDED
-+ /* The location stack. */
-+ YYLTYPE yylsa[YYINITDEPTH];
-+ YYLTYPE *yyls = yylsa;
-+ YYLTYPE *yylsp;
-+#endif
-+
-+#if YYLSP_NEEDED
-+# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
-+#else
-+# define YYPOPSTACK (yyvsp--, yyssp--)
-+#endif
-+
-+ YYSIZE_T yystacksize = YYINITDEPTH;
-+
-+
-+ /* The variables used to return semantic value and location from the
-+ action routines. */
-+ YYSTYPE yyval;
-+#if YYLSP_NEEDED
-+ YYLTYPE yyloc;
-+#endif
-+
-+ /* When reducing, the number of symbols on the RHS of the reduced
-+ rule. */
-+ int yylen;
-+
-+ YYDPRINTF ((stderr, "Starting parse\n"));
-+
-+ yystate = 0;
-+ yyerrstatus = 0;
-+ yynerrs = 0;
-+ yychar = YYEMPTY; /* Cause a token to be read. */
-+
-+ /* Initialize stack pointers.
-+ Waste one element of value and location stack
-+ so that they stay on the same level as the state stack.
-+ The wasted elements are never initialized. */
-+
-+ yyssp = yyss;
-+ yyvsp = yyvs;
-+#if YYLSP_NEEDED
-+ yylsp = yyls;
-+#endif
-+ goto yysetstate;
-+
-+/*------------------------------------------------------------.
-+| yynewstate -- Push a new state, which is found in yystate. |
-+`------------------------------------------------------------*/
-+ yynewstate:
-+ /* In all cases, when you get here, the value and location stacks
-+ have just been pushed. so pushing a state here evens the stacks.
-+ */
-+ yyssp++;
-+
-+ yysetstate:
-+ *yyssp = yystate;
-+
-+ if (yyssp >= yyss + yystacksize - 1)
-+ {
-+ /* Get the current used size of the three stacks, in elements. */
-+ YYSIZE_T yysize = yyssp - yyss + 1;
-+
-+#ifdef yyoverflow
-+ {
-+ /* Give user a chance to reallocate the stack. Use copies of
-+ these so that the &'s don't force the real ones into
-+ memory. */
-+ YYSTYPE *yyvs1 = yyvs;
-+ short *yyss1 = yyss;
-+
-+ /* Each stack pointer address is followed by the size of the
-+ data in use in that stack, in bytes. */
-+# if YYLSP_NEEDED
-+ YYLTYPE *yyls1 = yyls;
-+ /* This used to be a conditional around just the two extra args,
-+ but that might be undefined if yyoverflow is a macro. */
-+ yyoverflow ("parser stack overflow",
-+ &yyss1, yysize * sizeof (*yyssp),
-+ &yyvs1, yysize * sizeof (*yyvsp),
-+ &yyls1, yysize * sizeof (*yylsp),
-+ &yystacksize);
-+ yyls = yyls1;
-+# else
-+ yyoverflow ("parser stack overflow",
-+ &yyss1, yysize * sizeof (*yyssp),
-+ &yyvs1, yysize * sizeof (*yyvsp),
-+ &yystacksize);
-+# endif
-+ yyss = yyss1;
-+ yyvs = yyvs1;
-+ }
-+#else /* no yyoverflow */
-+# ifndef YYSTACK_RELOCATE
-+ goto yyoverflowlab;
-+# else
-+ /* Extend the stack our own way. */
-+ if (yystacksize >= YYMAXDEPTH)
-+ goto yyoverflowlab;
-+ yystacksize *= 2;
-+ if (yystacksize > YYMAXDEPTH)
-+ yystacksize = YYMAXDEPTH;
-+
-+ {
-+ short *yyss1 = yyss;
-+ union yyalloc *yyptr =
-+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-+ if (! yyptr)
-+ goto yyoverflowlab;
-+ YYSTACK_RELOCATE (yyss);
-+ YYSTACK_RELOCATE (yyvs);
-+# if YYLSP_NEEDED
-+ YYSTACK_RELOCATE (yyls);
-+# endif
-+# undef YYSTACK_RELOCATE
-+ if (yyss1 != yyssa)
-+ YYSTACK_FREE (yyss1);
-+ }
-+# endif
-+#endif /* no yyoverflow */
-+
-+ yyssp = yyss + yysize - 1;
-+ yyvsp = yyvs + yysize - 1;
-+#if YYLSP_NEEDED
-+ yylsp = yyls + yysize - 1;
-+#endif
-+
-+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-+ (unsigned long int) yystacksize));
-+
-+ if (yyssp >= yyss + yystacksize - 1)
-+ YYABORT;
-+ }
-+
-+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-+
-+ goto yybackup;
-+
-+
-+/*-----------.
-+| yybackup. |
-+`-----------*/
-+yybackup:
-+
-+/* Do appropriate processing given the current state. */
-+/* Read a lookahead token if we need one and don't already have one. */
-+/* yyresume: */
-+
-+ /* First try to decide what to do without reference to lookahead token. */
-+
-+ yyn = yypact[yystate];
-+ if (yyn == YYFLAG)
-+ goto yydefault;
-+
-+ /* Not known => get a lookahead token if don't already have one. */
-+
-+ /* yychar is either YYEMPTY or YYEOF
-+ or a valid token in external form. */
-+
-+ if (yychar == YYEMPTY)
-+ {
-+ YYDPRINTF ((stderr, "Reading a token: "));
-+ yychar = YYLEX;
-+ }
-+
-+ /* Convert token to internal form (in yychar1) for indexing tables with */
-+
-+ if (yychar <= 0) /* This means end of input. */
-+ {
-+ yychar1 = 0;
-+ yychar = YYEOF; /* Don't call YYLEX any more */
-+
-+ YYDPRINTF ((stderr, "Now at end of input.\n"));
-+ }
-+ else
-+ {
-+ yychar1 = YYTRANSLATE (yychar);
-+
-+#if YYDEBUG
-+ /* We have to keep this `#if YYDEBUG', since we use variables
-+ which are defined only if `YYDEBUG' is set. */
-+ if (yydebug)
-+ {
-+ YYFPRINTF (stderr, "Next token is %d (%s",
-+ yychar, yytname[yychar1]);
-+ /* Give the individual parser a way to print the precise
-+ meaning of a token, for further debugging info. */
-+# ifdef YYPRINT
-+ YYPRINT (stderr, yychar, yylval);
-+# endif
-+ YYFPRINTF (stderr, ")\n");
-+ }
-+#endif
-+ }
-+
-+ yyn += yychar1;
-+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
-+ goto yydefault;
-+
-+ yyn = yytable[yyn];
-+
-+ /* yyn is what to do for this token type in this state.
-+ Negative => reduce, -yyn is rule number.
-+ Positive => shift, yyn is new state.
-+ New state is final state => don't bother to shift,
-+ just return success.
-+ 0, or most negative number => error. */
-+
-+ if (yyn < 0)
-+ {
-+ if (yyn == YYFLAG)
-+ goto yyerrlab;
-+ yyn = -yyn;
-+ goto yyreduce;
-+ }
-+ else if (yyn == 0)
-+ goto yyerrlab;
-+
-+ if (yyn == YYFINAL)
-+ YYACCEPT;
-+
-+ /* Shift the lookahead token. */
-+ YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-+ yychar, yytname[yychar1]));
-+
-+ /* Discard the token being shifted unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
-+ *++yyvsp = yylval;
-+#if YYLSP_NEEDED
-+ *++yylsp = yylloc;
-+#endif
-+
-+ /* Count tokens shifted since error; after three, turn off error
-+ status. */
-+ if (yyerrstatus)
-+ yyerrstatus--;
-+
-+ yystate = yyn;
-+ goto yynewstate;
-+
-+
-+/*-----------------------------------------------------------.
-+| yydefault -- do the default action for the current state. |
-+`-----------------------------------------------------------*/
-+yydefault:
-+ yyn = yydefact[yystate];
-+ if (yyn == 0)
-+ goto yyerrlab;
-+ goto yyreduce;
-+
-+
-+/*-----------------------------.
-+| yyreduce -- Do a reduction. |
-+`-----------------------------*/
-+yyreduce:
-+ /* yyn is the number of a rule to reduce with. */
-+ yylen = yyr2[yyn];
-+
-+ /* If YYLEN is nonzero, implement the default value of the action:
-+ `$$ = $1'.
-+
-+ Otherwise, the following line sets YYVAL to the semantic value of
-+ the lookahead token. This behavior is undocumented and Bison
-+ users should not rely upon it. Assigning to YYVAL
-+ unconditionally makes the parser a bit smaller, and it avoids a
-+ GCC warning that YYVAL may be used uninitialized. */
-+ yyval = yyvsp[1-yylen];
-+
-+#if YYLSP_NEEDED
-+ /* Similarly for the default location. Let the user run additional
-+ commands if for instance locations are ranges. */
-+ yyloc = yylsp[1-yylen];
-+ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-+#endif
-+
-+#if YYDEBUG
-+ /* We have to keep this `#if YYDEBUG', since we use variables which
-+ are defined only if `YYDEBUG' is set. */
-+ if (yydebug)
-+ {
-+ int yyi;
-+
-+ YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-+ yyn, yyrline[yyn]);
-+
-+ /* Print the symbols being reduced, and their result. */
-+ for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-+ YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-+ YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-+ }
-+#endif
-+
-+ switch (yyn) {
-+
-+case 1:
-+#line 151 "plural.y"
-+{
-+ if (yyvsp[0].exp == NULL)
-+ YYABORT;
-+ ((struct parse_args *) arg)->res = yyvsp[0].exp;
-+ }
-+ break;
-+case 2:
-+#line 159 "plural.y"
-+{
-+ yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
-+ }
-+ break;
-+case 3:
-+#line 163 "plural.y"
-+{
-+ yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
-+ }
-+ break;
-+case 4:
-+#line 167 "plural.y"
-+{
-+ yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
-+ }
-+ break;
-+case 5:
-+#line 171 "plural.y"
-+{
-+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
-+ }
-+ break;
-+case 6:
-+#line 175 "plural.y"
-+{
-+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
-+ }
-+ break;
-+case 7:
-+#line 179 "plural.y"
-+{
-+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
-+ }
-+ break;
-+case 8:
-+#line 183 "plural.y"
-+{
-+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
-+ }
-+ break;
-+case 9:
-+#line 187 "plural.y"
-+{
-+ yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
-+ }
-+ break;
-+case 10:
-+#line 191 "plural.y"
-+{
-+ yyval.exp = new_exp_0 (var);
-+ }
-+ break;
-+case 11:
-+#line 195 "plural.y"
-+{
-+ if ((yyval.exp = new_exp_0 (num)) != NULL)
-+ yyval.exp->val.num = yyvsp[0].num;
-+ }
-+ break;
-+case 12:
-+#line 200 "plural.y"
-+{
-+ yyval.exp = yyvsp[-1].exp;
-+ }
-+ break;
-+}
-+
-+#line 705 "/usr/local/share/bison/bison.simple"
-+
-+
-+ yyvsp -= yylen;
-+ yyssp -= yylen;
-+#if YYLSP_NEEDED
-+ yylsp -= yylen;
-+#endif
-+
-+#if YYDEBUG
-+ if (yydebug)
-+ {
-+ short *yyssp1 = yyss - 1;
-+ YYFPRINTF (stderr, "state stack now");
-+ while (yyssp1 != yyssp)
-+ YYFPRINTF (stderr, " %d", *++yyssp1);
-+ YYFPRINTF (stderr, "\n");
-+ }
-+#endif
-+
-+ *++yyvsp = yyval;
-+#if YYLSP_NEEDED
-+ *++yylsp = yyloc;
-+#endif
-+
-+ /* Now `shift' the result of the reduction. Determine what state
-+ that goes to, based on the state we popped back to and the rule
-+ number reduced by. */
-+
-+ yyn = yyr1[yyn];
-+
-+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-+ yystate = yytable[yystate];
-+ else
-+ yystate = yydefgoto[yyn - YYNTBASE];
-+
-+ goto yynewstate;
-+
-+
-+/*------------------------------------.
-+| yyerrlab -- here on detecting error |
-+`------------------------------------*/
-+yyerrlab:
-+ /* If not already recovering from an error, report this error. */
-+ if (!yyerrstatus)
-+ {
-+ ++yynerrs;
-+
-+#ifdef YYERROR_VERBOSE
-+ yyn = yypact[yystate];
-+
-+ if (yyn > YYFLAG && yyn < YYLAST)
-+ {
-+ YYSIZE_T yysize = 0;
-+ char *yymsg;
-+ int yyx, yycount;
-+
-+ yycount = 0;
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ for (yyx = yyn < 0 ? -yyn : 0;
-+ yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-+ if (yycheck[yyx + yyn] == yyx)
-+ yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-+ yysize += yystrlen ("parse error, unexpected ") + 1;
-+ yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
-+ yymsg = (char *) YYSTACK_ALLOC (yysize);
-+ if (yymsg != 0)
-+ {
-+ char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-+ yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
-+
-+ if (yycount < 5)
-+ {
-+ yycount = 0;
-+ for (yyx = yyn < 0 ? -yyn : 0;
-+ yyx < (int) (sizeof (yytname) / sizeof (char *));
-+ yyx++)
-+ if (yycheck[yyx + yyn] == yyx)
-+ {
-+ const char *yyq = ! yycount ? ", expecting " : " or ";
-+ yyp = yystpcpy (yyp, yyq);
-+ yyp = yystpcpy (yyp, yytname[yyx]);
-+ yycount++;
-+ }
-+ }
-+ yyerror (yymsg);
-+ YYSTACK_FREE (yymsg);
-+ }
-+ else
-+ yyerror ("parse error; also virtual memory exhausted");
-+ }
-+ else
-+#endif /* defined (YYERROR_VERBOSE) */
-+ yyerror ("parse error");
-+ }
-+ goto yyerrlab1;
-+
-+
-+/*--------------------------------------------------.
-+| yyerrlab1 -- error raised explicitly by an action |
-+`--------------------------------------------------*/
-+yyerrlab1:
-+ if (yyerrstatus == 3)
-+ {
-+ /* If just tried and failed to reuse lookahead token after an
-+ error, discard it. */
-+
-+ /* return failure if at end of input */
-+ if (yychar == YYEOF)
-+ YYABORT;
-+ YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-+ yychar, yytname[yychar1]));
-+ yychar = YYEMPTY;
-+ }
-+
-+ /* Else will try to reuse lookahead token after shifting the error
-+ token. */
-+
-+ yyerrstatus = 3; /* Each real token shifted decrements this */
-+
-+ goto yyerrhandle;
-+
-+
-+/*-------------------------------------------------------------------.
-+| yyerrdefault -- current state does not do anything special for the |
-+| error token. |
-+`-------------------------------------------------------------------*/
-+yyerrdefault:
-+#if 0
-+ /* This is wrong; only states that explicitly want error tokens
-+ should shift them. */
-+
-+ /* If its default is to accept any token, ok. Otherwise pop it. */
-+ yyn = yydefact[yystate];
-+ if (yyn)
-+ goto yydefault;
-+#endif
-+
-+
-+/*---------------------------------------------------------------.
-+| yyerrpop -- pop the current state because it cannot handle the |
-+| error token |
-+`---------------------------------------------------------------*/
-+yyerrpop:
-+ if (yyssp == yyss)
-+ YYABORT;
-+ yyvsp--;
-+ yystate = *--yyssp;
-+#if YYLSP_NEEDED
-+ yylsp--;
-+#endif
-+
-+#if YYDEBUG
-+ if (yydebug)
-+ {
-+ short *yyssp1 = yyss - 1;
-+ YYFPRINTF (stderr, "Error: state stack now");
-+ while (yyssp1 != yyssp)
-+ YYFPRINTF (stderr, " %d", *++yyssp1);
-+ YYFPRINTF (stderr, "\n");
-+ }
-+#endif
-+
-+/*--------------.
-+| yyerrhandle. |
-+`--------------*/
-+yyerrhandle:
-+ yyn = yypact[yystate];
-+ if (yyn == YYFLAG)
-+ goto yyerrdefault;
-+
-+ yyn += YYTERROR;
-+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-+ goto yyerrdefault;
-+
-+ yyn = yytable[yyn];
-+ if (yyn < 0)
-+ {
-+ if (yyn == YYFLAG)
-+ goto yyerrpop;
-+ yyn = -yyn;
-+ goto yyreduce;
-+ }
-+ else if (yyn == 0)
-+ goto yyerrpop;
-+
-+ if (yyn == YYFINAL)
-+ YYACCEPT;
-+
-+ YYDPRINTF ((stderr, "Shifting error token, "));
-+
-+ *++yyvsp = yylval;
-+#if YYLSP_NEEDED
-+ *++yylsp = yylloc;
-+#endif
-+
-+ yystate = yyn;
-+ goto yynewstate;
-+
-+
-+/*-------------------------------------.
-+| yyacceptlab -- YYACCEPT comes here. |
-+`-------------------------------------*/
-+yyacceptlab:
-+ yyresult = 0;
-+ goto yyreturn;
-+
-+/*-----------------------------------.
-+| yyabortlab -- YYABORT comes here. |
-+`-----------------------------------*/
-+yyabortlab:
-+ yyresult = 1;
-+ goto yyreturn;
-+
-+/*---------------------------------------------.
-+| yyoverflowab -- parser overflow comes here. |
-+`---------------------------------------------*/
-+yyoverflowlab:
-+ yyerror ("parser stack overflow");
-+ yyresult = 2;
-+ /* Fall through. */
-+
-+yyreturn:
-+#ifndef yyoverflow
-+ if (yyss != yyssa)
-+ YYSTACK_FREE (yyss);
-+#endif
-+ return yyresult;
-+}
-+#line 205 "plural.y"
-+
-+
-+void
-+internal_function
-+FREE_EXPRESSION (struct expression *exp)
-+{
-+ if (exp == NULL)
-+ return;
-+
-+ /* Handle the recursive case. */
-+ switch (exp->nargs)
-+ {
-+ case 3:
-+ FREE_EXPRESSION (exp->val.args[2]);
-+ /* FALLTHROUGH */
-+ case 2:
-+ FREE_EXPRESSION (exp->val.args[1]);
-+ /* FALLTHROUGH */
-+ case 1:
-+ FREE_EXPRESSION (exp->val.args[0]);
-+ /* FALLTHROUGH */
-+ default:
-+ break;
-+ }
-+
-+ free (exp);
-+}
-+
-+
-+static int
-+yylex (YYSTYPE *lval, const char **pexp)
-+{
-+ const char *exp = *pexp;
-+ int result;
-+
-+ while (1)
-+ {
-+ if (exp[0] == '\0')
-+ {
-+ *pexp = exp;
-+ return YYEOF;
-+ }
-+
-+ if (exp[0] != ' ' && exp[0] != '\t')
-+ break;
-+
-+ ++exp;
-+ }
-+
-+ result = *exp++;
-+ switch (result)
-+ {
-+ case '0': case '1': case '2': case '3': case '4':
-+ case '5': case '6': case '7': case '8': case '9':
-+ {
-+ unsigned long int n = result - '0';
-+ while (exp[0] >= '0' && exp[0] <= '9')
-+ {
-+ n *= 10;
-+ n += exp[0] - '0';
-+ ++exp;
-+ }
-+ lval->num = n;
-+ result = NUMBER;
-+ }
-+ break;
-+
-+ case '=':
-+ if (exp[0] == '=')
-+ {
-+ ++exp;
-+ lval->op = equal;
-+ result = EQUOP2;
-+ }
-+ else
-+ result = YYERRCODE;
-+ break;
-+
-+ case '!':
-+ if (exp[0] == '=')
-+ {
-+ ++exp;
-+ lval->op = not_equal;
-+ result = EQUOP2;
-+ }
-+ break;
-+
-+ case '&':
-+ case '|':
-+ if (exp[0] == result)
-+ ++exp;
-+ else
-+ result = YYERRCODE;
-+ break;
-+
-+ case '<':
-+ if (exp[0] == '=')
-+ {
-+ ++exp;
-+ lval->op = less_or_equal;
-+ }
-+ else
-+ lval->op = less_than;
-+ result = CMPOP2;
-+ break;
-+
-+ case '>':
-+ if (exp[0] == '=')
-+ {
-+ ++exp;
-+ lval->op = greater_or_equal;
-+ }
-+ else
-+ lval->op = greater_than;
-+ result = CMPOP2;
-+ break;
-+
-+ case '*':
-+ lval->op = mult;
-+ result = MULOP2;
-+ break;
-+
-+ case '/':
-+ lval->op = divide;
-+ result = MULOP2;
-+ break;
-+
-+ case '%':
-+ lval->op = module;
-+ result = MULOP2;
-+ break;
-+
-+ case '+':
-+ lval->op = plus;
-+ result = ADDOP2;
-+ break;
-+
-+ case '-':
-+ lval->op = minus;
-+ result = ADDOP2;
-+ break;
-+
-+ case 'n':
-+ case '?':
-+ case ':':
-+ case '(':
-+ case ')':
-+ /* Nothing, just return the character. */
-+ break;
-+
-+ case ';':
-+ case '\n':
-+ case '\0':
-+ /* Be safe and let the user call this function again. */
-+ --exp;
-+ result = YYEOF;
-+ break;
-+
-+ default:
-+ result = YYERRCODE;
-+#if YYDEBUG != 0
-+ --exp;
-+#endif
-+ break;
-+ }
-+
-+ *pexp = exp;
-+
-+ return result;
-+}
-+
-+
-+static void
-+yyerror (const char *str)
-+{
-+ /* Do nothing. We don't print error messages here. */
-+}
---- lrzsz-0.12.20.safe/intl/plural-exp.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/plural-exp.c 2004-09-12 14:40:34.578714192 -0400
-@@ -0,0 +1,154 @@
-+/* Expression parsing for plural form selection.
-+ Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
-+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <ctype.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#include "plural-exp.h"
-+
-+#if (defined __GNUC__ && !defined __APPLE_CC__) \
-+ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
-+
-+/* These structs are the constant expression for the germanic plural
-+ form determination. It represents the expression "n != 1". */
-+static const struct expression plvar =
-+{
-+ .nargs = 0,
-+ .operation = var,
-+};
-+static const struct expression plone =
-+{
-+ .nargs = 0,
-+ .operation = num,
-+ .val =
-+ {
-+ .num = 1
-+ }
-+};
-+struct expression GERMANIC_PLURAL =
-+{
-+ .nargs = 2,
-+ .operation = not_equal,
-+ .val =
-+ {
-+ .args =
-+ {
-+ [0] = (struct expression *) &plvar,
-+ [1] = (struct expression *) &plone
-+ }
-+ }
-+};
-+
-+# define INIT_GERMANIC_PLURAL()
-+
-+#else
-+
-+/* For compilers without support for ISO C 99 struct/union initializers:
-+ Initialization at run-time. */
-+
-+static struct expression plvar;
-+static struct expression plone;
-+struct expression GERMANIC_PLURAL;
-+
-+static void
-+init_germanic_plural ()
-+{
-+ if (plone.val.num == 0)
-+ {
-+ plvar.nargs = 0;
-+ plvar.operation = var;
-+
-+ plone.nargs = 0;
-+ plone.operation = num;
-+ plone.val.num = 1;
-+
-+ GERMANIC_PLURAL.nargs = 2;
-+ GERMANIC_PLURAL.operation = not_equal;
-+ GERMANIC_PLURAL.val.args[0] = &plvar;
-+ GERMANIC_PLURAL.val.args[1] = &plone;
-+ }
-+}
-+
-+# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
-+
-+#endif
-+
-+void
-+internal_function
-+EXTRACT_PLURAL_EXPRESSION (const char *nullentry, struct expression **pluralp,
-+ unsigned long int *npluralsp)
-+{
-+ if (nullentry != NULL)
-+ {
-+ const char *plural;
-+ const char *nplurals;
-+
-+ plural = strstr (nullentry, "plural=");
-+ nplurals = strstr (nullentry, "nplurals=");
-+ if (plural == NULL || nplurals == NULL)
-+ goto no_plural;
-+ else
-+ {
-+ char *endp;
-+ unsigned long int n;
-+ struct parse_args args;
-+
-+ /* First get the number. */
-+ nplurals += 9;
-+ while (*nplurals != '\0' && isspace ((unsigned char) *nplurals))
-+ ++nplurals;
-+ if (!(*nplurals >= '0' && *nplurals <= '9'))
-+ goto no_plural;
-+#if defined HAVE_STRTOUL || defined _LIBC
-+ n = strtoul (nplurals, &endp, 10);
-+#else
-+ for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
-+ n = n * 10 + (*endp - '0');
-+#endif
-+ if (nplurals == endp)
-+ goto no_plural;
-+ *npluralsp = n;
-+
-+ /* Due to the restrictions bison imposes onto the interface of the
-+ scanner function we have to put the input string and the result
-+ passed up from the parser into the same structure which address
-+ is passed down to the parser. */
-+ plural += 7;
-+ args.cp = plural;
-+ if (PLURAL_PARSE (&args) != 0)
-+ goto no_plural;
-+ *pluralp = args.res;
-+ }
-+ }
-+ else
-+ {
-+ /* By default we are using the Germanic form: singular form only
-+ for `one', the plural form otherwise. Yes, this is also what
-+ English is using since English is a Germanic language. */
-+ no_plural:
-+ INIT_GERMANIC_PLURAL ();
-+ *pluralp = &GERMANIC_PLURAL;
-+ *npluralsp = 2;
-+ }
-+}
---- lrzsz-0.12.20.safe/intl/plural-exp.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/plural-exp.h 2004-09-12 14:40:34.584713280 -0400
-@@ -0,0 +1,118 @@
-+/* Expression parsing and evaluation for plural form selection.
-+ Copyright (C) 2000-2003 Free Software Foundation, Inc.
-+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _PLURAL_EXP_H
-+#define _PLURAL_EXP_H
-+
-+#ifndef internal_function
-+# define internal_function
-+#endif
-+
-+#ifndef attribute_hidden
-+# define attribute_hidden
-+#endif
-+
-+
-+/* This is the representation of the expressions to determine the
-+ plural form. */
-+struct expression
-+{
-+ int nargs; /* Number of arguments. */
-+ enum operator
-+ {
-+ /* Without arguments: */
-+ var, /* The variable "n". */
-+ num, /* Decimal number. */
-+ /* Unary operators: */
-+ lnot, /* Logical NOT. */
-+ /* Binary operators: */
-+ mult, /* Multiplication. */
-+ divide, /* Division. */
-+ module, /* Modulo operation. */
-+ plus, /* Addition. */
-+ minus, /* Subtraction. */
-+ less_than, /* Comparison. */
-+ greater_than, /* Comparison. */
-+ less_or_equal, /* Comparison. */
-+ greater_or_equal, /* Comparison. */
-+ equal, /* Comparison for equality. */
-+ not_equal, /* Comparison for inequality. */
-+ land, /* Logical AND. */
-+ lor, /* Logical OR. */
-+ /* Ternary operators: */
-+ qmop /* Question mark operator. */
-+ } operation;
-+ union
-+ {
-+ unsigned long int num; /* Number value for `num'. */
-+ struct expression *args[3]; /* Up to three arguments. */
-+ } val;
-+};
-+
-+/* This is the data structure to pass information to the parser and get
-+ the result in a thread-safe way. */
-+struct parse_args
-+{
-+ const char *cp;
-+ struct expression *res;
-+};
-+
-+
-+/* Names for the libintl functions are a problem. This source code is used
-+ 1. in the GNU C Library library,
-+ 2. in the GNU libintl library,
-+ 3. in the GNU gettext tools.
-+ The function names in each situation must be different, to allow for
-+ binary incompatible changes in 'struct expression'. Furthermore,
-+ 1. in the GNU C Library library, the names have a __ prefix,
-+ 2.+3. in the GNU libintl library and in the GNU gettext tools, the names
-+ must follow ANSI C and not start with __.
-+ So we have to distinguish the three cases. */
-+#ifdef _LIBC
-+# define FREE_EXPRESSION __gettext_free_exp
-+# define PLURAL_PARSE __gettextparse
-+# define GERMANIC_PLURAL __gettext_germanic_plural
-+# define EXTRACT_PLURAL_EXPRESSION __gettext_extract_plural
-+#elif defined (IN_LIBINTL)
-+# define FREE_EXPRESSION libintl_gettext_free_exp
-+# define PLURAL_PARSE libintl_gettextparse
-+# define GERMANIC_PLURAL libintl_gettext_germanic_plural
-+# define EXTRACT_PLURAL_EXPRESSION libintl_gettext_extract_plural
-+#else
-+# define FREE_EXPRESSION free_plural_expression
-+# define PLURAL_PARSE parse_plural_expression
-+# define GERMANIC_PLURAL germanic_plural
-+# define EXTRACT_PLURAL_EXPRESSION extract_plural_expression
-+#endif
-+
-+extern void FREE_EXPRESSION (struct expression *exp)
-+ internal_function;
-+extern int PLURAL_PARSE (void *arg);
-+extern struct expression GERMANIC_PLURAL attribute_hidden;
-+extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
-+ struct expression **pluralp,
-+ unsigned long int *npluralsp)
-+ internal_function;
-+
-+#if !defined (_LIBC) && !defined (IN_LIBINTL)
-+extern unsigned long int plural_eval (struct expression *pexp,
-+ unsigned long int n);
-+#endif
-+
-+#endif /* _PLURAL_EXP_H */
---- lrzsz-0.12.20.safe/intl/plural.y 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/plural.y 2004-09-12 14:40:34.589712520 -0400
-@@ -0,0 +1,381 @@
-+%{
-+/* Expression parsing for plural form selection.
-+ Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
-+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* The bison generated parser uses alloca. AIX 3 forces us to put this
-+ declaration at the beginning of the file. The declaration in bison's
-+ skeleton file comes too late. This must come before <config.h>
-+ because <config.h> may include arbitrary system headers. */
-+#if defined _AIX && !defined __GNUC__
-+ #pragma alloca
-+#endif
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <stddef.h>
-+#include <stdlib.h>
-+#include "plural-exp.h"
-+
-+/* The main function generated by the parser is called __gettextparse,
-+ but we want it to be called PLURAL_PARSE. */
-+#ifndef _LIBC
-+# define __gettextparse PLURAL_PARSE
-+#endif
-+
-+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
-+#define YYPARSE_PARAM arg
-+%}
-+%pure_parser
-+%expect 7
-+
-+%union {
-+ unsigned long int num;
-+ enum operator op;
-+ struct expression *exp;
-+}
-+
-+%{
-+/* Prototypes for local functions. */
-+static int yylex (YYSTYPE *lval, const char **pexp);
-+static void yyerror (const char *str);
-+
-+/* Allocation of expressions. */
-+
-+static struct expression *
-+new_exp (int nargs, enum operator op, struct expression * const *args)
-+{
-+ int i;
-+ struct expression *newp;
-+
-+ /* If any of the argument could not be malloc'ed, just return NULL. */
-+ for (i = nargs - 1; i >= 0; i--)
-+ if (args[i] == NULL)
-+ goto fail;
-+
-+ /* Allocate a new expression. */
-+ newp = (struct expression *) malloc (sizeof (*newp));
-+ if (newp != NULL)
-+ {
-+ newp->nargs = nargs;
-+ newp->operation = op;
-+ for (i = nargs - 1; i >= 0; i--)
-+ newp->val.args[i] = args[i];
-+ return newp;
-+ }
-+
-+ fail:
-+ for (i = nargs - 1; i >= 0; i--)
-+ FREE_EXPRESSION (args[i]);
-+
-+ return NULL;
-+}
-+
-+static inline struct expression *
-+new_exp_0 (enum operator op)
-+{
-+ return new_exp (0, op, NULL);
-+}
-+
-+static inline struct expression *
-+new_exp_1 (enum operator op, struct expression *right)
-+{
-+ struct expression *args[1];
-+
-+ args[0] = right;
-+ return new_exp (1, op, args);
-+}
-+
-+static struct expression *
-+new_exp_2 (enum operator op, struct expression *left, struct expression *right)
-+{
-+ struct expression *args[2];
-+
-+ args[0] = left;
-+ args[1] = right;
-+ return new_exp (2, op, args);
-+}
-+
-+static inline struct expression *
-+new_exp_3 (enum operator op, struct expression *bexp,
-+ struct expression *tbranch, struct expression *fbranch)
-+{
-+ struct expression *args[3];
-+
-+ args[0] = bexp;
-+ args[1] = tbranch;
-+ args[2] = fbranch;
-+ return new_exp (3, op, args);
-+}
-+
-+%}
-+
-+/* This declares that all operators have the same associativity and the
-+ precedence order as in C. See [Harbison, Steele: C, A Reference Manual].
-+ There is no unary minus and no bitwise operators.
-+ Operators with the same syntactic behaviour have been merged into a single
-+ token, to save space in the array generated by bison. */
-+%right '?' /* ? */
-+%left '|' /* || */
-+%left '&' /* && */
-+%left EQUOP2 /* == != */
-+%left CMPOP2 /* < > <= >= */
-+%left ADDOP2 /* + - */
-+%left MULOP2 /* * / % */
-+%right '!' /* ! */
-+
-+%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2
-+%token <num> NUMBER
-+%type <exp> exp
-+
-+%%
-+
-+start: exp
-+ {
-+ if ($1 == NULL)
-+ YYABORT;
-+ ((struct parse_args *) arg)->res = $1;
-+ }
-+ ;
-+
-+exp: exp '?' exp ':' exp
-+ {
-+ $$ = new_exp_3 (qmop, $1, $3, $5);
-+ }
-+ | exp '|' exp
-+ {
-+ $$ = new_exp_2 (lor, $1, $3);
-+ }
-+ | exp '&' exp
-+ {
-+ $$ = new_exp_2 (land, $1, $3);
-+ }
-+ | exp EQUOP2 exp
-+ {
-+ $$ = new_exp_2 ($2, $1, $3);
-+ }
-+ | exp CMPOP2 exp
-+ {
-+ $$ = new_exp_2 ($2, $1, $3);
-+ }
-+ | exp ADDOP2 exp
-+ {
-+ $$ = new_exp_2 ($2, $1, $3);
-+ }
-+ | exp MULOP2 exp
-+ {
-+ $$ = new_exp_2 ($2, $1, $3);
-+ }
-+ | '!' exp
-+ {
-+ $$ = new_exp_1 (lnot, $2);
-+ }
-+ | 'n'
-+ {
-+ $$ = new_exp_0 (var);
-+ }
-+ | NUMBER
-+ {
-+ if (($$ = new_exp_0 (num)) != NULL)
-+ $$->val.num = $1;
-+ }
-+ | '(' exp ')'
-+ {
-+ $$ = $2;
-+ }
-+ ;
-+
-+%%
-+
-+void
-+internal_function
-+FREE_EXPRESSION (struct expression *exp)
-+{
-+ if (exp == NULL)
-+ return;
-+
-+ /* Handle the recursive case. */
-+ switch (exp->nargs)
-+ {
-+ case 3:
-+ FREE_EXPRESSION (exp->val.args[2]);
-+ /* FALLTHROUGH */
-+ case 2:
-+ FREE_EXPRESSION (exp->val.args[1]);
-+ /* FALLTHROUGH */
-+ case 1:
-+ FREE_EXPRESSION (exp->val.args[0]);
-+ /* FALLTHROUGH */
-+ default:
-+ break;
-+ }
-+
-+ free (exp);
-+}
-+
-+
-+static int
-+yylex (YYSTYPE *lval, const char **pexp)
-+{
-+ const char *exp = *pexp;
-+ int result;
-+
-+ while (1)
-+ {
-+ if (exp[0] == '\0')
-+ {
-+ *pexp = exp;
-+ return YYEOF;
-+ }
-+
-+ if (exp[0] != ' ' && exp[0] != '\t')
-+ break;
-+
-+ ++exp;
-+ }
-+
-+ result = *exp++;
-+ switch (result)
-+ {
-+ case '0': case '1': case '2': case '3': case '4':
-+ case '5': case '6': case '7': case '8': case '9':
-+ {
-+ unsigned long int n = result - '0';
-+ while (exp[0] >= '0' && exp[0] <= '9')
-+ {
-+ n *= 10;
-+ n += exp[0] - '0';
-+ ++exp;
-+ }
-+ lval->num = n;
-+ result = NUMBER;
-+ }
-+ break;
-+
-+ case '=':
-+ if (exp[0] == '=')
-+ {
-+ ++exp;
-+ lval->op = equal;
-+ result = EQUOP2;
-+ }
-+ else
-+ result = YYERRCODE;
-+ break;
-+
-+ case '!':
-+ if (exp[0] == '=')
-+ {
-+ ++exp;
-+ lval->op = not_equal;
-+ result = EQUOP2;
-+ }
-+ break;
-+
-+ case '&':
-+ case '|':
-+ if (exp[0] == result)
-+ ++exp;
-+ else
-+ result = YYERRCODE;
-+ break;
-+
-+ case '<':
-+ if (exp[0] == '=')
-+ {
-+ ++exp;
-+ lval->op = less_or_equal;
-+ }
-+ else
-+ lval->op = less_than;
-+ result = CMPOP2;
-+ break;
-+
-+ case '>':
-+ if (exp[0] == '=')
-+ {
-+ ++exp;
-+ lval->op = greater_or_equal;
-+ }
-+ else
-+ lval->op = greater_than;
-+ result = CMPOP2;
-+ break;
-+
-+ case '*':
-+ lval->op = mult;
-+ result = MULOP2;
-+ break;
-+
-+ case '/':
-+ lval->op = divide;
-+ result = MULOP2;
-+ break;
-+
-+ case '%':
-+ lval->op = module;
-+ result = MULOP2;
-+ break;
-+
-+ case '+':
-+ lval->op = plus;
-+ result = ADDOP2;
-+ break;
-+
-+ case '-':
-+ lval->op = minus;
-+ result = ADDOP2;
-+ break;
-+
-+ case 'n':
-+ case '?':
-+ case ':':
-+ case '(':
-+ case ')':
-+ /* Nothing, just return the character. */
-+ break;
-+
-+ case ';':
-+ case '\n':
-+ case '\0':
-+ /* Be safe and let the user call this function again. */
-+ --exp;
-+ result = YYEOF;
-+ break;
-+
-+ default:
-+ result = YYERRCODE;
-+#if YYDEBUG != 0
-+ --exp;
-+#endif
-+ break;
-+ }
-+
-+ *pexp = exp;
-+
-+ return result;
-+}
-+
-+
-+static void
-+yyerror (const char *str)
-+{
-+ /* Do nothing. We don't print error messages here. */
-+}
---- lrzsz-0.12.20.safe/intl/po2tbl.sed.in 1998-04-26 09:20:52.000000000 -0400
-+++ lrzsz-0.12.20/intl/po2tbl.sed.in 1969-12-31 19:00:00.000000000 -0500
-@@ -1,102 +0,0 @@
--# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
--# Copyright (C) 1995 Free Software Foundation, Inc.
--# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
--#
--# 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, 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.
--#
--1 {
-- i\
--/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
--\
--#if HAVE_CONFIG_H\
--# include <config.h>\
--#endif\
--\
--#include "libgettext.h"\
--\
--const struct _msg_ent _msg_tbl[] = {
-- h
-- s/.*/0/
-- x
--}
--#
--# Write msgid entries in C array form.
--#
--/^msgid/ {
-- s/msgid[ ]*\(".*"\)/ {\1/
-- tb
--# Append the next line
-- :b
-- N
--# Look whether second part is continuation line.
-- s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
--# Yes, then branch.
-- ta
--# Because we assume that the input file correctly formed the line
--# just read cannot be again be a msgid line. So it's safe to ignore
--# it.
-- s/\(.*\)\n.*/\1/
-- bc
--# We found a continuation line. But before printing insert '\'.
-- :a
-- s/\(.*\)\(\n.*\)/\1\\\2/
-- P
--# We cannot use D here.
-- s/.*\n\(.*\)/\1/
--# Some buggy seds do not clear the `successful substitution since last ``t'''
--# flag on `N', so we do a `t' here to clear it.
-- tb
--# Not reached
-- :c
-- x
--# The following nice solution is by
--# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
-- td
--# Increment a decimal number in pattern space.
--# First hide trailing `9' digits.
-- :d
-- s/9\(_*\)$/_\1/
-- td
--# Assure at least one digit is available.
-- s/^\(_*\)$/0\1/
--# Increment the last digit.
-- s/8\(_*\)$/9\1/
-- s/7\(_*\)$/8\1/
-- s/6\(_*\)$/7\1/
-- s/5\(_*\)$/6\1/
-- s/4\(_*\)$/5\1/
-- s/3\(_*\)$/4\1/
-- s/2\(_*\)$/3\1/
-- s/1\(_*\)$/2\1/
-- s/0\(_*\)$/1\1/
--# Convert the hidden `9' digits to `0's.
-- s/_/0/g
-- x
-- G
-- s/\(.*\)\n\([0-9]*\)/\1, \2},/
-- s/\(.*\)"$/\1/
-- p
--}
--#
--# Last line.
--#
--$ {
-- i\
--};\
--
-- g
-- s/0*\(.*\)/int _msg_tbl_length = \1;/p
--}
--d
---- lrzsz-0.12.20.safe/intl/printf-args.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/printf-args.c 2004-09-12 14:40:34.595711608 -0400
-@@ -0,0 +1,119 @@
-+/* Decomposed printf argument list.
-+ Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+/* Specification. */
-+#include "printf-args.h"
-+
-+#ifdef STATIC
-+STATIC
-+#endif
-+int
-+printf_fetchargs (va_list args, arguments *a)
-+{
-+ size_t i;
-+ argument *ap;
-+
-+ for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++)
-+ switch (ap->type)
-+ {
-+ case TYPE_SCHAR:
-+ ap->a.a_schar = va_arg (args, /*signed char*/ int);
-+ break;
-+ case TYPE_UCHAR:
-+ ap->a.a_uchar = va_arg (args, /*unsigned char*/ int);
-+ break;
-+ case TYPE_SHORT:
-+ ap->a.a_short = va_arg (args, /*short*/ int);
-+ break;
-+ case TYPE_USHORT:
-+ ap->a.a_ushort = va_arg (args, /*unsigned short*/ int);
-+ break;
-+ case TYPE_INT:
-+ ap->a.a_int = va_arg (args, int);
-+ break;
-+ case TYPE_UINT:
-+ ap->a.a_uint = va_arg (args, unsigned int);
-+ break;
-+ case TYPE_LONGINT:
-+ ap->a.a_longint = va_arg (args, long int);
-+ break;
-+ case TYPE_ULONGINT:
-+ ap->a.a_ulongint = va_arg (args, unsigned long int);
-+ break;
-+#ifdef HAVE_LONG_LONG
-+ case TYPE_LONGLONGINT:
-+ ap->a.a_longlongint = va_arg (args, long long int);
-+ break;
-+ case TYPE_ULONGLONGINT:
-+ ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
-+ break;
-+#endif
-+ case TYPE_DOUBLE:
-+ ap->a.a_double = va_arg (args, double);
-+ break;
-+#ifdef HAVE_LONG_DOUBLE
-+ case TYPE_LONGDOUBLE:
-+ ap->a.a_longdouble = va_arg (args, long double);
-+ break;
-+#endif
-+ case TYPE_CHAR:
-+ ap->a.a_char = va_arg (args, int);
-+ break;
-+#ifdef HAVE_WINT_T
-+ case TYPE_WIDE_CHAR:
-+ ap->a.a_wide_char = va_arg (args, wint_t);
-+ break;
-+#endif
-+ case TYPE_STRING:
-+ ap->a.a_string = va_arg (args, const char *);
-+ break;
-+#ifdef HAVE_WCHAR_T
-+ case TYPE_WIDE_STRING:
-+ ap->a.a_wide_string = va_arg (args, const wchar_t *);
-+ break;
-+#endif
-+ case TYPE_POINTER:
-+ ap->a.a_pointer = va_arg (args, void *);
-+ break;
-+ case TYPE_COUNT_SCHAR_POINTER:
-+ ap->a.a_count_schar_pointer = va_arg (args, signed char *);
-+ break;
-+ case TYPE_COUNT_SHORT_POINTER:
-+ ap->a.a_count_short_pointer = va_arg (args, short *);
-+ break;
-+ case TYPE_COUNT_INT_POINTER:
-+ ap->a.a_count_int_pointer = va_arg (args, int *);
-+ break;
-+ case TYPE_COUNT_LONGINT_POINTER:
-+ ap->a.a_count_longint_pointer = va_arg (args, long int *);
-+ break;
-+#ifdef HAVE_LONG_LONG
-+ case TYPE_COUNT_LONGLONGINT_POINTER:
-+ ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
-+ break;
-+#endif
-+ default:
-+ /* Unknown type. */
-+ return -1;
-+ }
-+ return 0;
-+}
---- lrzsz-0.12.20.safe/intl/printf-args.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/printf-args.h 2004-09-12 14:40:34.601710696 -0400
-@@ -0,0 +1,137 @@
-+/* Decomposed printf argument list.
-+ Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _PRINTF_ARGS_H
-+#define _PRINTF_ARGS_H
-+
-+/* Get size_t. */
-+#include <stddef.h>
-+
-+/* Get wchar_t. */
-+#ifdef HAVE_WCHAR_T
-+# include <stddef.h>
-+#endif
-+
-+/* Get wint_t. */
-+#ifdef HAVE_WINT_T
-+# include <wchar.h>
-+#endif
-+
-+/* Get va_list. */
-+#include <stdarg.h>
-+
-+
-+/* Argument types */
-+typedef enum
-+{
-+ TYPE_NONE,
-+ TYPE_SCHAR,
-+ TYPE_UCHAR,
-+ TYPE_SHORT,
-+ TYPE_USHORT,
-+ TYPE_INT,
-+ TYPE_UINT,
-+ TYPE_LONGINT,
-+ TYPE_ULONGINT,
-+#ifdef HAVE_LONG_LONG
-+ TYPE_LONGLONGINT,
-+ TYPE_ULONGLONGINT,
-+#endif
-+ TYPE_DOUBLE,
-+#ifdef HAVE_LONG_DOUBLE
-+ TYPE_LONGDOUBLE,
-+#endif
-+ TYPE_CHAR,
-+#ifdef HAVE_WINT_T
-+ TYPE_WIDE_CHAR,
-+#endif
-+ TYPE_STRING,
-+#ifdef HAVE_WCHAR_T
-+ TYPE_WIDE_STRING,
-+#endif
-+ TYPE_POINTER,
-+ TYPE_COUNT_SCHAR_POINTER,
-+ TYPE_COUNT_SHORT_POINTER,
-+ TYPE_COUNT_INT_POINTER,
-+ TYPE_COUNT_LONGINT_POINTER
-+#ifdef HAVE_LONG_LONG
-+, TYPE_COUNT_LONGLONGINT_POINTER
-+#endif
-+} arg_type;
-+
-+/* Polymorphic argument */
-+typedef struct
-+{
-+ arg_type type;
-+ union
-+ {
-+ signed char a_schar;
-+ unsigned char a_uchar;
-+ short a_short;
-+ unsigned short a_ushort;
-+ int a_int;
-+ unsigned int a_uint;
-+ long int a_longint;
-+ unsigned long int a_ulongint;
-+#ifdef HAVE_LONG_LONG
-+ long long int a_longlongint;
-+ unsigned long long int a_ulonglongint;
-+#endif
-+ float a_float;
-+ double a_double;
-+#ifdef HAVE_LONG_DOUBLE
-+ long double a_longdouble;
-+#endif
-+ int a_char;
-+#ifdef HAVE_WINT_T
-+ wint_t a_wide_char;
-+#endif
-+ const char* a_string;
-+#ifdef HAVE_WCHAR_T
-+ const wchar_t* a_wide_string;
-+#endif
-+ void* a_pointer;
-+ signed char * a_count_schar_pointer;
-+ short * a_count_short_pointer;
-+ int * a_count_int_pointer;
-+ long int * a_count_longint_pointer;
-+#ifdef HAVE_LONG_LONG
-+ long long int * a_count_longlongint_pointer;
-+#endif
-+ }
-+ a;
-+}
-+argument;
-+
-+typedef struct
-+{
-+ size_t count;
-+ argument *arg;
-+}
-+arguments;
-+
-+
-+/* Fetch the arguments, putting them into a. */
-+#ifdef STATIC
-+STATIC
-+#else
-+extern
-+#endif
-+int printf_fetchargs (va_list args, arguments *a);
-+
-+#endif /* _PRINTF_ARGS_H */
---- lrzsz-0.12.20.safe/intl/printf.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/printf.c 2004-09-12 14:40:34.607709784 -0400
-@@ -0,0 +1,371 @@
-+/* Formatted output to strings, using POSIX/XSI format strings with positions.
-+ Copyright (C) 2003 Free Software Foundation, Inc.
-+ Written by Bruno Haible <bruno@clisp.org>, 2003.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#ifdef __GNUC__
-+# define alloca __builtin_alloca
-+# define HAVE_ALLOCA 1
-+#else
-+# ifdef _MSC_VER
-+# include <malloc.h>
-+# define alloca _alloca
-+# else
-+# if defined HAVE_ALLOCA_H || defined _LIBC
-+# include <alloca.h>
-+# else
-+# ifdef _AIX
-+ #pragma alloca
-+# else
-+# ifndef alloca
-+char *alloca ();
-+# endif
-+# endif
-+# endif
-+# endif
-+#endif
-+
-+#include <stdio.h>
-+
-+#if !HAVE_POSIX_PRINTF
-+
-+#include <stdlib.h>
-+#include <string.h>
-+
-+/* When building a DLL, we must export some functions. Note that because
-+ the functions are only defined for binary backward compatibility, we
-+ don't need to use __declspec(dllimport) in any case. */
-+#if defined _MSC_VER && BUILDING_DLL
-+# define DLL_EXPORTED __declspec(dllexport)
-+#else
-+# define DLL_EXPORTED
-+#endif
-+
-+#define STATIC static
-+
-+/* Define auxiliary functions declared in "printf-args.h". */
-+#include "printf-args.c"
-+
-+/* Define auxiliary functions declared in "printf-parse.h". */
-+#include "printf-parse.c"
-+
-+/* Define functions declared in "vasnprintf.h". */
-+#define vasnprintf libintl_vasnprintf
-+#include "vasnprintf.c"
-+#if 0 /* not needed */
-+#define asnprintf libintl_asnprintf
-+#include "asnprintf.c"
-+#endif
-+
-+DLL_EXPORTED
-+int
-+libintl_vfprintf (FILE *stream, const char *format, va_list args)
-+{
-+ if (strchr (format, '$') == NULL)
-+ return vfprintf (stream, format, args);
-+ else
-+ {
-+ size_t length;
-+ char *result = libintl_vasnprintf (NULL, &length, format, args);
-+ int retval = -1;
-+ if (result != NULL)
-+ {
-+ if (fwrite (result, 1, length, stream) == length)
-+ retval = length;
-+ free (result);
-+ }
-+ return retval;
-+ }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_fprintf (FILE *stream, const char *format, ...)
-+{
-+ va_list args;
-+ int retval;
-+
-+ va_start (args, format);
-+ retval = libintl_vfprintf (stream, format, args);
-+ va_end (args);
-+ return retval;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_vprintf (const char *format, va_list args)
-+{
-+ return libintl_vfprintf (stdout, format, args);
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_printf (const char *format, ...)
-+{
-+ va_list args;
-+ int retval;
-+
-+ va_start (args, format);
-+ retval = libintl_vprintf (format, args);
-+ va_end (args);
-+ return retval;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_vsprintf (char *resultbuf, const char *format, va_list args)
-+{
-+ if (strchr (format, '$') == NULL)
-+ return vsprintf (resultbuf, format, args);
-+ else
-+ {
-+ size_t length = (size_t) ~0 / (4 * sizeof (char));
-+ char *result = libintl_vasnprintf (resultbuf, &length, format, args);
-+ if (result != resultbuf)
-+ {
-+ free (result);
-+ return -1;
-+ }
-+ else
-+ return length;
-+ }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_sprintf (char *resultbuf, const char *format, ...)
-+{
-+ va_list args;
-+ int retval;
-+
-+ va_start (args, format);
-+ retval = libintl_vsprintf (resultbuf, format, args);
-+ va_end (args);
-+ return retval;
-+}
-+
-+#if HAVE_SNPRINTF
-+
-+# if HAVE_DECL__SNPRINTF
-+ /* Windows. */
-+# define system_vsnprintf _vsnprintf
-+# else
-+ /* Unix. */
-+# define system_vsnprintf vsnprintf
-+# endif
-+
-+DLL_EXPORTED
-+int
-+libintl_vsnprintf (char *resultbuf, size_t length, const char *format, va_list args)
-+{
-+ if (strchr (format, '$') == NULL)
-+ return system_vsnprintf (resultbuf, length, format, args);
-+ else
-+ {
-+ size_t maxlength = length;
-+ char *result = libintl_vasnprintf (resultbuf, &length, format, args);
-+ if (result != resultbuf)
-+ {
-+ if (maxlength > 0)
-+ {
-+ if (length < maxlength)
-+ abort ();
-+ memcpy (resultbuf, result, maxlength - 1);
-+ resultbuf[maxlength - 1] = '\0';
-+ }
-+ free (result);
-+ return -1;
-+ }
-+ else
-+ return length;
-+ }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_snprintf (char *resultbuf, size_t length, const char *format, ...)
-+{
-+ va_list args;
-+ int retval;
-+
-+ va_start (args, format);
-+ retval = libintl_vsnprintf (resultbuf, length, format, args);
-+ va_end (args);
-+ return retval;
-+}
-+
-+#endif
-+
-+#if HAVE_ASPRINTF
-+
-+DLL_EXPORTED
-+int
-+libintl_vasprintf (char **resultp, const char *format, va_list args)
-+{
-+ size_t length;
-+ char *result = libintl_vasnprintf (NULL, &length, format, args);
-+ if (result == NULL)
-+ return -1;
-+ *resultp = result;
-+ return length;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_asprintf (char **resultp, const char *format, ...)
-+{
-+ va_list args;
-+ int retval;
-+
-+ va_start (args, format);
-+ retval = libintl_vasprintf (resultp, format, args);
-+ va_end (args);
-+ return retval;
-+}
-+
-+#endif
-+
-+#if HAVE_FWPRINTF
-+
-+#include <wchar.h>
-+
-+#define WIDE_CHAR_VERSION 1
-+
-+/* Define auxiliary functions declared in "wprintf-parse.h". */
-+#include "printf-parse.c"
-+
-+/* Define functions declared in "vasnprintf.h". */
-+#define vasnwprintf libintl_vasnwprintf
-+#include "vasnprintf.c"
-+#if 0 /* not needed */
-+#define asnwprintf libintl_asnwprintf
-+#include "asnprintf.c"
-+#endif
-+
-+# if HAVE_DECL__SNWPRINTF
-+ /* Windows. */
-+# define system_vswprintf _vsnwprintf
-+# else
-+ /* Unix. */
-+# define system_vswprintf vswprintf
-+# endif
-+
-+DLL_EXPORTED
-+int
-+libintl_vfwprintf (FILE *stream, const wchar_t *format, va_list args)
-+{
-+ if (wcschr (format, '$') == NULL)
-+ return vfwprintf (stream, format, args);
-+ else
-+ {
-+ size_t length;
-+ wchar_t *result = libintl_vasnwprintf (NULL, &length, format, args);
-+ int retval = -1;
-+ if (result != NULL)
-+ {
-+ size_t i;
-+ for (i = 0; i < length; i++)
-+ if (fputwc (result[i], stream) == WEOF)
-+ break;
-+ if (i == length)
-+ retval = length;
-+ free (result);
-+ }
-+ return retval;
-+ }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_fwprintf (FILE *stream, const wchar_t *format, ...)
-+{
-+ va_list args;
-+ int retval;
-+
-+ va_start (args, format);
-+ retval = libintl_vfwprintf (stream, format, args);
-+ va_end (args);
-+ return retval;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_vwprintf (const wchar_t *format, va_list args)
-+{
-+ return libintl_vfwprintf (stdout, format, args);
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_wprintf (const wchar_t *format, ...)
-+{
-+ va_list args;
-+ int retval;
-+
-+ va_start (args, format);
-+ retval = libintl_vwprintf (format, args);
-+ va_end (args);
-+ return retval;
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_vswprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, va_list args)
-+{
-+ if (wcschr (format, '$') == NULL)
-+ return system_vswprintf (resultbuf, length, format, args);
-+ else
-+ {
-+ size_t maxlength = length;
-+ wchar_t *result = libintl_vasnwprintf (resultbuf, &length, format, args);
-+ if (result != resultbuf)
-+ {
-+ if (maxlength > 0)
-+ {
-+ if (length < maxlength)
-+ abort ();
-+ memcpy (resultbuf, result, (maxlength - 1) * sizeof (wchar_t));
-+ resultbuf[maxlength - 1] = 0;
-+ }
-+ free (result);
-+ return -1;
-+ }
-+ else
-+ return length;
-+ }
-+}
-+
-+DLL_EXPORTED
-+int
-+libintl_swprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, ...)
-+{
-+ va_list args;
-+ int retval;
-+
-+ va_start (args, format);
-+ retval = libintl_vswprintf (resultbuf, length, format, args);
-+ va_end (args);
-+ return retval;
-+}
-+
-+#endif
-+
-+#endif
---- lrzsz-0.12.20.safe/intl/printf-parse.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/printf-parse.c 2004-09-12 14:40:34.622707504 -0400
-@@ -0,0 +1,537 @@
-+/* Formatted output to strings.
-+ Copyright (C) 1999-2000, 2002-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+/* Specification. */
-+#if WIDE_CHAR_VERSION
-+# include "wprintf-parse.h"
-+#else
-+# include "printf-parse.h"
-+#endif
-+
-+/* Get size_t, NULL. */
-+#include <stddef.h>
-+
-+/* Get intmax_t. */
-+#if HAVE_STDINT_H_WITH_UINTMAX
-+# include <stdint.h>
-+#endif
-+#if HAVE_INTTYPES_H_WITH_UINTMAX
-+# include <inttypes.h>
-+#endif
-+
-+/* malloc(), realloc(), free(). */
-+#include <stdlib.h>
-+
-+/* Checked size_t computations. */
-+#include "xsize.h"
-+
-+#if WIDE_CHAR_VERSION
-+# define PRINTF_PARSE wprintf_parse
-+# define CHAR_T wchar_t
-+# define DIRECTIVE wchar_t_directive
-+# define DIRECTIVES wchar_t_directives
-+#else
-+# define PRINTF_PARSE printf_parse
-+# define CHAR_T char
-+# define DIRECTIVE char_directive
-+# define DIRECTIVES char_directives
-+#endif
-+
-+#ifdef STATIC
-+STATIC
-+#endif
-+int
-+PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
-+{
-+ const CHAR_T *cp = format; /* pointer into format */
-+ size_t arg_posn = 0; /* number of regular arguments consumed */
-+ size_t d_allocated; /* allocated elements of d->dir */
-+ size_t a_allocated; /* allocated elements of a->arg */
-+ size_t max_width_length = 0;
-+ size_t max_precision_length = 0;
-+
-+ d->count = 0;
-+ d_allocated = 1;
-+ d->dir = malloc (d_allocated * sizeof (DIRECTIVE));
-+ if (d->dir == NULL)
-+ /* Out of memory. */
-+ return -1;
-+
-+ a->count = 0;
-+ a_allocated = 0;
-+ a->arg = NULL;
-+
-+#define REGISTER_ARG(_index_,_type_) \
-+ { \
-+ size_t n = (_index_); \
-+ if (n >= a_allocated) \
-+ { \
-+ size_t memory_size; \
-+ argument *memory; \
-+ \
-+ a_allocated = xtimes (a_allocated, 2); \
-+ if (a_allocated <= n) \
-+ a_allocated = xsum (n, 1); \
-+ memory_size = xtimes (a_allocated, sizeof (argument)); \
-+ if (size_overflow_p (memory_size)) \
-+ /* Overflow, would lead to out of memory. */ \
-+ goto error; \
-+ memory = (a->arg \
-+ ? realloc (a->arg, memory_size) \
-+ : malloc (memory_size)); \
-+ if (memory == NULL) \
-+ /* Out of memory. */ \
-+ goto error; \
-+ a->arg = memory; \
-+ } \
-+ while (a->count <= n) \
-+ a->arg[a->count++].type = TYPE_NONE; \
-+ if (a->arg[n].type == TYPE_NONE) \
-+ a->arg[n].type = (_type_); \
-+ else if (a->arg[n].type != (_type_)) \
-+ /* Ambiguous type for positional argument. */ \
-+ goto error; \
-+ }
-+
-+ while (*cp != '\0')
-+ {
-+ CHAR_T c = *cp++;
-+ if (c == '%')
-+ {
-+ size_t arg_index = ARG_NONE;
-+ DIRECTIVE *dp = &d->dir[d->count];/* pointer to next directive */
-+
-+ /* Initialize the next directive. */
-+ dp->dir_start = cp - 1;
-+ dp->flags = 0;
-+ dp->width_start = NULL;
-+ dp->width_end = NULL;
-+ dp->width_arg_index = ARG_NONE;
-+ dp->precision_start = NULL;
-+ dp->precision_end = NULL;
-+ dp->precision_arg_index = ARG_NONE;
-+ dp->arg_index = ARG_NONE;
-+
-+ /* Test for positional argument. */
-+ if (*cp >= '0' && *cp <= '9')
-+ {
-+ const CHAR_T *np;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ ;
-+ if (*np == '$')
-+ {
-+ size_t n = 0;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ n = xsum (xtimes (n, 10), *np - '0');
-+ if (n == 0)
-+ /* Positional argument 0. */
-+ goto error;
-+ if (size_overflow_p (n))
-+ /* n too large, would lead to out of memory later. */
-+ goto error;
-+ arg_index = n - 1;
-+ cp = np + 1;
-+ }
-+ }
-+
-+ /* Read the flags. */
-+ for (;;)
-+ {
-+ if (*cp == '\'')
-+ {
-+ dp->flags |= FLAG_GROUP;
-+ cp++;
-+ }
-+ else if (*cp == '-')
-+ {
-+ dp->flags |= FLAG_LEFT;
-+ cp++;
-+ }
-+ else if (*cp == '+')
-+ {
-+ dp->flags |= FLAG_SHOWSIGN;
-+ cp++;
-+ }
-+ else if (*cp == ' ')
-+ {
-+ dp->flags |= FLAG_SPACE;
-+ cp++;
-+ }
-+ else if (*cp == '#')
-+ {
-+ dp->flags |= FLAG_ALT;
-+ cp++;
-+ }
-+ else if (*cp == '0')
-+ {
-+ dp->flags |= FLAG_ZERO;
-+ cp++;
-+ }
-+ else
-+ break;
-+ }
-+
-+ /* Parse the field width. */
-+ if (*cp == '*')
-+ {
-+ dp->width_start = cp;
-+ cp++;
-+ dp->width_end = cp;
-+ if (max_width_length < 1)
-+ max_width_length = 1;
-+
-+ /* Test for positional argument. */
-+ if (*cp >= '0' && *cp <= '9')
-+ {
-+ const CHAR_T *np;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ ;
-+ if (*np == '$')
-+ {
-+ size_t n = 0;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ n = xsum (xtimes (n, 10), *np - '0');
-+ if (n == 0)
-+ /* Positional argument 0. */
-+ goto error;
-+ if (size_overflow_p (n))
-+ /* n too large, would lead to out of memory later. */
-+ goto error;
-+ dp->width_arg_index = n - 1;
-+ cp = np + 1;
-+ }
-+ }
-+ if (dp->width_arg_index == ARG_NONE)
-+ {
-+ dp->width_arg_index = arg_posn++;
-+ if (dp->width_arg_index == ARG_NONE)
-+ /* arg_posn wrapped around. */
-+ goto error;
-+ }
-+ REGISTER_ARG (dp->width_arg_index, TYPE_INT);
-+ }
-+ else if (*cp >= '0' && *cp <= '9')
-+ {
-+ size_t width_length;
-+
-+ dp->width_start = cp;
-+ for (; *cp >= '0' && *cp <= '9'; cp++)
-+ ;
-+ dp->width_end = cp;
-+ width_length = dp->width_end - dp->width_start;
-+ if (max_width_length < width_length)
-+ max_width_length = width_length;
-+ }
-+
-+ /* Parse the precision. */
-+ if (*cp == '.')
-+ {
-+ cp++;
-+ if (*cp == '*')
-+ {
-+ dp->precision_start = cp - 1;
-+ cp++;
-+ dp->precision_end = cp;
-+ if (max_precision_length < 2)
-+ max_precision_length = 2;
-+
-+ /* Test for positional argument. */
-+ if (*cp >= '0' && *cp <= '9')
-+ {
-+ const CHAR_T *np;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ ;
-+ if (*np == '$')
-+ {
-+ size_t n = 0;
-+
-+ for (np = cp; *np >= '0' && *np <= '9'; np++)
-+ n = xsum (xtimes (n, 10), *np - '0');
-+ if (n == 0)
-+ /* Positional argument 0. */
-+ goto error;
-+ if (size_overflow_p (n))
-+ /* n too large, would lead to out of memory
-+ later. */
-+ goto error;
-+ dp->precision_arg_index = n - 1;
-+ cp = np + 1;
-+ }
-+ }
-+ if (dp->precision_arg_index == ARG_NONE)
-+ {
-+ dp->precision_arg_index = arg_posn++;
-+ if (dp->precision_arg_index == ARG_NONE)
-+ /* arg_posn wrapped around. */
-+ goto error;
-+ }
-+ REGISTER_ARG (dp->precision_arg_index, TYPE_INT);
-+ }
-+ else
-+ {
-+ size_t precision_length;
-+
-+ dp->precision_start = cp - 1;
-+ for (; *cp >= '0' && *cp <= '9'; cp++)
-+ ;
-+ dp->precision_end = cp;
-+ precision_length = dp->precision_end - dp->precision_start;
-+ if (max_precision_length < precision_length)
-+ max_precision_length = precision_length;
-+ }
-+ }
-+
-+ {
-+ arg_type type;
-+
-+ /* Parse argument type/size specifiers. */
-+ {
-+ int flags = 0;
-+
-+ for (;;)
-+ {
-+ if (*cp == 'h')
-+ {
-+ flags |= (1 << (flags & 1));
-+ cp++;
-+ }
-+ else if (*cp == 'L')
-+ {
-+ flags |= 4;
-+ cp++;
-+ }
-+ else if (*cp == 'l')
-+ {
-+ flags += 8;
-+ cp++;
-+ }
-+#ifdef HAVE_INTMAX_T
-+ else if (*cp == 'j')
-+ {
-+ if (sizeof (intmax_t) > sizeof (long))
-+ {
-+ /* intmax_t = long long */
-+ flags += 16;
-+ }
-+ else if (sizeof (intmax_t) > sizeof (int))
-+ {
-+ /* intmax_t = long */
-+ flags += 8;
-+ }
-+ cp++;
-+ }
-+#endif
-+ else if (*cp == 'z' || *cp == 'Z')
-+ {
-+ /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
-+ because the warning facility in gcc-2.95.2 understands
-+ only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */
-+ if (sizeof (size_t) > sizeof (long))
-+ {
-+ /* size_t = long long */
-+ flags += 16;
-+ }
-+ else if (sizeof (size_t) > sizeof (int))
-+ {
-+ /* size_t = long */
-+ flags += 8;
-+ }
-+ cp++;
-+ }
-+ else if (*cp == 't')
-+ {
-+ if (sizeof (ptrdiff_t) > sizeof (long))
-+ {
-+ /* ptrdiff_t = long long */
-+ flags += 16;
-+ }
-+ else if (sizeof (ptrdiff_t) > sizeof (int))
-+ {
-+ /* ptrdiff_t = long */
-+ flags += 8;
-+ }
-+ cp++;
-+ }
-+ else
-+ break;
-+ }
-+
-+ /* Read the conversion character. */
-+ c = *cp++;
-+ switch (c)
-+ {
-+ case 'd': case 'i':
-+#ifdef HAVE_LONG_LONG
-+ if (flags >= 16 || (flags & 4))
-+ type = TYPE_LONGLONGINT;
-+ else
-+#endif
-+ if (flags >= 8)
-+ type = TYPE_LONGINT;
-+ else if (flags & 2)
-+ type = TYPE_SCHAR;
-+ else if (flags & 1)
-+ type = TYPE_SHORT;
-+ else
-+ type = TYPE_INT;
-+ break;
-+ case 'o': case 'u': case 'x': case 'X':
-+#ifdef HAVE_LONG_LONG
-+ if (flags >= 16 || (flags & 4))
-+ type = TYPE_ULONGLONGINT;
-+ else
-+#endif
-+ if (flags >= 8)
-+ type = TYPE_ULONGINT;
-+ else if (flags & 2)
-+ type = TYPE_UCHAR;
-+ else if (flags & 1)
-+ type = TYPE_USHORT;
-+ else
-+ type = TYPE_UINT;
-+ break;
-+ case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
-+ case 'a': case 'A':
-+#ifdef HAVE_LONG_DOUBLE
-+ if (flags >= 16 || (flags & 4))
-+ type = TYPE_LONGDOUBLE;
-+ else
-+#endif
-+ type = TYPE_DOUBLE;
-+ break;
-+ case 'c':
-+ if (flags >= 8)
-+#ifdef HAVE_WINT_T
-+ type = TYPE_WIDE_CHAR;
-+#else
-+ goto error;
-+#endif
-+ else
-+ type = TYPE_CHAR;
-+ break;
-+#ifdef HAVE_WINT_T
-+ case 'C':
-+ type = TYPE_WIDE_CHAR;
-+ c = 'c';
-+ break;
-+#endif
-+ case 's':
-+ if (flags >= 8)
-+#ifdef HAVE_WCHAR_T
-+ type = TYPE_WIDE_STRING;
-+#else
-+ goto error;
-+#endif
-+ else
-+ type = TYPE_STRING;
-+ break;
-+#ifdef HAVE_WCHAR_T
-+ case 'S':
-+ type = TYPE_WIDE_STRING;
-+ c = 's';
-+ break;
-+#endif
-+ case 'p':
-+ type = TYPE_POINTER;
-+ break;
-+ case 'n':
-+#ifdef HAVE_LONG_LONG
-+ if (flags >= 16 || (flags & 4))
-+ type = TYPE_COUNT_LONGLONGINT_POINTER;
-+ else
-+#endif
-+ if (flags >= 8)
-+ type = TYPE_COUNT_LONGINT_POINTER;
-+ else if (flags & 2)
-+ type = TYPE_COUNT_SCHAR_POINTER;
-+ else if (flags & 1)
-+ type = TYPE_COUNT_SHORT_POINTER;
-+ else
-+ type = TYPE_COUNT_INT_POINTER;
-+ break;
-+ case '%':
-+ type = TYPE_NONE;
-+ break;
-+ default:
-+ /* Unknown conversion character. */
-+ goto error;
-+ }
-+ }
-+
-+ if (type != TYPE_NONE)
-+ {
-+ dp->arg_index = arg_index;
-+ if (dp->arg_index == ARG_NONE)
-+ {
-+ dp->arg_index = arg_posn++;
-+ if (dp->arg_index == ARG_NONE)
-+ /* arg_posn wrapped around. */
-+ goto error;
-+ }
-+ REGISTER_ARG (dp->arg_index, type);
-+ }
-+ dp->conversion = c;
-+ dp->dir_end = cp;
-+ }
-+
-+ d->count++;
-+ if (d->count >= d_allocated)
-+ {
-+ size_t memory_size;
-+ DIRECTIVE *memory;
-+
-+ d_allocated = xtimes (d_allocated, 2);
-+ memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
-+ if (size_overflow_p (memory_size))
-+ /* Overflow, would lead to out of memory. */
-+ goto error;
-+ memory = realloc (d->dir, memory_size);
-+ if (memory == NULL)
-+ /* Out of memory. */
-+ goto error;
-+ d->dir = memory;
-+ }
-+ }
-+ }
-+ d->dir[d->count].dir_start = cp;
-+
-+ d->max_width_length = max_width_length;
-+ d->max_precision_length = max_precision_length;
-+ return 0;
-+
-+error:
-+ if (a->arg)
-+ free (a->arg);
-+ if (d->dir)
-+ free (d->dir);
-+ return -1;
-+}
-+
-+#undef DIRECTIVES
-+#undef DIRECTIVE
-+#undef CHAR_T
-+#undef PRINTF_PARSE
---- lrzsz-0.12.20.safe/intl/printf-parse.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/printf-parse.h 2004-09-12 14:40:34.628706592 -0400
-@@ -0,0 +1,75 @@
-+/* Parse printf format string.
-+ Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _PRINTF_PARSE_H
-+#define _PRINTF_PARSE_H
-+
-+#include "printf-args.h"
-+
-+
-+/* Flags */
-+#define FLAG_GROUP 1 /* ' flag */
-+#define FLAG_LEFT 2 /* - flag */
-+#define FLAG_SHOWSIGN 4 /* + flag */
-+#define FLAG_SPACE 8 /* space flag */
-+#define FLAG_ALT 16 /* # flag */
-+#define FLAG_ZERO 32
-+
-+/* arg_index value indicating that no argument is consumed. */
-+#define ARG_NONE (~(size_t)0)
-+
-+/* A parsed directive. */
-+typedef struct
-+{
-+ const char* dir_start;
-+ const char* dir_end;
-+ int flags;
-+ const char* width_start;
-+ const char* width_end;
-+ size_t width_arg_index;
-+ const char* precision_start;
-+ const char* precision_end;
-+ size_t precision_arg_index;
-+ char conversion; /* d i o u x X f e E g G c s p n U % but not C S */
-+ size_t arg_index;
-+}
-+char_directive;
-+
-+/* A parsed format string. */
-+typedef struct
-+{
-+ size_t count;
-+ char_directive *dir;
-+ size_t max_width_length;
-+ size_t max_precision_length;
-+}
-+char_directives;
-+
-+
-+/* Parses the format string. Fills in the number N of directives, and fills
-+ in directives[0], ..., directives[N-1], and sets directives[N].dir_start
-+ to the end of the format string. Also fills in the arg_type fields of the
-+ arguments and the needed count of arguments. */
-+#ifdef STATIC
-+STATIC
-+#else
-+extern
-+#endif
-+int printf_parse (const char *format, char_directives *d, arguments *a);
-+
-+#endif /* _PRINTF_PARSE_H */
---- lrzsz-0.12.20.safe/intl/ref-add.sin 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/ref-add.sin 2004-09-12 14:40:34.633705832 -0400
-@@ -0,0 +1,31 @@
-+# Add this package to a list of references stored in a text file.
-+#
-+# Copyright (C) 2000 Free Software Foundation, Inc.
-+#
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU Library General Public License as published
-+# by the Free Software Foundation; either version 2, 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
-+# Library General Public License for more details.
-+#
-+# You should have received a copy of the GNU Library 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.
-+#
-+# Written by Bruno Haible <haible@clisp.cons.org>.
-+#
-+/^# Packages using this file: / {
-+ s/# Packages using this file://
-+ ta
-+ :a
-+ s/ @PACKAGE@ / @PACKAGE@ /
-+ tb
-+ s/ $/ @PACKAGE@ /
-+ :b
-+ s/^/# Packages using this file:/
-+}
---- lrzsz-0.12.20.safe/intl/ref-del.sin 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/ref-del.sin 2004-09-12 14:40:34.638705072 -0400
-@@ -0,0 +1,26 @@
-+# Remove this package from a list of references stored in a text file.
-+#
-+# Copyright (C) 2000 Free Software Foundation, Inc.
-+#
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU Library General Public License as published
-+# by the Free Software Foundation; either version 2, 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
-+# Library General Public License for more details.
-+#
-+# You should have received a copy of the GNU Library 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.
-+#
-+# Written by Bruno Haible <haible@clisp.cons.org>.
-+#
-+/^# Packages using this file: / {
-+ s/# Packages using this file://
-+ s/ @PACKAGE@ / /
-+ s/^/# Packages using this file:/
-+}
---- lrzsz-0.12.20.safe/intl/relocatable.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/relocatable.c 2004-09-12 14:40:34.644704160 -0400
-@@ -0,0 +1,449 @@
-+/* Provide relocatable packages.
-+ Copyright (C) 2003 Free Software Foundation, Inc.
-+ Written by Bruno Haible <bruno@clisp.org>, 2003.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+
-+/* Tell glibc's <stdio.h> to provide a prototype for getline().
-+ This must come before <config.h> because <config.h> may include
-+ <features.h>, and once <features.h> has been included, it's too late. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
-+
-+#ifdef HAVE_CONFIG_H
-+# include "config.h"
-+#endif
-+
-+/* Specification. */
-+#include "relocatable.h"
-+
-+#if ENABLE_RELOCATABLE
-+
-+#include <stddef.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#ifdef NO_XMALLOC
-+# define xmalloc malloc
-+#else
-+# include "xalloc.h"
-+#endif
-+
-+#if defined _WIN32 || defined __WIN32__
-+# define WIN32_LEAN_AND_MEAN
-+# include <windows.h>
-+#endif
-+
-+#if DEPENDS_ON_LIBCHARSET
-+# include <libcharset.h>
-+#endif
-+#if DEPENDS_ON_LIBICONV && HAVE_ICONV
-+# include <iconv.h>
-+#endif
-+#if DEPENDS_ON_LIBINTL && ENABLE_NLS
-+# include <libintl.h>
-+#endif
-+
-+/* Faked cheap 'bool'. */
-+#undef bool
-+#undef false
-+#undef true
-+#define bool int
-+#define false 0
-+#define true 1
-+
-+/* Pathname support.
-+ ISSLASH(C) tests whether C is a directory separator character.
-+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
-+ */
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+ /* Win32, OS/2, DOS */
-+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-+# define HAS_DEVICE(P) \
-+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
-+ && (P)[1] == ':')
-+# define IS_PATH_WITH_DIR(P) \
-+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
-+# define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
-+#else
-+ /* Unix */
-+# define ISSLASH(C) ((C) == '/')
-+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
-+# define FILESYSTEM_PREFIX_LEN(P) 0
-+#endif
-+
-+/* Original installation prefix. */
-+static char *orig_prefix;
-+static size_t orig_prefix_len;
-+/* Current installation prefix. */
-+static char *curr_prefix;
-+static size_t curr_prefix_len;
-+/* These prefixes do not end in a slash. Anything that will be concatenated
-+ to them must start with a slash. */
-+
-+/* Sets the original and the current installation prefix of this module.
-+ Relocation simply replaces a pathname starting with the original prefix
-+ by the corresponding pathname with the current prefix instead. Both
-+ prefixes should be directory names without trailing slash (i.e. use ""
-+ instead of "/"). */
-+static void
-+set_this_relocation_prefix (const char *orig_prefix_arg,
-+ const char *curr_prefix_arg)
-+{
-+ if (orig_prefix_arg != NULL && curr_prefix_arg != NULL
-+ /* Optimization: if orig_prefix and curr_prefix are equal, the
-+ relocation is a nop. */
-+ && strcmp (orig_prefix_arg, curr_prefix_arg) != 0)
-+ {
-+ /* Duplicate the argument strings. */
-+ char *memory;
-+
-+ orig_prefix_len = strlen (orig_prefix_arg);
-+ curr_prefix_len = strlen (curr_prefix_arg);
-+ memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1);
-+#ifdef NO_XMALLOC
-+ if (memory != NULL)
-+#endif
-+ {
-+ memcpy (memory, orig_prefix_arg, orig_prefix_len + 1);
-+ orig_prefix = memory;
-+ memory += orig_prefix_len + 1;
-+ memcpy (memory, curr_prefix_arg, curr_prefix_len + 1);
-+ curr_prefix = memory;
-+ return;
-+ }
-+ }
-+ orig_prefix = NULL;
-+ curr_prefix = NULL;
-+ /* Don't worry about wasted memory here - this function is usually only
-+ called once. */
-+}
-+
-+/* Sets the original and the current installation prefix of the package.
-+ Relocation simply replaces a pathname starting with the original prefix
-+ by the corresponding pathname with the current prefix instead. Both
-+ prefixes should be directory names without trailing slash (i.e. use ""
-+ instead of "/"). */
-+void
-+set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg)
-+{
-+ set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
-+
-+ /* Now notify all dependent libraries. */
-+#if DEPENDS_ON_LIBCHARSET
-+ libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
-+#endif
-+#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109
-+ libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
-+#endif
-+#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix
-+ libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
-+#endif
-+}
-+
-+#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
-+
-+/* Convenience function:
-+ Computes the current installation prefix, based on the original
-+ installation prefix, the original installation directory of a particular
-+ file, and the current pathname of this file. Returns NULL upon failure. */
-+#ifdef IN_LIBRARY
-+#define compute_curr_prefix local_compute_curr_prefix
-+static
-+#endif
-+const char *
-+compute_curr_prefix (const char *orig_installprefix,
-+ const char *orig_installdir,
-+ const char *curr_pathname)
-+{
-+ const char *curr_installdir;
-+ const char *rel_installdir;
-+
-+ if (curr_pathname == NULL)
-+ return NULL;
-+
-+ /* Determine the relative installation directory, relative to the prefix.
-+ This is simply the difference between orig_installprefix and
-+ orig_installdir. */
-+ if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix))
-+ != 0)
-+ /* Shouldn't happen - nothing should be installed outside $(prefix). */
-+ return NULL;
-+ rel_installdir = orig_installdir + strlen (orig_installprefix);
-+
-+ /* Determine the current installation directory. */
-+ {
-+ const char *p_base = curr_pathname + FILESYSTEM_PREFIX_LEN (curr_pathname);
-+ const char *p = curr_pathname + strlen (curr_pathname);
-+ char *q;
-+
-+ while (p > p_base)
-+ {
-+ p--;
-+ if (ISSLASH (*p))
-+ break;
-+ }
-+
-+ q = (char *) xmalloc (p - curr_pathname + 1);
-+#ifdef NO_XMALLOC
-+ if (q == NULL)
-+ return NULL;
-+#endif
-+ memcpy (q, curr_pathname, p - curr_pathname);
-+ q[p - curr_pathname] = '\0';
-+ curr_installdir = q;
-+ }
-+
-+ /* Compute the current installation prefix by removing the trailing
-+ rel_installdir from it. */
-+ {
-+ const char *rp = rel_installdir + strlen (rel_installdir);
-+ const char *cp = curr_installdir + strlen (curr_installdir);
-+ const char *cp_base =
-+ curr_installdir + FILESYSTEM_PREFIX_LEN (curr_installdir);
-+
-+ while (rp > rel_installdir && cp > cp_base)
-+ {
-+ bool same = false;
-+ const char *rpi = rp;
-+ const char *cpi = cp;
-+
-+ while (rpi > rel_installdir && cpi > cp_base)
-+ {
-+ rpi--;
-+ cpi--;
-+ if (ISSLASH (*rpi) || ISSLASH (*cpi))
-+ {
-+ if (ISSLASH (*rpi) && ISSLASH (*cpi))
-+ same = true;
-+ break;
-+ }
-+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
-+ /* Win32, OS/2, DOS - case insignificant filesystem */
-+ if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi)
-+ != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi))
-+ break;
-+#else
-+ if (*rpi != *cpi)
-+ break;
-+#endif
-+ }
-+ if (!same)
-+ break;
-+ /* The last pathname component was the same. opi and cpi now point
-+ to the slash before it. */
-+ rp = rpi;
-+ cp = cpi;
-+ }
-+
-+ if (rp > rel_installdir)
-+ /* Unexpected: The curr_installdir does not end with rel_installdir. */
-+ return NULL;
-+
-+ {
-+ size_t curr_prefix_len = cp - curr_installdir;
-+ char *curr_prefix;
-+
-+ curr_prefix = (char *) xmalloc (curr_prefix_len + 1);
-+#ifdef NO_XMALLOC
-+ if (curr_prefix == NULL)
-+ return NULL;
-+#endif
-+ memcpy (curr_prefix, curr_installdir, curr_prefix_len);
-+ curr_prefix[curr_prefix_len] = '\0';
-+
-+ return curr_prefix;
-+ }
-+ }
-+}
-+
-+#endif /* !IN_LIBRARY || PIC */
-+
-+#if defined PIC && defined INSTALLDIR
-+
-+/* Full pathname of shared library, or NULL. */
-+static char *shared_library_fullname;
-+
-+#if defined _WIN32 || defined __WIN32__
-+
-+/* Determine the full pathname of the shared library when it is loaded. */
-+
-+BOOL WINAPI
-+DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved)
-+{
-+ (void) reserved;
-+
-+ if (event == DLL_PROCESS_ATTACH)
-+ {
-+ /* The DLL is being loaded into an application's address range. */
-+ static char location[MAX_PATH];
-+
-+ if (!GetModuleFileName (module_handle, location, sizeof (location)))
-+ /* Shouldn't happen. */
-+ return FALSE;
-+
-+ if (!IS_PATH_WITH_DIR (location))
-+ /* Shouldn't happen. */
-+ return FALSE;
-+
-+ shared_library_fullname = strdup (location);
-+ }
-+
-+ return TRUE;
-+}
-+
-+#else /* Unix */
-+
-+static void
-+find_shared_library_fullname ()
-+{
-+#if defined __linux__ && __GLIBC__ >= 2
-+ /* Linux has /proc/self/maps. glibc 2 has the getline() function. */
-+ FILE *fp;
-+
-+ /* Open the current process' maps file. It describes one VMA per line. */
-+ fp = fopen ("/proc/self/maps", "r");
-+ if (fp)
-+ {
-+ unsigned long address = (unsigned long) &find_shared_library_fullname;
-+ for (;;)
-+ {
-+ unsigned long start, end;
-+ int c;
-+
-+ if (fscanf (fp, "%lx-%lx", &start, &end) != 2)
-+ break;
-+ if (address >= start && address <= end - 1)
-+ {
-+ /* Found it. Now see if this line contains a filename. */
-+ while (c = getc (fp), c != EOF && c != '\n' && c != '/')
-+ continue;
-+ if (c == '/')
-+ {
-+ size_t size;
-+ int len;
-+
-+ ungetc (c, fp);
-+ shared_library_fullname = NULL; size = 0;
-+ len = getline (&shared_library_fullname, &size, fp);
-+ if (len >= 0)
-+ {
-+ /* Success: filled shared_library_fullname. */
-+ if (len > 0 && shared_library_fullname[len - 1] == '\n')
-+ shared_library_fullname[len - 1] = '\0';
-+ }
-+ }
-+ break;
-+ }
-+ while (c = getc (fp), c != EOF && c != '\n')
-+ continue;
-+ }
-+ fclose (fp);
-+ }
-+#endif
-+}
-+
-+#endif /* WIN32 / Unix */
-+
-+/* Return the full pathname of the current shared library.
-+ Return NULL if unknown.
-+ Guaranteed to work only on Linux and Woe32. */
-+static char *
-+get_shared_library_fullname ()
-+{
-+#if !(defined _WIN32 || defined __WIN32__)
-+ static bool tried_find_shared_library_fullname;
-+ if (!tried_find_shared_library_fullname)
-+ {
-+ find_shared_library_fullname ();
-+ tried_find_shared_library_fullname = true;
-+ }
-+#endif
-+ return shared_library_fullname;
-+}
-+
-+#endif /* PIC */
-+
-+/* Returns the pathname, relocated according to the current installation
-+ directory. */
-+const char *
-+relocate (const char *pathname)
-+{
-+#if defined PIC && defined INSTALLDIR
-+ static int initialized;
-+
-+ /* Initialization code for a shared library. */
-+ if (!initialized)
-+ {
-+ /* At this point, orig_prefix and curr_prefix likely have already been
-+ set through the main program's set_program_name_and_installdir
-+ function. This is sufficient in the case that the library has
-+ initially been installed in the same orig_prefix. But we can do
-+ better, to also cover the cases that 1. it has been installed
-+ in a different prefix before being moved to orig_prefix and (later)
-+ to curr_prefix, 2. unlike the program, it has not moved away from
-+ orig_prefix. */
-+ const char *orig_installprefix = INSTALLPREFIX;
-+ const char *orig_installdir = INSTALLDIR;
-+ const char *curr_prefix_better;
-+
-+ curr_prefix_better =
-+ compute_curr_prefix (orig_installprefix, orig_installdir,
-+ get_shared_library_fullname ());
-+ if (curr_prefix_better == NULL)
-+ curr_prefix_better = curr_prefix;
-+
-+ set_relocation_prefix (orig_installprefix, curr_prefix_better);
-+
-+ initialized = 1;
-+ }
-+#endif
-+
-+ /* Note: It is not necessary to perform case insensitive comparison here,
-+ even for DOS-like filesystems, because the pathname argument was
-+ typically created from the same Makefile variable as orig_prefix came
-+ from. */
-+ if (orig_prefix != NULL && curr_prefix != NULL
-+ && strncmp (pathname, orig_prefix, orig_prefix_len) == 0)
-+ {
-+ if (pathname[orig_prefix_len] == '\0')
-+ /* pathname equals orig_prefix. */
-+ return curr_prefix;
-+ if (ISSLASH (pathname[orig_prefix_len]))
-+ {
-+ /* pathname starts with orig_prefix. */
-+ const char *pathname_tail = &pathname[orig_prefix_len];
-+ char *result =
-+ (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1);
-+
-+#ifdef NO_XMALLOC
-+ if (result != NULL)
-+#endif
-+ {
-+ memcpy (result, curr_prefix, curr_prefix_len);
-+ strcpy (result + curr_prefix_len, pathname_tail);
-+ return result;
-+ }
-+ }
-+ }
-+ /* Nothing to relocate. */
-+ return pathname;
-+}
-+
-+#endif
---- lrzsz-0.12.20.safe/intl/relocatable.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/relocatable.h 2004-09-12 14:40:34.651703096 -0400
-@@ -0,0 +1,77 @@
-+/* Provide relocatable packages.
-+ Copyright (C) 2003 Free Software Foundation, Inc.
-+ Written by Bruno Haible <bruno@clisp.org>, 2003.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _RELOCATABLE_H
-+#define _RELOCATABLE_H
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+
-+/* This can be enabled through the configure --enable-relocatable option. */
-+#if ENABLE_RELOCATABLE
-+
-+/* When building a DLL, we must export some functions. Note that because
-+ this is a private .h file, we don't need to use __declspec(dllimport)
-+ in any case. */
-+#if defined _MSC_VER && BUILDING_DLL
-+# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport)
-+#else
-+# define RELOCATABLE_DLL_EXPORTED
-+#endif
-+
-+/* Sets the original and the current installation prefix of the package.
-+ Relocation simply replaces a pathname starting with the original prefix
-+ by the corresponding pathname with the current prefix instead. Both
-+ prefixes should be directory names without trailing slash (i.e. use ""
-+ instead of "/"). */
-+extern RELOCATABLE_DLL_EXPORTED void
-+ set_relocation_prefix (const char *orig_prefix,
-+ const char *curr_prefix);
-+
-+/* Returns the pathname, relocated according to the current installation
-+ directory. */
-+extern const char * relocate (const char *pathname);
-+
-+/* Memory management: relocate() leaks memory, because it has to construct
-+ a fresh pathname. If this is a problem because your program calls
-+ relocate() frequently, think about caching the result. */
-+
-+/* Convenience function:
-+ Computes the current installation prefix, based on the original
-+ installation prefix, the original installation directory of a particular
-+ file, and the current pathname of this file. Returns NULL upon failure. */
-+extern const char * compute_curr_prefix (const char *orig_installprefix,
-+ const char *orig_installdir,
-+ const char *curr_pathname);
-+
-+#else
-+
-+/* By default, we use the hardwired pathnames. */
-+#define relocate(pathname) (pathname)
-+
-+#endif
-+
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _RELOCATABLE_H */
---- lrzsz-0.12.20.safe/intl/textdomain.c 1998-04-26 09:22:37.000000000 -0400
-+++ lrzsz-0.12.20/intl/textdomain.c 2004-09-12 14:40:34.656702336 -0400
-@@ -1,51 +1,60 @@
--/* Implementation of the textdomain(3) function
-- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-+/* Implementation of the textdomain(3) function.
-+ Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc.
-
-- 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, or (at your option)
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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.
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library 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. */
-+ You should have received a copy of the GNU Library 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. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
--#if defined STDC_HEADERS || defined _LIBC
--# include <stdlib.h>
--#endif
-+#include <stdlib.h>
-+#include <string.h>
-
--#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
--# include <string.h>
-+#ifdef _LIBC
-+# include <libintl.h>
- #else
--# include <strings.h>
--# ifndef memcpy
--# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
--# endif
-+# include "libgnuintl.h"
- #endif
-+#include "gettextP.h"
-
- #ifdef _LIBC
--# include <libintl.h>
-+/* We have to handle multi-threaded applications. */
-+# include <bits/libc-lock.h>
- #else
--# include "libgettext.h"
-+/* Provide dummy implementation if this is outside glibc. */
-+# define __libc_rwlock_define(CLASS, NAME)
-+# define __libc_rwlock_wrlock(NAME)
-+# define __libc_rwlock_unlock(NAME)
-+#endif
-+
-+/* The internal variables in the standalone libintl.a must have different
-+ names than the internal variables in GNU libc, otherwise programs
-+ using libintl.a cannot be linked statically. */
-+#if !defined _LIBC
-+# define _nl_default_default_domain libintl_nl_default_default_domain
-+# define _nl_current_default_domain libintl_nl_current_default_domain
- #endif
-
- /* @@ end of prolog @@ */
-
- /* Name of the default text domain. */
--extern const char _nl_default_default_domain[];
-+extern const char _nl_default_default_domain[] attribute_hidden;
-
- /* Default text domain in which entries for gettext(3) are to be found. */
--extern const char *_nl_current_default_domain;
-+extern const char *_nl_current_default_domain attribute_hidden;
-
-
- /* Names for the libintl functions are a problem. They must not clash
-@@ -54,50 +63,76 @@
- prefix. So we have to make a difference here. */
- #ifdef _LIBC
- # define TEXTDOMAIN __textdomain
--# define strdup(str) __strdup (str)
-+# ifndef strdup
-+# define strdup(str) __strdup (str)
-+# endif
- #else
--# define TEXTDOMAIN textdomain__
-+# define TEXTDOMAIN libintl_textdomain
- #endif
-
-+/* Lock variable to protect the global data in the gettext implementation. */
-+__libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
-+
- /* Set the current default message catalog to DOMAINNAME.
- If DOMAINNAME is null, return the current default.
- If DOMAINNAME is "", reset to the default of "messages". */
- char *
--TEXTDOMAIN (domainname)
-- const char *domainname;
-+TEXTDOMAIN (const char *domainname)
- {
-- char *old;
-+ char *new_domain;
-+ char *old_domain;
-
- /* A NULL pointer requests the current setting. */
- if (domainname == NULL)
- return (char *) _nl_current_default_domain;
-
-- old = (char *) _nl_current_default_domain;
-+ __libc_rwlock_wrlock (_nl_state_lock);
-+
-+ old_domain = (char *) _nl_current_default_domain;
-
- /* If domain name is the null string set to default domain "messages". */
- if (domainname[0] == '\0'
- || strcmp (domainname, _nl_default_default_domain) == 0)
-- _nl_current_default_domain = _nl_default_default_domain;
-+ {
-+ _nl_current_default_domain = _nl_default_default_domain;
-+ new_domain = (char *) _nl_current_default_domain;
-+ }
-+ else if (strcmp (domainname, old_domain) == 0)
-+ /* This can happen and people will use it to signal that some
-+ environment variable changed. */
-+ new_domain = old_domain;
- else
- {
- /* If the following malloc fails `_nl_current_default_domain'
- will be NULL. This value will be returned and so signals we
- are out of core. */
- #if defined _LIBC || defined HAVE_STRDUP
-- _nl_current_default_domain = strdup (domainname);
-+ new_domain = strdup (domainname);
- #else
- size_t len = strlen (domainname) + 1;
-- char *cp = (char *) malloc (len);
-- if (cp != NULL)
-- memcpy (cp, domainname, len);
-- _nl_current_default_domain = cp;
-+ new_domain = (char *) malloc (len);
-+ if (new_domain != NULL)
-+ memcpy (new_domain, domainname, len);
- #endif
-+
-+ if (new_domain != NULL)
-+ _nl_current_default_domain = new_domain;
- }
-
-- if (old != _nl_default_default_domain)
-- free (old);
-+ /* We use this possibility to signal a change of the loaded catalogs
-+ since this is most likely the case and there is no other easy we
-+ to do it. Do it only when the call was successful. */
-+ if (new_domain != NULL)
-+ {
-+ ++_nl_msg_cat_cntr;
-
-- return (char *) _nl_current_default_domain;
-+ if (old_domain != new_domain && old_domain != _nl_default_default_domain)
-+ free (old_domain);
-+ }
-+
-+ __libc_rwlock_unlock (_nl_state_lock);
-+
-+ return new_domain;
- }
-
- #ifdef _LIBC
---- lrzsz-0.12.20.safe/intl/vasnprintf.c 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/vasnprintf.c 2004-09-12 14:40:34.662701424 -0400
-@@ -0,0 +1,887 @@
-+/* vsprintf with automatic memory allocation.
-+ Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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. */
-+
-+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
-+ This must come before <config.h> because <config.h> may include
-+ <features.h>, and once <features.h> has been included, it's too late. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+#ifndef IN_LIBINTL
-+# include <alloca.h>
-+#endif
-+
-+/* Specification. */
-+#if WIDE_CHAR_VERSION
-+# include "vasnwprintf.h"
-+#else
-+# include "vasnprintf.h"
-+#endif
-+
-+#include <stdio.h> /* snprintf(), sprintf() */
-+#include <stdlib.h> /* abort(), malloc(), realloc(), free() */
-+#include <string.h> /* memcpy(), strlen() */
-+#include <errno.h> /* errno */
-+#include <limits.h> /* CHAR_BIT */
-+#include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */
-+#if WIDE_CHAR_VERSION
-+# include "wprintf-parse.h"
-+#else
-+# include "printf-parse.h"
-+#endif
-+
-+/* Checked size_t computations. */
-+#include "xsize.h"
-+
-+#ifdef HAVE_WCHAR_T
-+# ifdef HAVE_WCSLEN
-+# define local_wcslen wcslen
-+# else
-+ /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid
-+ a dependency towards this library, here is a local substitute.
-+ Define this substitute only once, even if this file is included
-+ twice in the same compilation unit. */
-+# ifndef local_wcslen_defined
-+# define local_wcslen_defined 1
-+static size_t
-+local_wcslen (const wchar_t *s)
-+{
-+ const wchar_t *ptr;
-+
-+ for (ptr = s; *ptr != (wchar_t) 0; ptr++)
-+ ;
-+ return ptr - s;
-+}
-+# endif
-+# endif
-+#endif
-+
-+#if WIDE_CHAR_VERSION
-+# define VASNPRINTF vasnwprintf
-+# define CHAR_T wchar_t
-+# define DIRECTIVE wchar_t_directive
-+# define DIRECTIVES wchar_t_directives
-+# define PRINTF_PARSE wprintf_parse
-+# define USE_SNPRINTF 1
-+# if HAVE_DECL__SNWPRINTF
-+ /* On Windows, the function swprintf() has a different signature than
-+ on Unix; we use the _snwprintf() function instead. */
-+# define SNPRINTF _snwprintf
-+# else
-+ /* Unix. */
-+# define SNPRINTF swprintf
-+# endif
-+#else
-+# define VASNPRINTF vasnprintf
-+# define CHAR_T char
-+# define DIRECTIVE char_directive
-+# define DIRECTIVES char_directives
-+# define PRINTF_PARSE printf_parse
-+# define USE_SNPRINTF (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF)
-+# if HAVE_DECL__SNPRINTF
-+ /* Windows. */
-+# define SNPRINTF _snprintf
-+# else
-+ /* Unix. */
-+# define SNPRINTF snprintf
-+# endif
-+#endif
-+
-+CHAR_T *
-+VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list args)
-+{
-+ DIRECTIVES d;
-+ arguments a;
-+
-+ if (PRINTF_PARSE (format, &d, &a) < 0)
-+ {
-+ errno = EINVAL;
-+ return NULL;
-+ }
-+
-+#define CLEANUP() \
-+ free (d.dir); \
-+ if (a.arg) \
-+ free (a.arg);
-+
-+ if (printf_fetchargs (args, &a) < 0)
-+ {
-+ CLEANUP ();
-+ errno = EINVAL;
-+ return NULL;
-+ }
-+
-+ {
-+ size_t buf_neededlength;
-+ CHAR_T *buf;
-+ CHAR_T *buf_malloced;
-+ const CHAR_T *cp;
-+ size_t i;
-+ DIRECTIVE *dp;
-+ /* Output string accumulator. */
-+ CHAR_T *result;
-+ size_t allocated;
-+ size_t length;
-+
-+ /* Allocate a small buffer that will hold a directive passed to
-+ sprintf or snprintf. */
-+ buf_neededlength =
-+ xsum4 (7, d.max_width_length, d.max_precision_length, 6);
-+#if HAVE_ALLOCA
-+ if (buf_neededlength < 4000 / sizeof (CHAR_T))
-+ {
-+ buf = (CHAR_T *) alloca (buf_neededlength * sizeof (CHAR_T));
-+ buf_malloced = NULL;
-+ }
-+ else
-+#endif
-+ {
-+ size_t buf_memsize = xtimes (buf_neededlength, sizeof (CHAR_T));
-+ if (size_overflow_p (buf_memsize))
-+ goto out_of_memory_1;
-+ buf = (CHAR_T *) malloc (buf_memsize);
-+ if (buf == NULL)
-+ goto out_of_memory_1;
-+ buf_malloced = buf;
-+ }
-+
-+ if (resultbuf != NULL)
-+ {
-+ result = resultbuf;
-+ allocated = *lengthp;
-+ }
-+ else
-+ {
-+ result = NULL;
-+ allocated = 0;
-+ }
-+ length = 0;
-+ /* Invariants:
-+ result is either == resultbuf or == NULL or malloc-allocated.
-+ If length > 0, then result != NULL. */
-+
-+ /* Ensures that allocated >= needed. Aborts through a jump to
-+ out_of_memory if needed is SIZE_MAX or otherwise too big. */
-+#define ENSURE_ALLOCATION(needed) \
-+ if ((needed) > allocated) \
-+ { \
-+ size_t memory_size; \
-+ CHAR_T *memory; \
-+ \
-+ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \
-+ if ((needed) > allocated) \
-+ allocated = (needed); \
-+ memory_size = xtimes (allocated, sizeof (CHAR_T)); \
-+ if (size_overflow_p (memory_size)) \
-+ goto out_of_memory; \
-+ if (result == resultbuf || result == NULL) \
-+ memory = (CHAR_T *) malloc (memory_size); \
-+ else \
-+ memory = (CHAR_T *) realloc (result, memory_size); \
-+ if (memory == NULL) \
-+ goto out_of_memory; \
-+ if (result == resultbuf && length > 0) \
-+ memcpy (memory, result, length * sizeof (CHAR_T)); \
-+ result = memory; \
-+ }
-+
-+ for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++)
-+ {
-+ if (cp != dp->dir_start)
-+ {
-+ size_t n = dp->dir_start - cp;
-+ size_t augmented_length = xsum (length, n);
-+
-+ ENSURE_ALLOCATION (augmented_length);
-+ memcpy (result + length, cp, n * sizeof (CHAR_T));
-+ length = augmented_length;
-+ }
-+ if (i == d.count)
-+ break;
-+
-+ /* Execute a single directive. */
-+ if (dp->conversion == '%')
-+ {
-+ size_t augmented_length;
-+
-+ if (!(dp->arg_index == ARG_NONE))
-+ abort ();
-+ augmented_length = xsum (length, 1);
-+ ENSURE_ALLOCATION (augmented_length);
-+ result[length] = '%';
-+ length = augmented_length;
-+ }
-+ else
-+ {
-+ if (!(dp->arg_index != ARG_NONE))
-+ abort ();
-+
-+ if (dp->conversion == 'n')
-+ {
-+ switch (a.arg[dp->arg_index].type)
-+ {
-+ case TYPE_COUNT_SCHAR_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
-+ break;
-+ case TYPE_COUNT_SHORT_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_short_pointer = length;
-+ break;
-+ case TYPE_COUNT_INT_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_int_pointer = length;
-+ break;
-+ case TYPE_COUNT_LONGINT_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
-+ break;
-+#ifdef HAVE_LONG_LONG
-+ case TYPE_COUNT_LONGLONGINT_POINTER:
-+ *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
-+ break;
-+#endif
-+ default:
-+ abort ();
-+ }
-+ }
-+ else
-+ {
-+ arg_type type = a.arg[dp->arg_index].type;
-+ CHAR_T *p;
-+ unsigned int prefix_count;
-+ int prefixes[2];
-+#if !USE_SNPRINTF
-+ size_t tmp_length;
-+ CHAR_T tmpbuf[700];
-+ CHAR_T *tmp;
-+
-+ /* Allocate a temporary buffer of sufficient size for calling
-+ sprintf. */
-+ {
-+ size_t width;
-+ size_t precision;
-+
-+ width = 0;
-+ if (dp->width_start != dp->width_end)
-+ {
-+ if (dp->width_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->width_arg_index].a.a_int;
-+ width = (arg < 0 ? (unsigned int) (-arg) : arg);
-+ }
-+ else
-+ {
-+ const CHAR_T *digitp = dp->width_start;
-+
-+ do
-+ width = xsum (xtimes (width, 10), *digitp++ - '0');
-+ while (digitp != dp->width_end);
-+ }
-+ }
-+
-+ precision = 6;
-+ if (dp->precision_start != dp->precision_end)
-+ {
-+ if (dp->precision_arg_index != ARG_NONE)
-+ {
-+ int arg;
-+
-+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+ abort ();
-+ arg = a.arg[dp->precision_arg_index].a.a_int;
-+ precision = (arg < 0 ? 0 : arg);
-+ }
-+ else
-+ {
-+ const CHAR_T *digitp = dp->precision_start + 1;
-+
-+ precision = 0;
-+ do
-+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
-+ while (digitp != dp->precision_end);
-+ }
-+ }
-+
-+ switch (dp->conversion)
-+ {
-+
-+ case 'd': case 'i': case 'u':
-+# ifdef HAVE_LONG_LONG
-+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+ * 0.30103 /* binary -> decimal */
-+ * 2 /* estimate for FLAG_GROUP */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 1; /* account for leading sign */
-+ else
-+# endif
-+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+ * 0.30103 /* binary -> decimal */
-+ * 2 /* estimate for FLAG_GROUP */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 1; /* account for leading sign */
-+ else
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+ * 0.30103 /* binary -> decimal */
-+ * 2 /* estimate for FLAG_GROUP */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 1; /* account for leading sign */
-+ break;
-+
-+ case 'o':
-+# ifdef HAVE_LONG_LONG
-+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+ * 0.333334 /* binary -> octal */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 1; /* account for leading sign */
-+ else
-+# endif
-+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+ * 0.333334 /* binary -> octal */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 1; /* account for leading sign */
-+ else
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+ * 0.333334 /* binary -> octal */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 1; /* account for leading sign */
-+ break;
-+
-+ case 'x': case 'X':
-+# ifdef HAVE_LONG_LONG
-+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-+ * 0.25 /* binary -> hexadecimal */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 2; /* account for leading sign or alternate form */
-+ else
-+# endif
-+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-+ * 0.25 /* binary -> hexadecimal */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 2; /* account for leading sign or alternate form */
-+ else
-+ tmp_length =
-+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-+ * 0.25 /* binary -> hexadecimal */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 2; /* account for leading sign or alternate form */
-+ break;
-+
-+ case 'f': case 'F':
-+# ifdef HAVE_LONG_DOUBLE
-+ if (type == TYPE_LONGDOUBLE)
-+ tmp_length =
-+ (unsigned int) (LDBL_MAX_EXP
-+ * 0.30103 /* binary -> decimal */
-+ * 2 /* estimate for FLAG_GROUP */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 10; /* sign, decimal point etc. */
-+ else
-+# endif
-+ tmp_length =
-+ (unsigned int) (DBL_MAX_EXP
-+ * 0.30103 /* binary -> decimal */
-+ * 2 /* estimate for FLAG_GROUP */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 10; /* sign, decimal point etc. */
-+ tmp_length = xsum (tmp_length, precision);
-+ break;
-+
-+ case 'e': case 'E': case 'g': case 'G':
-+ case 'a': case 'A':
-+ tmp_length =
-+ 12; /* sign, decimal point, exponent etc. */
-+ tmp_length = xsum (tmp_length, precision);
-+ break;
-+
-+ case 'c':
-+# if defined HAVE_WINT_T && !WIDE_CHAR_VERSION
-+ if (type == TYPE_WIDE_CHAR)
-+ tmp_length = MB_CUR_MAX;
-+ else
-+# endif
-+ tmp_length = 1;
-+ break;
-+
-+ case 's':
-+# ifdef HAVE_WCHAR_T
-+ if (type == TYPE_WIDE_STRING)
-+ {
-+ tmp_length =
-+ local_wcslen (a.arg[dp->arg_index].a.a_wide_string);
-+
-+# if !WIDE_CHAR_VERSION
-+ tmp_length = xtimes (tmp_length, MB_CUR_MAX);
-+# endif
-+ }
-+ else
-+# endif
-+ tmp_length = strlen (a.arg[dp->arg_index].a.a_string);
-+ break;
-+
-+ case 'p':
-+ tmp_length =
-+ (unsigned int) (sizeof (void *) * CHAR_BIT
-+ * 0.25 /* binary -> hexadecimal */
-+ )
-+ + 1 /* turn floor into ceil */
-+ + 2; /* account for leading 0x */
-+ break;
-+
-+ default:
-+ abort ();
-+ }
-+
-+ if (tmp_length < width)
-+ tmp_length = width;
-+
-+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
-+ }
-+
-+ if (tmp_length <= sizeof (tmpbuf) / sizeof (CHAR_T))
-+ tmp = tmpbuf;
-+ else
-+ {
-+ size_t tmp_memsize = xtimes (tmp_length, sizeof (CHAR_T));
-+
-+ if (size_overflow_p (tmp_memsize))
-+ /* Overflow, would lead to out of memory. */
-+ goto out_of_memory;
-+ tmp = (CHAR_T *) malloc (tmp_memsize);
-+ if (tmp == NULL)
-+ /* Out of memory. */
-+ goto out_of_memory;
-+ }
-+#endif
-+
-+ /* Construct the format string for calling snprintf or
-+ sprintf. */
-+ p = buf;
-+ *p++ = '%';
-+ if (dp->flags & FLAG_GROUP)
-+ *p++ = '\'';
-+ if (dp->flags & FLAG_LEFT)
-+ *p++ = '-';
-+ if (dp->flags & FLAG_SHOWSIGN)
-+ *p++ = '+';
-+ if (dp->flags & FLAG_SPACE)
-+ *p++ = ' ';
-+ if (dp->flags & FLAG_ALT)
-+ *p++ = '#';
-+ if (dp->flags & FLAG_ZERO)
-+ *p++ = '0';
-+ if (dp->width_start != dp->width_end)
-+ {
-+ size_t n = dp->width_end - dp->width_start;
-+ memcpy (p, dp->width_start, n * sizeof (CHAR_T));
-+ p += n;
-+ }
-+ if (dp->precision_start != dp->precision_end)
-+ {
-+ size_t n = dp->precision_end - dp->precision_start;
-+ memcpy (p, dp->precision_start, n * sizeof (CHAR_T));
-+ p += n;
-+ }
-+
-+ switch (type)
-+ {
-+#ifdef HAVE_LONG_LONG
-+ case TYPE_LONGLONGINT:
-+ case TYPE_ULONGLONGINT:
-+ *p++ = 'l';
-+ /*FALLTHROUGH*/
-+#endif
-+ case TYPE_LONGINT:
-+ case TYPE_ULONGINT:
-+#ifdef HAVE_WINT_T
-+ case TYPE_WIDE_CHAR:
-+#endif
-+#ifdef HAVE_WCHAR_T
-+ case TYPE_WIDE_STRING:
-+#endif
-+ *p++ = 'l';
-+ break;
-+#ifdef HAVE_LONG_DOUBLE
-+ case TYPE_LONGDOUBLE:
-+ *p++ = 'L';
-+ break;
-+#endif
-+ default:
-+ break;
-+ }
-+ *p = dp->conversion;
-+#if USE_SNPRINTF
-+ p[1] = '%';
-+ p[2] = 'n';
-+ p[3] = '\0';
-+#else
-+ p[1] = '\0';
-+#endif
-+
-+ /* Construct the arguments for calling snprintf or sprintf. */
-+ prefix_count = 0;
-+ if (dp->width_arg_index != ARG_NONE)
-+ {
-+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
-+ abort ();
-+ prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int;
-+ }
-+ if (dp->precision_arg_index != ARG_NONE)
-+ {
-+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
-+ abort ();
-+ prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int;
-+ }
-+
-+#if USE_SNPRINTF
-+ /* Prepare checking whether snprintf returns the count
-+ via %n. */
-+ ENSURE_ALLOCATION (xsum (length, 1));
-+ result[length] = '\0';
-+#endif
-+
-+ for (;;)
-+ {
-+ size_t maxlen;
-+ int count;
-+ int retcount;
-+
-+ maxlen = allocated - length;
-+ count = -1;
-+ retcount = 0;
-+
-+#if USE_SNPRINTF
-+# define SNPRINTF_BUF(arg) \
-+ switch (prefix_count) \
-+ { \
-+ case 0: \
-+ retcount = SNPRINTF (result + length, maxlen, buf, \
-+ arg, &count); \
-+ break; \
-+ case 1: \
-+ retcount = SNPRINTF (result + length, maxlen, buf, \
-+ prefixes[0], arg, &count); \
-+ break; \
-+ case 2: \
-+ retcount = SNPRINTF (result + length, maxlen, buf, \
-+ prefixes[0], prefixes[1], arg, \
-+ &count); \
-+ break; \
-+ default: \
-+ abort (); \
-+ }
-+#else
-+# define SNPRINTF_BUF(arg) \
-+ switch (prefix_count) \
-+ { \
-+ case 0: \
-+ count = sprintf (tmp, buf, arg); \
-+ break; \
-+ case 1: \
-+ count = sprintf (tmp, buf, prefixes[0], arg); \
-+ break; \
-+ case 2: \
-+ count = sprintf (tmp, buf, prefixes[0], prefixes[1],\
-+ arg); \
-+ break; \
-+ default: \
-+ abort (); \
-+ }
-+#endif
-+
-+ switch (type)
-+ {
-+ case TYPE_SCHAR:
-+ {
-+ int arg = a.arg[dp->arg_index].a.a_schar;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_UCHAR:
-+ {
-+ unsigned int arg = a.arg[dp->arg_index].a.a_uchar;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_SHORT:
-+ {
-+ int arg = a.arg[dp->arg_index].a.a_short;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_USHORT:
-+ {
-+ unsigned int arg = a.arg[dp->arg_index].a.a_ushort;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_INT:
-+ {
-+ int arg = a.arg[dp->arg_index].a.a_int;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_UINT:
-+ {
-+ unsigned int arg = a.arg[dp->arg_index].a.a_uint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_LONGINT:
-+ {
-+ long int arg = a.arg[dp->arg_index].a.a_longint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_ULONGINT:
-+ {
-+ unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#ifdef HAVE_LONG_LONG
-+ case TYPE_LONGLONGINT:
-+ {
-+ long long int arg = a.arg[dp->arg_index].a.a_longlongint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ case TYPE_ULONGLONGINT:
-+ {
-+ unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#endif
-+ case TYPE_DOUBLE:
-+ {
-+ double arg = a.arg[dp->arg_index].a.a_double;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#ifdef HAVE_LONG_DOUBLE
-+ case TYPE_LONGDOUBLE:
-+ {
-+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#endif
-+ case TYPE_CHAR:
-+ {
-+ int arg = a.arg[dp->arg_index].a.a_char;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#ifdef HAVE_WINT_T
-+ case TYPE_WIDE_CHAR:
-+ {
-+ wint_t arg = a.arg[dp->arg_index].a.a_wide_char;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#endif
-+ case TYPE_STRING:
-+ {
-+ const char *arg = a.arg[dp->arg_index].a.a_string;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#ifdef HAVE_WCHAR_T
-+ case TYPE_WIDE_STRING:
-+ {
-+ const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+#endif
-+ case TYPE_POINTER:
-+ {
-+ void *arg = a.arg[dp->arg_index].a.a_pointer;
-+ SNPRINTF_BUF (arg);
-+ }
-+ break;
-+ default:
-+ abort ();
-+ }
-+
-+#if USE_SNPRINTF
-+ /* Portability: Not all implementations of snprintf()
-+ are ISO C 99 compliant. Determine the number of
-+ bytes that snprintf() has produced or would have
-+ produced. */
-+ if (count >= 0)
-+ {
-+ /* Verify that snprintf() has NUL-terminated its
-+ result. */
-+ if (count < maxlen && result[length + count] != '\0')
-+ abort ();
-+ /* Portability hack. */
-+ if (retcount > count)
-+ count = retcount;
-+ }
-+ else
-+ {
-+ /* snprintf() doesn't understand the '%n'
-+ directive. */
-+ if (p[1] != '\0')
-+ {
-+ /* Don't use the '%n' directive; instead, look
-+ at the snprintf() return value. */
-+ p[1] = '\0';
-+ continue;
-+ }
-+ else
-+ {
-+ /* Look at the snprintf() return value. */
-+ if (retcount < 0)
-+ {
-+ /* HP-UX 10.20 snprintf() is doubly deficient:
-+ It doesn't understand the '%n' directive,
-+ *and* it returns -1 (rather than the length
-+ that would have been required) when the
-+ buffer is too small. */
-+ size_t bigger_need =
-+ xsum (xtimes (allocated, 2), 12);
-+ ENSURE_ALLOCATION (bigger_need);
-+ continue;
-+ }
-+ else
-+ count = retcount;
-+ }
-+ }
-+#endif
-+
-+ /* Attempt to handle failure. */
-+ if (count < 0)
-+ {
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ errno = EINVAL;
-+ return NULL;
-+ }
-+
-+#if !USE_SNPRINTF
-+ if (count >= tmp_length)
-+ /* tmp_length was incorrectly calculated - fix the
-+ code above! */
-+ abort ();
-+#endif
-+
-+ /* Make room for the result. */
-+ if (count >= maxlen)
-+ {
-+ /* Need at least count bytes. But allocate
-+ proportionally, to avoid looping eternally if
-+ snprintf() reports a too small count. */
-+ size_t n =
-+ xmax (xsum (length, count), xtimes (allocated, 2));
-+
-+ ENSURE_ALLOCATION (n);
-+#if USE_SNPRINTF
-+ continue;
-+#endif
-+ }
-+
-+#if USE_SNPRINTF
-+ /* The snprintf() result did fit. */
-+#else
-+ /* Append the sprintf() result. */
-+ memcpy (result + length, tmp, count * sizeof (CHAR_T));
-+ if (tmp != tmpbuf)
-+ free (tmp);
-+#endif
-+
-+ length += count;
-+ break;
-+ }
-+ }
-+ }
-+ }
-+
-+ /* Add the final NUL. */
-+ ENSURE_ALLOCATION (xsum (length, 1));
-+ result[length] = '\0';
-+
-+ if (result != resultbuf && length + 1 < allocated)
-+ {
-+ /* Shrink the allocated memory if possible. */
-+ CHAR_T *memory;
-+
-+ memory = (CHAR_T *) realloc (result, (length + 1) * sizeof (CHAR_T));
-+ if (memory != NULL)
-+ result = memory;
-+ }
-+
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ CLEANUP ();
-+ *lengthp = length;
-+ return result;
-+
-+ out_of_memory:
-+ if (!(result == resultbuf || result == NULL))
-+ free (result);
-+ if (buf_malloced != NULL)
-+ free (buf_malloced);
-+ out_of_memory_1:
-+ CLEANUP ();
-+ errno = ENOMEM;
-+ return NULL;
-+ }
-+}
-+
-+#undef SNPRINTF
-+#undef USE_SNPRINTF
-+#undef PRINTF_PARSE
-+#undef DIRECTIVES
-+#undef DIRECTIVE
-+#undef CHAR_T
-+#undef VASNPRINTF
---- lrzsz-0.12.20.safe/intl/vasnprintf.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/vasnprintf.h 2004-09-12 14:40:34.667700664 -0400
-@@ -0,0 +1,61 @@
-+/* vsprintf with automatic memory allocation.
-+ Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _VASNPRINTF_H
-+#define _VASNPRINTF_H
-+
-+/* Get va_list. */
-+#include <stdarg.h>
-+
-+/* Get size_t. */
-+#include <stddef.h>
-+
-+#ifndef __attribute__
-+/* This feature is available in gcc versions 2.5 and later. */
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
-+# define __attribute__(Spec) /* empty */
-+# endif
-+/* The __-protected variants of `format' and `printf' attributes
-+ are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-+# define __format__ format
-+# define __printf__ printf
-+# endif
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Write formatted output to a string dynamically allocated with malloc().
-+ You can pass a preallocated buffer for the result in RESULTBUF and its
-+ size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
-+ If successful, return the address of the string (this may be = RESULTBUF
-+ if no dynamic memory allocation was necessary) and set *LENGTHP to the
-+ number of resulting bytes, excluding the trailing NUL. Upon error, set
-+ errno and return NULL. */
-+extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
-+ __attribute__ ((__format__ (__printf__, 3, 4)));
-+extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
-+ __attribute__ ((__format__ (__printf__, 3, 0)));
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _VASNPRINTF_H */
---- lrzsz-0.12.20.safe/intl/vasnwprintf.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/vasnwprintf.h 2004-09-12 14:40:34.673699752 -0400
-@@ -0,0 +1,46 @@
-+/* vswprintf with automatic memory allocation.
-+ Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _VASNWPRINTF_H
-+#define _VASNWPRINTF_H
-+
-+/* Get va_list. */
-+#include <stdarg.h>
-+
-+/* Get wchar_t, size_t. */
-+#include <stddef.h>
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Write formatted output to a string dynamically allocated with malloc().
-+ You can pass a preallocated buffer for the result in RESULTBUF and its
-+ size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
-+ If successful, return the address of the string (this may be = RESULTBUF
-+ if no dynamic memory allocation was necessary) and set *LENGTHP to the
-+ number of resulting bytes, excluding the trailing NUL. Upon error, set
-+ errno and return NULL. */
-+extern wchar_t * asnwprintf (wchar_t *resultbuf, size_t *lengthp, const wchar_t *format, ...);
-+extern wchar_t * vasnwprintf (wchar_t *resultbuf, size_t *lengthp, const wchar_t *format, va_list args);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _VASNWPRINTF_H */
---- lrzsz-0.12.20.safe/intl/VERSION 1998-04-26 09:22:37.000000000 -0400
-+++ lrzsz-0.12.20/intl/VERSION 2004-09-12 14:40:34.679698840 -0400
-@@ -1 +1 @@
--GNU gettext library from gettext-0.10.32
-+GNU gettext library from gettext-0.14.1
---- lrzsz-0.12.20.safe/intl/wprintf-parse.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/wprintf-parse.h 2004-09-12 14:40:34.695696408 -0400
-@@ -0,0 +1,75 @@
-+/* Parse printf format string.
-+ Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _WPRINTF_PARSE_H
-+#define _WPRINTF_PARSE_H
-+
-+#include "printf-args.h"
-+
-+
-+/* Flags */
-+#define FLAG_GROUP 1 /* ' flag */
-+#define FLAG_LEFT 2 /* - flag */
-+#define FLAG_SHOWSIGN 4 /* + flag */
-+#define FLAG_SPACE 8 /* space flag */
-+#define FLAG_ALT 16 /* # flag */
-+#define FLAG_ZERO 32
-+
-+/* arg_index value indicating that no argument is consumed. */
-+#define ARG_NONE (~(size_t)0)
-+
-+/* A parsed directive. */
-+typedef struct
-+{
-+ const wchar_t* dir_start;
-+ const wchar_t* dir_end;
-+ int flags;
-+ const wchar_t* width_start;
-+ const wchar_t* width_end;
-+ size_t width_arg_index;
-+ const wchar_t* precision_start;
-+ const wchar_t* precision_end;
-+ size_t precision_arg_index;
-+ wchar_t conversion; /* d i o u x X f e E g G c s p n U % but not C S */
-+ size_t arg_index;
-+}
-+wchar_t_directive;
-+
-+/* A parsed format string. */
-+typedef struct
-+{
-+ size_t count;
-+ wchar_t_directive *dir;
-+ size_t max_width_length;
-+ size_t max_precision_length;
-+}
-+wchar_t_directives;
-+
-+
-+/* Parses the format string. Fills in the number N of directives, and fills
-+ in directives[0], ..., directives[N-1], and sets directives[N].dir_start
-+ to the end of the format string. Also fills in the arg_type fields of the
-+ arguments and the needed count of arguments. */
-+#ifdef STATIC
-+STATIC
-+#else
-+extern
-+#endif
-+int wprintf_parse (const wchar_t *format, wchar_t_directives *d, arguments *a);
-+
-+#endif /* _WPRINTF_PARSE_H */
---- lrzsz-0.12.20.safe/intl/xopen-msg.sed 1998-04-26 09:20:52.000000000 -0400
-+++ lrzsz-0.12.20/intl/xopen-msg.sed 1969-12-31 19:00:00.000000000 -0500
-@@ -1,104 +0,0 @@
--# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
--# Copyright (C) 1995 Free Software Foundation, Inc.
--# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
--#
--# 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, 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.
--#
--#
--# The first directive in the .msg should be the definition of the
--# message set number. We use always set number 1.
--#
--1 {
-- i\
--$set 1 # Automatically created by po2msg.sed
-- h
-- s/.*/0/
-- x
--}
--#
--# We copy all comments into the .msg file. Perhaps they can help.
--#
--/^#/ s/^#[ ]*/$ /p
--#
--# We copy the original message as a comment into the .msg file.
--#
--/^msgid/ {
--# Does not work now
--# /"$/! {
--# s/\\$//
--# s/$/ ... (more lines following)"/
--# }
-- s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/
-- p
--}
--#
--# The .msg file contains, other then the .po file, only the translations
--# but each given a unique ID. Starting from 1 and incrementing by 1 for
--# each message we assign them to the messages.
--# It is important that the .po file used to generate the cat-id-tbl.c file
--# (with po-to-tbl) is the same as the one used here. (At least the order
--# of declarations must not be changed.)
--#
--/^msgstr/ {
-- s/msgstr[ ]*"\(.*\)"/\1/
-- x
--# The following nice solution is by
--# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
-- td
--# Increment a decimal number in pattern space.
--# First hide trailing `9' digits.
-- :d
-- s/9\(_*\)$/_\1/
-- td
--# Assure at least one digit is available.
-- s/^\(_*\)$/0\1/
--# Increment the last digit.
-- s/8\(_*\)$/9\1/
-- s/7\(_*\)$/8\1/
-- s/6\(_*\)$/7\1/
-- s/5\(_*\)$/6\1/
-- s/4\(_*\)$/5\1/
-- s/3\(_*\)$/4\1/
-- s/2\(_*\)$/3\1/
-- s/1\(_*\)$/2\1/
-- s/0\(_*\)$/1\1/
--# Convert the hidden `9' digits to `0's.
-- s/_/0/g
-- x
--# Bring the line in the format `<number> <message>'
-- G
-- s/^[^\n]*$/& /
-- s/\(.*\)\n\([0-9]*\)/\2 \1/
--# Clear flag from last substitution.
-- tb
--# Append the next line.
-- :b
-- N
--# Look whether second part is a continuation line.
-- s/\(.*\n\)"\(.*\)"/\1\2/
--# Yes, then branch.
-- ta
-- P
-- D
--# Note that `D' includes a jump to the start!!
--# We found a continuation line. But before printing insert '\'.
-- :a
-- s/\(.*\)\(\n.*\)/\1\\\2/
-- P
--# We cannot use the sed command `D' here
-- s/.*\n\(.*\)/\1/
-- tb
--}
--d
---- lrzsz-0.12.20.safe/intl/xsize.h 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/intl/xsize.h 2004-09-12 14:40:34.700695648 -0400
-@@ -0,0 +1,109 @@
-+/* xsize.h -- Checked size_t computations.
-+
-+ Copyright (C) 2003 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Library General Public License as published
-+ by the Free Software Foundation; either version 2, 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library 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 _XSIZE_H
-+#define _XSIZE_H
-+
-+/* Get size_t. */
-+#include <stddef.h>
-+
-+/* Get SIZE_MAX. */
-+#include <limits.h>
-+#if HAVE_STDINT_H
-+# include <stdint.h>
-+#endif
-+
-+/* The size of memory objects is often computed through expressions of
-+ type size_t. Example:
-+ void* p = malloc (header_size + n * element_size).
-+ These computations can lead to overflow. When this happens, malloc()
-+ returns a piece of memory that is way too small, and the program then
-+ crashes while attempting to fill the memory.
-+ To avoid this, the functions and macros in this file check for overflow.
-+ The convention is that SIZE_MAX represents overflow.
-+ malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc
-+ implementation that uses mmap --, it's recommended to use size_overflow_p()
-+ or size_in_bounds_p() before invoking malloc().
-+ The example thus becomes:
-+ size_t size = xsum (header_size, xtimes (n, element_size));
-+ void *p = (size_in_bounds_p (size) ? malloc (size) : NULL);
-+*/
-+
-+/* Convert an arbitrary value >= 0 to type size_t. */
-+#define xcast_size_t(N) \
-+ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
-+
-+/* Sum of two sizes, with overflow check. */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum (size_t size1, size_t size2)
-+{
-+ size_t sum = size1 + size2;
-+ return (sum >= size1 ? sum : SIZE_MAX);
-+}
-+
-+/* Sum of three sizes, with overflow check. */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum3 (size_t size1, size_t size2, size_t size3)
-+{
-+ return xsum (xsum (size1, size2), size3);
-+}
-+
-+/* Sum of four sizes, with overflow check. */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
-+{
-+ return xsum (xsum (xsum (size1, size2), size3), size4);
-+}
-+
-+/* Maximum of two sizes, with overflow check. */
-+static inline size_t
-+#if __GNUC__ >= 3
-+__attribute__ ((__pure__))
-+#endif
-+xmax (size_t size1, size_t size2)
-+{
-+ /* No explicit check is needed here, because for any n:
-+ max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */
-+ return (size1 >= size2 ? size1 : size2);
-+}
-+
-+/* Multiplication of a count with an element size, with overflow check.
-+ The count must be >= 0 and the element size must be > 0.
-+ This is a macro, not an inline function, so that it works correctly even
-+ when N is of a wider tupe and N > SIZE_MAX. */
-+#define xtimes(N, ELSIZE) \
-+ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
-+
-+/* Check for overflow. */
-+#define size_overflow_p(SIZE) \
-+ ((SIZE) == SIZE_MAX)
-+/* Check against overflow. */
-+#define size_in_bounds_p(SIZE) \
-+ ((SIZE) != SIZE_MAX)
-+
-+#endif /* _XSIZE_H */
---- lrzsz-0.12.20.safe/m4/ChangeLog 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/ChangeLog 2004-09-12 14:40:35.054641840 -0400
-@@ -0,0 +1,32 @@
-+2004-09-12 gettextize <bug-gnu-gettext@gnu.org>
-+
-+ * codeset.m4: New file, from gettext-0.14.1.
-+ * gettext.m4: New file, from gettext-0.14.1.
-+ * glibc21.m4: New file, from gettext-0.14.1.
-+ * iconv.m4: New file, from gettext-0.14.1.
-+ * intdiv0.m4: New file, from gettext-0.14.1.
-+ * intmax.m4: New file, from gettext-0.14.1.
-+ * inttypes.m4: New file, from gettext-0.14.1.
-+ * inttypes_h.m4: New file, from gettext-0.14.1.
-+ * inttypes-pri.m4: New file, from gettext-0.14.1.
-+ * isc-posix.m4: New file, from gettext-0.14.1.
-+ * lcmessage.m4: New file, from gettext-0.14.1.
-+ * lib-ld.m4: New file, from gettext-0.14.1.
-+ * lib-link.m4: New file, from gettext-0.14.1.
-+ * lib-prefix.m4: New file, from gettext-0.14.1.
-+ * longdouble.m4: New file, from gettext-0.14.1.
-+ * longlong.m4: New file, from gettext-0.14.1.
-+ * nls.m4: New file, from gettext-0.14.1.
-+ * po.m4: New file, from gettext-0.14.1.
-+ * printf-posix.m4: New file, from gettext-0.14.1.
-+ * progtest.m4: New file, from gettext-0.14.1.
-+ * signed.m4: New file, from gettext-0.14.1.
-+ * size_max.m4: New file, from gettext-0.14.1.
-+ * stdint_h.m4: New file, from gettext-0.14.1.
-+ * uintmax_t.m4: New file, from gettext-0.14.1.
-+ * ulonglong.m4: New file, from gettext-0.14.1.
-+ * wchar_t.m4: New file, from gettext-0.14.1.
-+ * wint_t.m4: New file, from gettext-0.14.1.
-+ * xsize.m4: New file, from gettext-0.14.1.
-+ * Makefile.am: New file.
-+
---- lrzsz-0.12.20.safe/m4/codeset.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/codeset.m4 2004-09-12 14:40:34.820677408 -0400
-@@ -0,0 +1,23 @@
-+# codeset.m4 serial AM1 (gettext-0.10.40)
-+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([AM_LANGINFO_CODESET],
-+[
-+ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
-+ [AC_TRY_LINK([#include <langinfo.h>],
-+ [char* cs = nl_langinfo(CODESET);],
-+ am_cv_langinfo_codeset=yes,
-+ am_cv_langinfo_codeset=no)
-+ ])
-+ if test $am_cv_langinfo_codeset = yes; then
-+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
-+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/gettext.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/gettext.m4 2004-09-12 14:40:34.826676496 -0400
-@@ -0,0 +1,487 @@
-+# gettext.m4 serial 28 (gettext-0.13)
-+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library 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 gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-+
-+dnl Macro to add for using GNU gettext.
-+
-+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-+dnl default (if it is not specified or empty) is 'no-libtool'.
-+dnl INTLSYMBOL should be 'external' for packages with no intl directory,
-+dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-+dnl If INTLSYMBOL is 'use-libtool', then a libtool library
-+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-+dnl depending on --{enable,disable}-{shared,static} and on the presence of
-+dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-+dnl $(top_builddir)/intl/libintl.a will be created.
-+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-+dnl implementations (in libc or libintl) without the ngettext() function
-+dnl will be ignored. If NEEDSYMBOL is specified and is
-+dnl 'need-formatstring-macros', then GNU gettext implementations that don't
-+dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-+dnl INTLDIR is used to find the intl libraries. If empty,
-+dnl the value `$(top_builddir)/intl/' is used.
-+dnl
-+dnl The result of the configuration is one of three cases:
-+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-+dnl and used.
-+dnl Catalog format: GNU --> install in $(datadir)
-+dnl Catalog extension: .mo after installation, .gmo in source tree
-+dnl 2) GNU gettext has been found in the system's C library.
-+dnl Catalog format: GNU --> install in $(datadir)
-+dnl Catalog extension: .mo after installation, .gmo in source tree
-+dnl 3) No internationalization, always use English msgid.
-+dnl Catalog format: none
-+dnl Catalog extension: none
-+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-+dnl The use of .gmo is historical (it was needed to avoid overwriting the
-+dnl GNU format catalogs when building on a platform with an X/Open gettext),
-+dnl but we keep it in order not to force irrelevant filename changes on the
-+dnl maintainers.
-+dnl
-+AC_DEFUN([AM_GNU_GETTEXT],
-+[
-+ dnl Argument checking.
-+ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
-+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-+])])])])])
-+ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
-+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-+])])])])
-+ define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
-+ define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
-+
-+ AC_REQUIRE([AM_PO_SUBDIRS])dnl
-+ ifelse(gt_included_intl, yes, [
-+ AC_REQUIRE([AM_INTL_SUBDIR])dnl
-+ ])
-+
-+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+ AC_REQUIRE([AC_LIB_RPATH])
-+
-+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
-+ dnl Ideally we would do this search only after the
-+ dnl if test "$USE_NLS" = "yes"; then
-+ dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-+ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
-+ dnl the configure script would need to contain the same shell code
-+ dnl again, outside any 'if'. There are two solutions:
-+ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
-+ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
-+ dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
-+ dnl documented, we avoid it.
-+ ifelse(gt_included_intl, yes, , [
-+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-+ ])
-+
-+ dnl Set USE_NLS.
-+ AM_NLS
-+
-+ ifelse(gt_included_intl, yes, [
-+ BUILD_INCLUDED_LIBINTL=no
-+ USE_INCLUDED_LIBINTL=no
-+ ])
-+ LIBINTL=
-+ LTLIBINTL=
-+ POSUB=
-+
-+ dnl If we use NLS figure out what method
-+ if test "$USE_NLS" = "yes"; then
-+ gt_use_preinstalled_gnugettext=no
-+ ifelse(gt_included_intl, yes, [
-+ AC_MSG_CHECKING([whether included gettext is requested])
-+ AC_ARG_WITH(included-gettext,
-+ [ --with-included-gettext use the GNU gettext library included here],
-+ nls_cv_force_use_gnu_gettext=$withval,
-+ nls_cv_force_use_gnu_gettext=no)
-+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-+
-+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-+ ])
-+ dnl User does not insist on using GNU NLS library. Figure out what
-+ dnl to use. If GNU gettext is available we use this. Else we have
-+ dnl to fall back to GNU NLS library.
-+
-+ dnl Add a version number to the cache macros.
-+ define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
-+ define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
-+ define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-+
-+ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
-+ [AC_TRY_LINK([#include <libintl.h>
-+]ifelse([$2], [need-formatstring-macros],
-+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-+#endif
-+changequote(,)dnl
-+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-+changequote([,])dnl
-+], [])[extern int _nl_msg_cat_cntr;
-+extern int *_nl_domain_bindings;],
-+ [bindtextdomain ("", "");
-+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
-+ gt_cv_func_gnugettext_libc=yes,
-+ gt_cv_func_gnugettext_libc=no)])
-+
-+ if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
-+ ifelse(gt_included_intl, yes, , [
-+ AM_ICONV_LINK
-+ ])
-+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
-+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
-+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
-+ dnl even if libiconv doesn't exist.
-+ AC_LIB_LINKFLAGS_BODY([intl])
-+ AC_CACHE_CHECK([for GNU gettext in libintl],
-+ gt_cv_func_gnugettext_libintl,
-+ [gt_save_CPPFLAGS="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS $INCINTL"
-+ gt_save_LIBS="$LIBS"
-+ LIBS="$LIBS $LIBINTL"
-+ dnl Now see whether libintl exists and does not depend on libiconv.
-+ AC_TRY_LINK([#include <libintl.h>
-+]ifelse([$2], [need-formatstring-macros],
-+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-+#endif
-+changequote(,)dnl
-+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-+changequote([,])dnl
-+], [])[extern int _nl_msg_cat_cntr;
-+extern
-+#ifdef __cplusplus
-+"C"
-+#endif
-+const char *_nl_expand_alias ();],
-+ [bindtextdomain ("", "");
-+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-+ gt_cv_func_gnugettext_libintl=yes,
-+ gt_cv_func_gnugettext_libintl=no)
-+ dnl Now see whether libintl exists and depends on libiconv.
-+ if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
-+ LIBS="$LIBS $LIBICONV"
-+ AC_TRY_LINK([#include <libintl.h>
-+]ifelse([$2], [need-formatstring-macros],
-+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-+#endif
-+changequote(,)dnl
-+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-+changequote([,])dnl
-+], [])[extern int _nl_msg_cat_cntr;
-+extern
-+#ifdef __cplusplus
-+"C"
-+#endif
-+const char *_nl_expand_alias ();],
-+ [bindtextdomain ("", "");
-+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-+ [LIBINTL="$LIBINTL $LIBICONV"
-+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-+ gt_cv_func_gnugettext_libintl=yes
-+ ])
-+ fi
-+ CPPFLAGS="$gt_save_CPPFLAGS"
-+ LIBS="$gt_save_LIBS"])
-+ fi
-+
-+ dnl If an already present or preinstalled GNU gettext() is found,
-+ dnl use it. But if this macro is used in GNU gettext, and GNU
-+ dnl gettext is already preinstalled in libintl, we update this
-+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
-+ if test "$gt_cv_func_gnugettext_libc" = "yes" \
-+ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
-+ && test "$PACKAGE" != gettext-runtime \
-+ && test "$PACKAGE" != gettext-tools; }; then
-+ gt_use_preinstalled_gnugettext=yes
-+ else
-+ dnl Reset the values set by searching for libintl.
-+ LIBINTL=
-+ LTLIBINTL=
-+ INCINTL=
-+ fi
-+
-+ ifelse(gt_included_intl, yes, [
-+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
-+ dnl GNU gettext is not found in the C library.
-+ dnl Fall back on included GNU gettext library.
-+ nls_cv_use_gnu_gettext=yes
-+ fi
-+ fi
-+
-+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
-+ dnl Mark actions used to generate GNU NLS library.
-+ BUILD_INCLUDED_LIBINTL=yes
-+ USE_INCLUDED_LIBINTL=yes
-+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
-+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
-+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
-+ fi
-+
-+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
-+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
-+ dnl Mark actions to use GNU gettext tools.
-+ CATOBJEXT=.gmo
-+ fi
-+ ])
-+
-+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
-+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
-+ AC_DEFINE(ENABLE_NLS, 1,
-+ [Define to 1 if translation of program messages to the user's native language
-+ is requested.])
-+ else
-+ USE_NLS=no
-+ fi
-+ fi
-+
-+ AC_MSG_CHECKING([whether to use NLS])
-+ AC_MSG_RESULT([$USE_NLS])
-+ if test "$USE_NLS" = "yes"; then
-+ AC_MSG_CHECKING([where the gettext function comes from])
-+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-+ gt_source="external libintl"
-+ else
-+ gt_source="libc"
-+ fi
-+ else
-+ gt_source="included intl directory"
-+ fi
-+ AC_MSG_RESULT([$gt_source])
-+ fi
-+
-+ if test "$USE_NLS" = "yes"; then
-+
-+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-+ AC_MSG_CHECKING([how to link with libintl])
-+ AC_MSG_RESULT([$LIBINTL])
-+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
-+ fi
-+
-+ dnl For backward compatibility. Some packages may be using this.
-+ AC_DEFINE(HAVE_GETTEXT, 1,
-+ [Define if the GNU gettext() function is already present or preinstalled.])
-+ AC_DEFINE(HAVE_DCGETTEXT, 1,
-+ [Define if the GNU dcgettext() function is already present or preinstalled.])
-+ fi
-+
-+ dnl We need to process the po/ directory.
-+ POSUB=po
-+ fi
-+
-+ ifelse(gt_included_intl, yes, [
-+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
-+ dnl to 'yes' because some of the testsuite requires it.
-+ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
-+ BUILD_INCLUDED_LIBINTL=yes
-+ fi
-+
-+ dnl Make all variables we use known to autoconf.
-+ AC_SUBST(BUILD_INCLUDED_LIBINTL)
-+ AC_SUBST(USE_INCLUDED_LIBINTL)
-+ AC_SUBST(CATOBJEXT)
-+
-+ dnl For backward compatibility. Some configure.ins may be using this.
-+ nls_cv_header_intl=
-+ nls_cv_header_libgt=
-+
-+ dnl For backward compatibility. Some Makefiles may be using this.
-+ DATADIRNAME=share
-+ AC_SUBST(DATADIRNAME)
-+
-+ dnl For backward compatibility. Some Makefiles may be using this.
-+ INSTOBJEXT=.mo
-+ AC_SUBST(INSTOBJEXT)
-+
-+ dnl For backward compatibility. Some Makefiles may be using this.
-+ GENCAT=gencat
-+ AC_SUBST(GENCAT)
-+
-+ dnl For backward compatibility. Some Makefiles may be using this.
-+ if test "$USE_INCLUDED_LIBINTL" = yes; then
-+ INTLOBJS="\$(GETTOBJS)"
-+ fi
-+ AC_SUBST(INTLOBJS)
-+
-+ dnl Enable libtool support if the surrounding package wishes it.
-+ INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
-+ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
-+ ])
-+
-+ dnl For backward compatibility. Some Makefiles may be using this.
-+ INTLLIBS="$LIBINTL"
-+ AC_SUBST(INTLLIBS)
-+
-+ dnl Make all documented variables known to autoconf.
-+ AC_SUBST(LIBINTL)
-+ AC_SUBST(LTLIBINTL)
-+ AC_SUBST(POSUB)
-+])
-+
-+
-+dnl Checks for all prerequisites of the intl subdirectory,
-+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-+dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-+AC_DEFUN([AM_INTL_SUBDIR],
-+[
-+ AC_REQUIRE([AC_PROG_INSTALL])dnl
-+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-+ AC_REQUIRE([AC_PROG_CC])dnl
-+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+ AC_REQUIRE([AC_PROG_RANLIB])dnl
-+ AC_REQUIRE([AC_ISC_POSIX])dnl
-+ AC_REQUIRE([AC_HEADER_STDC])dnl
-+ AC_REQUIRE([AC_C_CONST])dnl
-+ AC_REQUIRE([bh_C_SIGNED])dnl
-+ AC_REQUIRE([AC_C_INLINE])dnl
-+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
-+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-+ AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl
-+ AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
-+ AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
-+ AC_REQUIRE([gt_TYPE_WINT_T])dnl
-+ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
-+ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
-+ AC_REQUIRE([gt_TYPE_INTMAX_T])
-+ AC_REQUIRE([gt_PRINTF_POSIX])
-+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
-+ AC_REQUIRE([AC_FUNC_MMAP])dnl
-+ AC_REQUIRE([jm_GLIBC21])dnl
-+ AC_REQUIRE([gt_INTDIV0])dnl
-+ AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
-+ AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
-+ AC_REQUIRE([gt_INTTYPES_PRI])dnl
-+ AC_REQUIRE([gl_XSIZE])dnl
-+
-+ AC_CHECK_TYPE([ptrdiff_t], ,
-+ [AC_DEFINE([ptrdiff_t], [long],
-+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
-+ ])
-+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-+stdlib.h string.h unistd.h sys/param.h])
-+ AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
-+mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
-+strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
-+__fsetlocking])
-+
-+ dnl Use the _snprintf function only if it is declared (because on NetBSD it
-+ dnl is defined as a weak alias of snprintf; we prefer to use the latter).
-+ gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
-+ gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
-+
-+ dnl Use the *_unlocked functions only if they are declared.
-+ dnl (because some of them were defined without being declared in Solaris
-+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
-+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
-+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
-+ gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
-+ gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
-+ gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
-+
-+ case $gt_cv_func_printf_posix in
-+ *yes) HAVE_POSIX_PRINTF=1 ;;
-+ *) HAVE_POSIX_PRINTF=0 ;;
-+ esac
-+ AC_SUBST([HAVE_POSIX_PRINTF])
-+ if test "$ac_cv_func_asprintf" = yes; then
-+ HAVE_ASPRINTF=1
-+ else
-+ HAVE_ASPRINTF=0
-+ fi
-+ AC_SUBST([HAVE_ASPRINTF])
-+ if test "$ac_cv_func_snprintf" = yes; then
-+ HAVE_SNPRINTF=1
-+ else
-+ HAVE_SNPRINTF=0
-+ fi
-+ AC_SUBST([HAVE_SNPRINTF])
-+ if test "$ac_cv_func_wprintf" = yes; then
-+ HAVE_WPRINTF=1
-+ else
-+ HAVE_WPRINTF=0
-+ fi
-+ AC_SUBST([HAVE_WPRINTF])
-+
-+ AM_ICONV
-+ AM_LANGINFO_CODESET
-+ if test $ac_cv_header_locale_h = yes; then
-+ AM_LC_MESSAGES
-+ fi
-+
-+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
-+ dnl because plural.y uses bison specific features. It requires at least
-+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
-+ dnl compile.
-+ dnl bison is only needed for the maintainer (who touches plural.y). But in
-+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
-+ dnl the rule in general Makefile. Now, some people carelessly touch the
-+ dnl files or have a broken "make" program, hence the plural.c rule will
-+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
-+ dnl present or too old.
-+ AC_CHECK_PROGS([INTLBISON], [bison])
-+ if test -z "$INTLBISON"; then
-+ ac_verc_fail=yes
-+ else
-+ dnl Found it, now check the version.
-+ AC_MSG_CHECKING([version of bison])
-+changequote(<<,>>)dnl
-+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-+ case $ac_prog_version in
-+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-+changequote([,])dnl
-+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-+ esac
-+ AC_MSG_RESULT([$ac_prog_version])
-+ fi
-+ if test $ac_verc_fail = yes; then
-+ INTLBISON=:
-+ fi
-+])
-+
-+
-+dnl gt_CHECK_DECL(FUNC, INCLUDES)
-+dnl Check whether a function is declared.
-+AC_DEFUN([gt_CHECK_DECL],
-+[
-+ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
-+ [AC_TRY_COMPILE([$2], [
-+#ifndef $1
-+ char *p = (char *) $1;
-+#endif
-+], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
-+ if test $ac_cv_have_decl_$1 = yes; then
-+ gt_value=1
-+ else
-+ gt_value=0
-+ fi
-+ AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
-+ [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
-+])
-+
-+
-+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
---- lrzsz-0.12.20.safe/m4/glibc21.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/glibc21.m4 2004-09-12 14:40:34.833675432 -0400
-@@ -0,0 +1,32 @@
-+# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
-+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+# Test for the GNU C Library, version 2.1 or newer.
-+# From Bruno Haible.
-+
-+AC_DEFUN([jm_GLIBC21],
-+ [
-+ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
-+ ac_cv_gnu_library_2_1,
-+ [AC_EGREP_CPP([Lucky GNU user],
-+ [
-+#include <features.h>
-+#ifdef __GNU_LIBRARY__
-+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-+ Lucky GNU user
-+ #endif
-+#endif
-+ ],
-+ ac_cv_gnu_library_2_1=yes,
-+ ac_cv_gnu_library_2_1=no)
-+ ]
-+ )
-+ AC_SUBST(GLIBC21)
-+ GLIBC21="$ac_cv_gnu_library_2_1"
-+ ]
-+)
---- lrzsz-0.12.20.safe/m4/iconv.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/iconv.m4 2004-09-12 14:40:34.839674520 -0400
-@@ -0,0 +1,103 @@
-+# iconv.m4 serial AM4 (gettext-0.11.3)
-+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-+[
-+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+ AC_REQUIRE([AC_LIB_RPATH])
-+
-+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-+ dnl accordingly.
-+ AC_LIB_LINKFLAGS_BODY([iconv])
-+])
-+
-+AC_DEFUN([AM_ICONV_LINK],
-+[
-+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
-+ dnl those with the standalone portable GNU libiconv installed).
-+
-+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-+ dnl accordingly.
-+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-+
-+ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
-+ dnl because if the user has installed libiconv and not disabled its use
-+ dnl via --without-libiconv-prefix, he wants to use it. The first
-+ dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
-+ am_save_CPPFLAGS="$CPPFLAGS"
-+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-+
-+ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
-+ am_cv_func_iconv="no, consider installing GNU libiconv"
-+ am_cv_lib_iconv=no
-+ AC_TRY_LINK([#include <stdlib.h>
-+#include <iconv.h>],
-+ [iconv_t cd = iconv_open("","");
-+ iconv(cd,NULL,NULL,NULL,NULL);
-+ iconv_close(cd);],
-+ am_cv_func_iconv=yes)
-+ if test "$am_cv_func_iconv" != yes; then
-+ am_save_LIBS="$LIBS"
-+ LIBS="$LIBS $LIBICONV"
-+ AC_TRY_LINK([#include <stdlib.h>
-+#include <iconv.h>],
-+ [iconv_t cd = iconv_open("","");
-+ iconv(cd,NULL,NULL,NULL,NULL);
-+ iconv_close(cd);],
-+ am_cv_lib_iconv=yes
-+ am_cv_func_iconv=yes)
-+ LIBS="$am_save_LIBS"
-+ fi
-+ ])
-+ if test "$am_cv_func_iconv" = yes; then
-+ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
-+ fi
-+ if test "$am_cv_lib_iconv" = yes; then
-+ AC_MSG_CHECKING([how to link with libiconv])
-+ AC_MSG_RESULT([$LIBICONV])
-+ else
-+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
-+ dnl either.
-+ CPPFLAGS="$am_save_CPPFLAGS"
-+ LIBICONV=
-+ LTLIBICONV=
-+ fi
-+ AC_SUBST(LIBICONV)
-+ AC_SUBST(LTLIBICONV)
-+])
-+
-+AC_DEFUN([AM_ICONV],
-+[
-+ AM_ICONV_LINK
-+ if test "$am_cv_func_iconv" = yes; then
-+ AC_MSG_CHECKING([for iconv declaration])
-+ AC_CACHE_VAL(am_cv_proto_iconv, [
-+ AC_TRY_COMPILE([
-+#include <stdlib.h>
-+#include <iconv.h>
-+extern
-+#ifdef __cplusplus
-+"C"
-+#endif
-+#if defined(__STDC__) || defined(__cplusplus)
-+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-+#else
-+size_t iconv();
-+#endif
-+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
-+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
-+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-+ AC_MSG_RESULT([$]{ac_t:-
-+ }[$]am_cv_proto_iconv)
-+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
-+ [Define as const if the declaration of iconv() needs const.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/intdiv0.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/intdiv0.m4 2004-09-12 14:40:34.845673608 -0400
-@@ -0,0 +1,72 @@
-+# intdiv0.m4 serial 1 (gettext-0.11.3)
-+dnl Copyright (C) 2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([gt_INTDIV0],
-+[
-+ AC_REQUIRE([AC_PROG_CC])dnl
-+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+
-+ AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
-+ gt_cv_int_divbyzero_sigfpe,
-+ [
-+ AC_TRY_RUN([
-+#include <stdlib.h>
-+#include <signal.h>
-+
-+static void
-+#ifdef __cplusplus
-+sigfpe_handler (int sig)
-+#else
-+sigfpe_handler (sig) int sig;
-+#endif
-+{
-+ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
-+ exit (sig != SIGFPE);
-+}
-+
-+int x = 1;
-+int y = 0;
-+int z;
-+int nan;
-+
-+int main ()
-+{
-+ signal (SIGFPE, sigfpe_handler);
-+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
-+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
-+ signal (SIGTRAP, sigfpe_handler);
-+#endif
-+/* Linux/SPARC yields signal SIGILL. */
-+#if defined (__sparc__) && defined (__linux__)
-+ signal (SIGILL, sigfpe_handler);
-+#endif
-+
-+ z = x / y;
-+ nan = y / y;
-+ exit (1);
-+}
-+], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
-+ [
-+ # Guess based on the CPU.
-+ case "$host_cpu" in
-+ alpha* | i[34567]86 | m68k | s390*)
-+ gt_cv_int_divbyzero_sigfpe="guessing yes";;
-+ *)
-+ gt_cv_int_divbyzero_sigfpe="guessing no";;
-+ esac
-+ ])
-+ ])
-+ case "$gt_cv_int_divbyzero_sigfpe" in
-+ *yes) value=1;;
-+ *) value=0;;
-+ esac
-+ AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
-+ [Define if integer division by zero raises signal SIGFPE.])
-+])
---- lrzsz-0.12.20.safe/m4/intmax.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/intmax.m4 2004-09-12 14:40:34.855672088 -0400
-@@ -0,0 +1,32 @@
-+# intmax.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether the system has the 'intmax_t' type, but don't attempt to
-+dnl find a replacement if it is lacking.
-+
-+AC_DEFUN([gt_TYPE_INTMAX_T],
-+[
-+ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
-+ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
-+ AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
-+ [AC_TRY_COMPILE([
-+#include <stddef.h>
-+#include <stdlib.h>
-+#if HAVE_STDINT_H_WITH_UINTMAX
-+#include <stdint.h>
-+#endif
-+#if HAVE_INTTYPES_H_WITH_UINTMAX
-+#include <inttypes.h>
-+#endif
-+], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
-+ if test $gt_cv_c_intmax_t = yes; then
-+ AC_DEFINE(HAVE_INTMAX_T, 1,
-+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/inttypes_h.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/inttypes_h.m4 2004-09-12 14:40:34.868670112 -0400
-@@ -0,0 +1,28 @@
-+# inttypes_h.m4 serial 5 (gettext-0.12)
-+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-+# doesn't clash with <sys/types.h>, and declares uintmax_t.
-+
-+AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
-+[
-+ AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
-+ [AC_TRY_COMPILE(
-+ [#include <sys/types.h>
-+#include <inttypes.h>],
-+ [uintmax_t i = (uintmax_t) -1;],
-+ jm_ac_cv_header_inttypes_h=yes,
-+ jm_ac_cv_header_inttypes_h=no)])
-+ if test $jm_ac_cv_header_inttypes_h = yes; then
-+ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
-+ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
-+ and declares uintmax_t. ])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/inttypes.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/inttypes.m4 2004-09-12 14:40:34.861671176 -0400
-@@ -0,0 +1,27 @@
-+# inttypes.m4 serial 1 (gettext-0.11.4)
-+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-+# <sys/types.h>.
-+
-+AC_DEFUN([gt_HEADER_INTTYPES_H],
-+[
-+ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
-+ [
-+ AC_TRY_COMPILE(
-+ [#include <sys/types.h>
-+#include <inttypes.h>],
-+ [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
-+ ])
-+ if test $gt_cv_header_inttypes_h = yes; then
-+ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
-+ [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/inttypes-pri.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/inttypes-pri.m4 2004-09-12 14:40:34.874669200 -0400
-@@ -0,0 +1,32 @@
-+# inttypes-pri.m4 serial 1 (gettext-0.11.4)
-+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
-+# macros to non-string values. This is the case on AIX 4.3.3.
-+
-+AC_DEFUN([gt_INTTYPES_PRI],
-+[
-+ AC_REQUIRE([gt_HEADER_INTTYPES_H])
-+ if test $gt_cv_header_inttypes_h = yes; then
-+ AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
-+ gt_cv_inttypes_pri_broken,
-+ [
-+ AC_TRY_COMPILE([#include <inttypes.h>
-+#ifdef PRId32
-+char *p = PRId32;
-+#endif
-+], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
-+ ])
-+ fi
-+ if test "$gt_cv_inttypes_pri_broken" = yes; then
-+ AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
-+ [Define if <inttypes.h> exists and defines unusable PRI* macros.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/isc-posix.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/isc-posix.m4 2004-09-12 14:40:34.885667528 -0400
-@@ -0,0 +1,26 @@
-+# isc-posix.m4 serial 2 (gettext-0.11.2)
-+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
-+
-+# This test replaces the one in autoconf.
-+# Currently this macro should have the same name as the autoconf macro
-+# because gettext's gettext.m4 (distributed in the automake package)
-+# still uses it. Otherwise, the use in gettext.m4 makes autoheader
-+# give these diagnostics:
-+# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-+# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-+
-+undefine([AC_ISC_POSIX])
-+
-+AC_DEFUN([AC_ISC_POSIX],
-+ [
-+ dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
-+ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
-+ ]
-+)
---- lrzsz-0.12.20.safe/m4/lcmessage.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/lcmessage.m4 2004-09-12 14:40:34.902664944 -0400
-@@ -0,0 +1,32 @@
-+# lcmessage.m4 serial 3 (gettext-0.11.3)
-+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library 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 gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
-+
-+# Check whether LC_MESSAGES is available in <locale.h>.
-+
-+AC_DEFUN([AM_LC_MESSAGES],
-+[
-+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
-+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
-+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
-+ if test $am_cv_val_LC_MESSAGES = yes; then
-+ AC_DEFINE(HAVE_LC_MESSAGES, 1,
-+ [Define if your <locale.h> file defines LC_MESSAGES.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/lib-ld.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/lib-ld.m4 2004-09-12 14:40:34.908664032 -0400
-@@ -0,0 +1,112 @@
-+# lib-ld.m4 serial 3 (gettext-0.13)
-+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl Subroutines of libtool.m4,
-+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-+dnl with libtool.m4.
-+
-+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-+AC_DEFUN([AC_LIB_PROG_LD_GNU],
-+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-+case `$LD -v 2>&1 </dev/null` in
-+*GNU* | *'with BFD'*)
-+ acl_cv_prog_gnu_ld=yes ;;
-+*)
-+ acl_cv_prog_gnu_ld=no ;;
-+esac])
-+with_gnu_ld=$acl_cv_prog_gnu_ld
-+])
-+
-+dnl From libtool-1.4. Sets the variable LD.
-+AC_DEFUN([AC_LIB_PROG_LD],
-+[AC_ARG_WITH(gnu-ld,
-+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-+AC_REQUIRE([AC_PROG_CC])dnl
-+AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+# Prepare PATH_SEPARATOR.
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+ echo "#! /bin/sh" >conf$$.sh
-+ echo "exit 0" >>conf$$.sh
-+ chmod +x conf$$.sh
-+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-+ PATH_SEPARATOR=';'
-+ else
-+ PATH_SEPARATOR=:
-+ fi
-+ rm -f conf$$.sh
-+fi
-+ac_prog=ld
-+if test "$GCC" = yes; then
-+ # Check if gcc -print-prog-name=ld gives a path.
-+ AC_MSG_CHECKING([for ld used by GCC])
-+ case $host in
-+ *-*-mingw*)
-+ # gcc leaves a trailing carriage return which upsets mingw
-+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-+ *)
-+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-+ esac
-+ case $ac_prog in
-+ # Accept absolute paths.
-+ [[\\/]* | [A-Za-z]:[\\/]*)]
-+ [re_direlt='/[^/][^/]*/\.\./']
-+ # Canonicalize the path of ld
-+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-+ done
-+ test -z "$LD" && LD="$ac_prog"
-+ ;;
-+ "")
-+ # If it fails, then pretend we aren't using GCC.
-+ ac_prog=ld
-+ ;;
-+ *)
-+ # If it is relative, then search for the first ld in PATH.
-+ with_gnu_ld=unknown
-+ ;;
-+ esac
-+elif test "$with_gnu_ld" = yes; then
-+ AC_MSG_CHECKING([for GNU ld])
-+else
-+ AC_MSG_CHECKING([for non-GNU ld])
-+fi
-+AC_CACHE_VAL(acl_cv_path_LD,
-+[if test -z "$LD"; then
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-+ for ac_dir in $PATH; do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-+ acl_cv_path_LD="$ac_dir/$ac_prog"
-+ # Check to see if the program is GNU ld. I'd rather use --version,
-+ # but apparently some GNU ld's only accept -v.
-+ # Break only if it was the GNU/non-GNU ld that we prefer.
-+ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
-+ *GNU* | *'with BFD'*)
-+ test "$with_gnu_ld" != no && break ;;
-+ *)
-+ test "$with_gnu_ld" != yes && break ;;
-+ esac
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+else
-+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
-+fi])
-+LD="$acl_cv_path_LD"
-+if test -n "$LD"; then
-+ AC_MSG_RESULT($LD)
-+else
-+ AC_MSG_RESULT(no)
-+fi
-+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-+AC_LIB_PROG_LD_GNU
-+])
---- lrzsz-0.12.20.safe/m4/lib-link.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/lib-link.m4 2004-09-12 14:40:34.914663120 -0400
-@@ -0,0 +1,551 @@
-+# lib-link.m4 serial 4 (gettext-0.12)
-+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-+dnl the libraries corresponding to explicit and implicit dependencies.
-+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-+dnl augments the CPPFLAGS variable.
-+AC_DEFUN([AC_LIB_LINKFLAGS],
-+[
-+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+ AC_REQUIRE([AC_LIB_RPATH])
-+ define([Name],[translit([$1],[./-], [___])])
-+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
-+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
-+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
-+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
-+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
-+ ])
-+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
-+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
-+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
-+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-+ AC_SUBST([LIB]NAME)
-+ AC_SUBST([LTLIB]NAME)
-+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
-+ dnl results of this search when this library appears as a dependency.
-+ HAVE_LIB[]NAME=yes
-+ undefine([Name])
-+ undefine([NAME])
-+])
-+
-+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
-+dnl searches for libname and the libraries corresponding to explicit and
-+dnl implicit dependencies, together with the specified include files and
-+dnl the ability to compile and link the specified testcode. If found, it
-+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-+[
-+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+ AC_REQUIRE([AC_LIB_RPATH])
-+ define([Name],[translit([$1],[./-], [___])])
-+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+
-+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
-+ dnl accordingly.
-+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
-+
-+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
-+ dnl because if the user has installed lib[]Name and not disabled its use
-+ dnl via --without-lib[]Name-prefix, he wants to use it.
-+ ac_save_CPPFLAGS="$CPPFLAGS"
-+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-+
-+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
-+ ac_save_LIBS="$LIBS"
-+ LIBS="$LIBS $LIB[]NAME"
-+ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
-+ LIBS="$ac_save_LIBS"
-+ ])
-+ if test "$ac_cv_lib[]Name" = yes; then
-+ HAVE_LIB[]NAME=yes
-+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
-+ AC_MSG_CHECKING([how to link with lib[]$1])
-+ AC_MSG_RESULT([$LIB[]NAME])
-+ else
-+ HAVE_LIB[]NAME=no
-+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
-+ dnl $INC[]NAME either.
-+ CPPFLAGS="$ac_save_CPPFLAGS"
-+ LIB[]NAME=
-+ LTLIB[]NAME=
-+ fi
-+ AC_SUBST([HAVE_LIB]NAME)
-+ AC_SUBST([LIB]NAME)
-+ AC_SUBST([LTLIB]NAME)
-+ undefine([Name])
-+ undefine([NAME])
-+])
-+
-+dnl Determine the platform dependent parameters needed to use rpath:
-+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-+dnl hardcode_direct, hardcode_minus_L.
-+AC_DEFUN([AC_LIB_RPATH],
-+[
-+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
-+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
-+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
-+ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
-+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-+ . ./conftest.sh
-+ rm -f ./conftest.sh
-+ acl_cv_rpath=done
-+ ])
-+ wl="$acl_cv_wl"
-+ libext="$acl_cv_libext"
-+ shlibext="$acl_cv_shlibext"
-+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-+ hardcode_direct="$acl_cv_hardcode_direct"
-+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
-+ dnl Determine whether the user wants rpath handling at all.
-+ AC_ARG_ENABLE(rpath,
-+ [ --disable-rpath do not hardcode runtime library paths],
-+ :, enable_rpath=yes)
-+])
-+
-+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-+dnl the libraries corresponding to explicit and implicit dependencies.
-+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-+[
-+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+ dnl By default, look in $includedir and $libdir.
-+ use_additional=yes
-+ AC_LIB_WITH_FINAL_PREFIX([
-+ eval additional_includedir=\"$includedir\"
-+ eval additional_libdir=\"$libdir\"
-+ ])
-+ AC_LIB_ARG_WITH([lib$1-prefix],
-+[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
-+ --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
-+[
-+ if test "X$withval" = "Xno"; then
-+ use_additional=no
-+ else
-+ if test "X$withval" = "X"; then
-+ AC_LIB_WITH_FINAL_PREFIX([
-+ eval additional_includedir=\"$includedir\"
-+ eval additional_libdir=\"$libdir\"
-+ ])
-+ else
-+ additional_includedir="$withval/include"
-+ additional_libdir="$withval/lib"
-+ fi
-+ fi
-+])
-+ dnl Search the library and its dependencies in $additional_libdir and
-+ dnl $LDFLAGS. Using breadth-first-seach.
-+ LIB[]NAME=
-+ LTLIB[]NAME=
-+ INC[]NAME=
-+ rpathdirs=
-+ ltrpathdirs=
-+ names_already_handled=
-+ names_next_round='$1 $2'
-+ while test -n "$names_next_round"; do
-+ names_this_round="$names_next_round"
-+ names_next_round=
-+ for name in $names_this_round; do
-+ already_handled=
-+ for n in $names_already_handled; do
-+ if test "$n" = "$name"; then
-+ already_handled=yes
-+ break
-+ fi
-+ done
-+ if test -z "$already_handled"; then
-+ names_already_handled="$names_already_handled $name"
-+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
-+ dnl or AC_LIB_HAVE_LINKFLAGS call.
-+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-+ eval value=\"\$HAVE_LIB$uppername\"
-+ if test -n "$value"; then
-+ if test "$value" = yes; then
-+ eval value=\"\$LIB$uppername\"
-+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
-+ eval value=\"\$LTLIB$uppername\"
-+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
-+ else
-+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
-+ dnl that this library doesn't exist. So just drop it.
-+ :
-+ fi
-+ else
-+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
-+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
-+ found_dir=
-+ found_la=
-+ found_so=
-+ found_a=
-+ if test $use_additional = yes; then
-+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
-+ found_dir="$additional_libdir"
-+ found_so="$additional_libdir/lib$name.$shlibext"
-+ if test -f "$additional_libdir/lib$name.la"; then
-+ found_la="$additional_libdir/lib$name.la"
-+ fi
-+ else
-+ if test -f "$additional_libdir/lib$name.$libext"; then
-+ found_dir="$additional_libdir"
-+ found_a="$additional_libdir/lib$name.$libext"
-+ if test -f "$additional_libdir/lib$name.la"; then
-+ found_la="$additional_libdir/lib$name.la"
-+ fi
-+ fi
-+ fi
-+ fi
-+ if test "X$found_dir" = "X"; then
-+ for x in $LDFLAGS $LTLIB[]NAME; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ case "$x" in
-+ -L*)
-+ dir=`echo "X$x" | sed -e 's/^X-L//'`
-+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
-+ found_dir="$dir"
-+ found_so="$dir/lib$name.$shlibext"
-+ if test -f "$dir/lib$name.la"; then
-+ found_la="$dir/lib$name.la"
-+ fi
-+ else
-+ if test -f "$dir/lib$name.$libext"; then
-+ found_dir="$dir"
-+ found_a="$dir/lib$name.$libext"
-+ if test -f "$dir/lib$name.la"; then
-+ found_la="$dir/lib$name.la"
-+ fi
-+ fi
-+ fi
-+ ;;
-+ esac
-+ if test "X$found_dir" != "X"; then
-+ break
-+ fi
-+ done
-+ fi
-+ if test "X$found_dir" != "X"; then
-+ dnl Found the library.
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
-+ if test "X$found_so" != "X"; then
-+ dnl Linking with a shared library. We attempt to hardcode its
-+ dnl directory into the executable's runpath, unless it's the
-+ dnl standard /usr/lib.
-+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
-+ dnl No hardcoding is needed.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+ else
-+ dnl Use an explicit option to hardcode DIR into the resulting
-+ dnl binary.
-+ dnl Potentially add DIR to ltrpathdirs.
-+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-+ haveit=
-+ for x in $ltrpathdirs; do
-+ if test "X$x" = "X$found_dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ ltrpathdirs="$ltrpathdirs $found_dir"
-+ fi
-+ dnl The hardcoding into $LIBNAME is system dependent.
-+ if test "$hardcode_direct" = yes; then
-+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
-+ dnl resulting binary.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+ else
-+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
-+ dnl Use an explicit option to hardcode DIR into the resulting
-+ dnl binary.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+ dnl Potentially add DIR to rpathdirs.
-+ dnl The rpathdirs will be appended to $LIBNAME at the end.
-+ haveit=
-+ for x in $rpathdirs; do
-+ if test "X$x" = "X$found_dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ rpathdirs="$rpathdirs $found_dir"
-+ fi
-+ else
-+ dnl Rely on "-L$found_dir".
-+ dnl But don't add it if it's already contained in the LDFLAGS
-+ dnl or the already constructed $LIBNAME
-+ haveit=
-+ for x in $LDFLAGS $LIB[]NAME; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-L$found_dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
-+ fi
-+ if test "$hardcode_minus_L" != no; then
-+ dnl FIXME: Not sure whether we should use
-+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-+ dnl here.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+ else
-+ dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
-+ dnl here, because this doesn't fit in flags passed to the
-+ dnl compiler. So give up. No hardcoding. This affects only
-+ dnl very old systems.
-+ dnl FIXME: Not sure whether we should use
-+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-+ dnl here.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-+ fi
-+ fi
-+ fi
-+ fi
-+ else
-+ if test "X$found_a" != "X"; then
-+ dnl Linking with a static library.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
-+ else
-+ dnl We shouldn't come here, but anyway it's good to have a
-+ dnl fallback.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
-+ fi
-+ fi
-+ dnl Assume the include files are nearby.
-+ additional_includedir=
-+ case "$found_dir" in
-+ */lib | */lib/)
-+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
-+ additional_includedir="$basedir/include"
-+ ;;
-+ esac
-+ if test "X$additional_includedir" != "X"; then
-+ dnl Potentially add $additional_includedir to $INCNAME.
-+ dnl But don't add it
-+ dnl 1. if it's the standard /usr/include,
-+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
-+ dnl 3. if it's already present in $CPPFLAGS or the already
-+ dnl constructed $INCNAME,
-+ dnl 4. if it doesn't exist as a directory.
-+ if test "X$additional_includedir" != "X/usr/include"; then
-+ haveit=
-+ if test "X$additional_includedir" = "X/usr/local/include"; then
-+ if test -n "$GCC"; then
-+ case $host_os in
-+ linux*) haveit=yes;;
-+ esac
-+ fi
-+ fi
-+ if test -z "$haveit"; then
-+ for x in $CPPFLAGS $INC[]NAME; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-I$additional_includedir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ if test -d "$additional_includedir"; then
-+ dnl Really add $additional_includedir to $INCNAME.
-+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
-+ fi
-+ fi
-+ fi
-+ fi
-+ fi
-+ dnl Look for dependencies.
-+ if test -n "$found_la"; then
-+ dnl Read the .la file. It defines the variables
-+ dnl dlname, library_names, old_library, dependency_libs, current,
-+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
-+ save_libdir="$libdir"
-+ case "$found_la" in
-+ */* | *\\*) . "$found_la" ;;
-+ *) . "./$found_la" ;;
-+ esac
-+ libdir="$save_libdir"
-+ dnl We use only dependency_libs.
-+ 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.
-+ 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/lib"; then
-+ haveit=
-+ if test "X$additional_libdir" = "X/usr/local/lib"; then
-+ if test -n "$GCC"; then
-+ case $host_os in
-+ linux*) haveit=yes;;
-+ esac
-+ fi
-+ fi
-+ if test -z "$haveit"; then
-+ 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
-+ 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"
-+ 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
-+ 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"
-+ fi
-+ fi
-+ fi
-+ fi
-+ ;;
-+ -R*)
-+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
-+ if test "$enable_rpath" != no; then
-+ dnl Potentially add DIR to rpathdirs.
-+ dnl The rpathdirs will be appended to $LIBNAME at the end.
-+ haveit=
-+ for x in $rpathdirs; do
-+ if test "X$x" = "X$dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ rpathdirs="$rpathdirs $dir"
-+ fi
-+ dnl Potentially add DIR to ltrpathdirs.
-+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-+ haveit=
-+ for x in $ltrpathdirs; do
-+ if test "X$x" = "X$dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ ltrpathdirs="$ltrpathdirs $dir"
-+ fi
-+ fi
-+ ;;
-+ -l*)
-+ dnl Handle this in the next round.
-+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-+ ;;
-+ *.la)
-+ dnl Handle this in the next round. Throw away the .la's
-+ dnl directory; it is already contained in a preceding -L
-+ dnl option.
-+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-+ ;;
-+ *)
-+ dnl Most likely an immediate library name.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
-+ ;;
-+ esac
-+ done
-+ fi
-+ else
-+ dnl Didn't find the library; assume it is in the system directories
-+ dnl known to the linker and runtime loader. (All the system
-+ dnl directories known to the linker should also be known to the
-+ dnl runtime loader, otherwise the system is severely misconfigured.)
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
-+ fi
-+ fi
-+ fi
-+ done
-+ done
-+ if test "X$rpathdirs" != "X"; then
-+ if test -n "$hardcode_libdir_separator"; then
-+ dnl Weird platform: only the last -rpath option counts, the user must
-+ dnl pass all path elements in one option. We can arrange that for a
-+ dnl single library, but not when more than one $LIBNAMEs are used.
-+ alldirs=
-+ for found_dir in $rpathdirs; do
-+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
-+ done
-+ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
-+ acl_save_libdir="$libdir"
-+ libdir="$alldirs"
-+ eval flag=\"$hardcode_libdir_flag_spec\"
-+ libdir="$acl_save_libdir"
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-+ else
-+ dnl The -rpath options are cumulative.
-+ for found_dir in $rpathdirs; do
-+ acl_save_libdir="$libdir"
-+ libdir="$found_dir"
-+ eval flag=\"$hardcode_libdir_flag_spec\"
-+ libdir="$acl_save_libdir"
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-+ done
-+ fi
-+ fi
-+ if test "X$ltrpathdirs" != "X"; then
-+ dnl When using libtool, the option that works for both libraries and
-+ dnl executables is -R. The -R options are cumulative.
-+ for found_dir in $ltrpathdirs; do
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
-+ done
-+ fi
-+])
-+
-+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-+dnl unless already present in VAR.
-+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-+dnl contains two or three consecutive elements that belong together.
-+AC_DEFUN([AC_LIB_APPENDTOVAR],
-+[
-+ for element in [$2]; do
-+ haveit=
-+ for x in $[$1]; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X$element"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ [$1]="${[$1]}${[$1]:+ }$element"
-+ fi
-+ done
-+])
---- lrzsz-0.12.20.safe/m4/lib-prefix.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/lib-prefix.m4 2004-09-12 14:40:34.921662056 -0400
-@@ -0,0 +1,155 @@
-+# lib-prefix.m4 serial 3 (gettext-0.13)
-+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-+dnl require excessive bracketing.
-+ifdef([AC_HELP_STRING],
-+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-+
-+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-+dnl to access previously installed libraries. The basic assumption is that
-+dnl a user will want packages to use other packages he previously installed
-+dnl with the same --prefix option.
-+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-+dnl libraries, but is otherwise very convenient.
-+AC_DEFUN([AC_LIB_PREFIX],
-+[
-+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST])
-+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+ dnl By default, look in $includedir and $libdir.
-+ use_additional=yes
-+ AC_LIB_WITH_FINAL_PREFIX([
-+ eval additional_includedir=\"$includedir\"
-+ eval additional_libdir=\"$libdir\"
-+ ])
-+ AC_LIB_ARG_WITH([lib-prefix],
-+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
-+ --without-lib-prefix don't search for libraries in includedir and libdir],
-+[
-+ if test "X$withval" = "Xno"; then
-+ use_additional=no
-+ else
-+ if test "X$withval" = "X"; then
-+ AC_LIB_WITH_FINAL_PREFIX([
-+ eval additional_includedir=\"$includedir\"
-+ eval additional_libdir=\"$libdir\"
-+ ])
-+ else
-+ additional_includedir="$withval/include"
-+ additional_libdir="$withval/lib"
-+ fi
-+ fi
-+])
-+ if test $use_additional = yes; then
-+ dnl Potentially add $additional_includedir to $CPPFLAGS.
-+ dnl But don't add it
-+ dnl 1. if it's the standard /usr/include,
-+ dnl 2. if it's already present in $CPPFLAGS,
-+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
-+ dnl 4. if it doesn't exist as a directory.
-+ if test "X$additional_includedir" != "X/usr/include"; then
-+ haveit=
-+ for x in $CPPFLAGS; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-I$additional_includedir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ if test "X$additional_includedir" = "X/usr/local/include"; then
-+ if test -n "$GCC"; then
-+ case $host_os in
-+ linux*) haveit=yes;;
-+ esac
-+ fi
-+ fi
-+ if test -z "$haveit"; then
-+ if test -d "$additional_includedir"; then
-+ dnl Really add $additional_includedir to $CPPFLAGS.
-+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
-+ fi
-+ fi
-+ fi
-+ fi
-+ dnl Potentially add $additional_libdir to $LDFLAGS.
-+ dnl But don't add it
-+ dnl 1. if it's the standard /usr/lib,
-+ dnl 2. if it's already present in $LDFLAGS,
-+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
-+ dnl 4. if it doesn't exist as a directory.
-+ if test "X$additional_libdir" != "X/usr/lib"; then
-+ haveit=
-+ for x in $LDFLAGS; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-L$additional_libdir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ if test "X$additional_libdir" = "X/usr/local/lib"; then
-+ if test -n "$GCC"; then
-+ case $host_os in
-+ linux*) haveit=yes;;
-+ esac
-+ fi
-+ fi
-+ if test -z "$haveit"; then
-+ if test -d "$additional_libdir"; then
-+ dnl Really add $additional_libdir to $LDFLAGS.
-+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
-+ fi
-+ fi
-+ fi
-+ fi
-+ fi
-+])
-+
-+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-+dnl acl_final_exec_prefix, containing the values to which $prefix and
-+dnl $exec_prefix will expand at the end of the configure script.
-+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-+[
-+ dnl Unfortunately, prefix and exec_prefix get only finally determined
-+ dnl at the end of configure.
-+ if test "X$prefix" = "XNONE"; then
-+ acl_final_prefix="$ac_default_prefix"
-+ else
-+ acl_final_prefix="$prefix"
-+ fi
-+ if test "X$exec_prefix" = "XNONE"; then
-+ acl_final_exec_prefix='${prefix}'
-+ else
-+ acl_final_exec_prefix="$exec_prefix"
-+ fi
-+ acl_save_prefix="$prefix"
-+ prefix="$acl_final_prefix"
-+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-+ prefix="$acl_save_prefix"
-+])
-+
-+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-+dnl variables prefix and exec_prefix bound to the values they will have
-+dnl at the end of the configure script.
-+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-+[
-+ acl_save_prefix="$prefix"
-+ prefix="$acl_final_prefix"
-+ acl_save_exec_prefix="$exec_prefix"
-+ exec_prefix="$acl_final_exec_prefix"
-+ $1
-+ exec_prefix="$acl_save_exec_prefix"
-+ prefix="$acl_save_prefix"
-+])
---- lrzsz-0.12.20.safe/m4/longdouble.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/longdouble.m4 2004-09-12 14:40:34.942658864 -0400
-@@ -0,0 +1,30 @@
-+# longdouble.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether the compiler supports the 'long double' type.
-+dnl Prerequisite: AC_PROG_CC
-+
-+AC_DEFUN([gt_TYPE_LONGDOUBLE],
-+[
-+ AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
-+ [if test "$GCC" = yes; then
-+ gt_cv_c_long_double=yes
-+ else
-+ AC_TRY_COMPILE([
-+ /* The Stardent Vistra knows sizeof(long double), but does not support it. */
-+ long double foo = 0.0;
-+ /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
-+ int array [2*(sizeof(long double) >= sizeof(double)) - 1];
-+ ], ,
-+ gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
-+ fi])
-+ if test $gt_cv_c_long_double = yes; then
-+ AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/longlong.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/longlong.m4 2004-09-12 14:40:34.949657800 -0400
-@@ -0,0 +1,25 @@
-+# longlong.m4 serial 4
-+dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_LONG_LONG if 'long long' works.
-+
-+AC_DEFUN([jm_AC_TYPE_LONG_LONG],
-+[
-+ AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
-+ [AC_TRY_LINK([long long ll = 1LL; int i = 63;],
-+ [long long llmax = (long long) -1;
-+ return ll << i | ll >> i | llmax / ll | llmax % ll;],
-+ ac_cv_type_long_long=yes,
-+ ac_cv_type_long_long=no)])
-+ if test $ac_cv_type_long_long = yes; then
-+ AC_DEFINE(HAVE_LONG_LONG, 1,
-+ [Define if you have the 'long long' type.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/Makefile.am 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/Makefile.am 2004-09-12 14:40:35.048642752 -0400
-@@ -0,0 +1 @@
-+EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 intmax.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 longdouble.m4 longlong.m4 nls.m4 po.m4 printf-posix.m4 progtest.m4 signed.m4 size_max.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 wchar_t.m4 wint_t.m4 xsize.m4
---- lrzsz-0.12.20.safe/m4/nls.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/nls.m4 2004-09-12 14:40:34.955656888 -0400
-@@ -0,0 +1,49 @@
-+# nls.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library 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 gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-+
-+AC_DEFUN([AM_NLS],
-+[
-+ AC_MSG_CHECKING([whether NLS is requested])
-+ dnl Default is enabled NLS
-+ AC_ARG_ENABLE(nls,
-+ [ --disable-nls do not use Native Language Support],
-+ USE_NLS=$enableval, USE_NLS=yes)
-+ AC_MSG_RESULT($USE_NLS)
-+ AC_SUBST(USE_NLS)
-+])
-+
-+AC_DEFUN([AM_MKINSTALLDIRS],
-+[
-+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-+ dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
-+ dnl Try to locate it.
-+ MKINSTALLDIRS=
-+ if test -n "$ac_aux_dir"; then
-+ case "$ac_aux_dir" in
-+ /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
-+ *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
-+ esac
-+ fi
-+ if test -z "$MKINSTALLDIRS"; then
-+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-+ fi
-+ AC_SUBST(MKINSTALLDIRS)
-+])
---- lrzsz-0.12.20.safe/m4/po.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/po.m4 2004-09-12 14:40:34.961655976 -0400
-@@ -0,0 +1,426 @@
-+# po.m4 serial 3 (gettext-0.14)
-+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library 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 gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-+
-+dnl Checks for all prerequisites of the po subdirectory.
-+AC_DEFUN([AM_PO_SUBDIRS],
-+[
-+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-+ AC_REQUIRE([AC_PROG_INSTALL])dnl
-+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-+ AC_REQUIRE([AM_NLS])dnl
-+
-+ dnl Perform the following tests also if --disable-nls has been given,
-+ dnl because they are needed for "make dist" to work.
-+
-+ dnl Search for GNU msgfmt in the PATH.
-+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
-+ dnl The second test excludes FreeBSD msgfmt.
-+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
-+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-+ :)
-+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-+
-+ dnl Search for GNU xgettext 0.12 or newer in the PATH.
-+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
-+ dnl The second test excludes FreeBSD xgettext.
-+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
-+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-+ :)
-+ dnl Remove leftover from FreeBSD xgettext call.
-+ rm -f messages.po
-+
-+ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
-+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
-+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
-+
-+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-+ dnl Test whether we really found GNU msgfmt.
-+ if test "$GMSGFMT" != ":"; then
-+ dnl If it is no GNU msgfmt we define it as : so that the
-+ dnl Makefiles still can work.
-+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
-+ (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-+ : ;
-+ else
-+ GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
-+ AC_MSG_RESULT(
-+ [found $GMSGFMT program is not GNU msgfmt; ignore it])
-+ GMSGFMT=":"
-+ fi
-+ fi
-+
-+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-+ dnl Test whether we really found GNU xgettext.
-+ if test "$XGETTEXT" != ":"; then
-+ dnl If it is no GNU xgettext we define it as : so that the
-+ dnl Makefiles still can work.
-+ if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
-+ (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-+ : ;
-+ else
-+ AC_MSG_RESULT(
-+ [found xgettext program is not GNU xgettext; ignore it])
-+ XGETTEXT=":"
-+ fi
-+ dnl Remove leftover from FreeBSD xgettext call.
-+ rm -f messages.po
-+ fi
-+
-+ AC_OUTPUT_COMMANDS([
-+ for ac_file in $CONFIG_FILES; do
-+ # Support "outfile[:infile[:infile...]]"
-+ case "$ac_file" in
-+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-+ esac
-+ # PO directories have a Makefile.in generated from Makefile.in.in.
-+ case "$ac_file" in */Makefile.in)
-+ # Adjust a relative srcdir.
-+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-+ # In autoconf-2.13 it is called $ac_given_srcdir.
-+ # In autoconf-2.50 it is called $srcdir.
-+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-+ case "$ac_given_srcdir" in
-+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-+ /*) top_srcdir="$ac_given_srcdir" ;;
-+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
-+ esac
-+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
-+ rm -f "$ac_dir/POTFILES"
-+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
-+ POMAKEFILEDEPS="POTFILES.in"
-+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
-+ # on $ac_dir but don't depend on user-specified configuration
-+ # parameters.
-+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
-+ # The LINGUAS file contains the set of available languages.
-+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
-+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
-+ fi
-+ ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-+ # Hide the ALL_LINGUAS assigment from automake.
-+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
-+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
-+ else
-+ # The set of available languages was given in configure.in.
-+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
-+ fi
-+ # Compute POFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
-+ # Compute UPDATEPOFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
-+ # Compute DUMMYPOFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
-+ # Compute GMOFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
-+ case "$ac_given_srcdir" in
-+ .) srcdirpre= ;;
-+ *) srcdirpre='$(srcdir)/' ;;
-+ esac
-+ POFILES=
-+ UPDATEPOFILES=
-+ DUMMYPOFILES=
-+ GMOFILES=
-+ for lang in $ALL_LINGUAS; do
-+ POFILES="$POFILES $srcdirpre$lang.po"
-+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-+ done
-+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
-+ # environment variable.
-+ INST_LINGUAS=
-+ if test -n "$ALL_LINGUAS"; then
-+ for presentlang in $ALL_LINGUAS; do
-+ useit=no
-+ if test "%UNSET%" != "$LINGUAS"; then
-+ desiredlanguages="$LINGUAS"
-+ else
-+ desiredlanguages="$ALL_LINGUAS"
-+ fi
-+ for desiredlang in $desiredlanguages; do
-+ # Use the presentlang catalog if desiredlang is
-+ # a. equal to presentlang, or
-+ # b. a variant of presentlang (because in this case,
-+ # presentlang can be used as a fallback for messages
-+ # which are not translated in the desiredlang catalog).
-+ case "$desiredlang" in
-+ "$presentlang"*) useit=yes;;
-+ esac
-+ done
-+ if test $useit = yes; then
-+ INST_LINGUAS="$INST_LINGUAS $presentlang"
-+ fi
-+ done
-+ fi
-+ CATALOGS=
-+ if test -n "$INST_LINGUAS"; then
-+ for lang in $INST_LINGUAS; do
-+ CATALOGS="$CATALOGS $lang.gmo"
-+ done
-+ fi
-+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
-+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
-+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
-+ if test -f "$f"; then
-+ case "$f" in
-+ *.orig | *.bak | *~) ;;
-+ *) cat "$f" >> "$ac_dir/Makefile" ;;
-+ esac
-+ fi
-+ done
-+ fi
-+ ;;
-+ esac
-+ done],
-+ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
-+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
-+ # from automake.
-+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
-+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
-+ LINGUAS="${LINGUAS-%UNSET%}"
-+ ])
-+])
-+
-+dnl Postprocesses a Makefile in a directory containing PO files.
-+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
-+[
-+ # When this code is run, in config.status, two variables have already been
-+ # set:
-+ # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
-+ # - LINGUAS is the value of the environment variable LINGUAS at configure
-+ # time.
-+
-+changequote(,)dnl
-+ # Adjust a relative srcdir.
-+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-+ # In autoconf-2.13 it is called $ac_given_srcdir.
-+ # In autoconf-2.50 it is called $srcdir.
-+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-+ case "$ac_given_srcdir" in
-+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-+ /*) top_srcdir="$ac_given_srcdir" ;;
-+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
-+ esac
-+
-+ # Find a way to echo strings without interpreting backslash.
-+ if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
-+ gt_echo='echo'
-+ else
-+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
-+ gt_echo='printf %s\n'
-+ else
-+ echo_func () {
-+ cat <<EOT
-+$*
-+EOT
-+ }
-+ gt_echo='echo_func'
-+ fi
-+ fi
-+
-+ # A sed script that extracts the value of VARIABLE from a Makefile.
-+ sed_x_variable='
-+# Test if the hold space is empty.
-+x
-+s/P/P/
-+x
-+ta
-+# Yes it was empty. Look if we have the expected variable definition.
-+/^[ ]*VARIABLE[ ]*=/{
-+ # Seen the first line of the variable definition.
-+ s/^[ ]*VARIABLE[ ]*=//
-+ ba
-+}
-+bd
-+:a
-+# Here we are processing a line from the variable definition.
-+# Remove comment, more precisely replace it with a space.
-+s/#.*$/ /
-+# See if the line ends in a backslash.
-+tb
-+:b
-+s/\\$//
-+# Print the line, without the trailing backslash.
-+p
-+tc
-+# There was no trailing backslash. The end of the variable definition is
-+# reached. Clear the hold space.
-+s/^.*$//
-+x
-+bd
-+:c
-+# A trailing backslash means that the variable definition continues in the
-+# next line. Put a nonempty string into the hold space to indicate this.
-+s/^.*$/P/
-+x
-+:d
-+'
-+changequote([,])dnl
-+
-+ # Set POTFILES to the value of the Makefile variable POTFILES.
-+ sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
-+ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
-+ # Compute POTFILES_DEPS as
-+ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
-+ POTFILES_DEPS=
-+ for file in $POTFILES; do
-+ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
-+ done
-+ POMAKEFILEDEPS=""
-+
-+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
-+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
-+ fi
-+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
-+ # The LINGUAS file contains the set of available languages.
-+ ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
-+ else
-+ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
-+ sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
-+ ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
-+ fi
-+ # Hide the ALL_LINGUAS assigment from automake.
-+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
-+ # Compute POFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
-+ # Compute UPDATEPOFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
-+ # Compute DUMMYPOFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
-+ # Compute GMOFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
-+ # Compute PROPERTIESFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
-+ # Compute CLASSFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
-+ # Compute QMFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
-+ # Compute MSGFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
-+ # Compute RESOURCESDLLFILES
-+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
-+ case "$ac_given_srcdir" in
-+ .) srcdirpre= ;;
-+ *) srcdirpre='$(srcdir)/' ;;
-+ esac
-+ POFILES=
-+ UPDATEPOFILES=
-+ DUMMYPOFILES=
-+ GMOFILES=
-+ PROPERTIESFILES=
-+ CLASSFILES=
-+ QMFILES=
-+ MSGFILES=
-+ RESOURCESDLLFILES=
-+ for lang in $ALL_LINGUAS; do
-+ POFILES="$POFILES $srcdirpre$lang.po"
-+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-+ PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
-+ CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
-+ QMFILES="$QMFILES $srcdirpre$lang.qm"
-+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-+ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
-+ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
-+ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
-+ done
-+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
-+ # environment variable.
-+ INST_LINGUAS=
-+ if test -n "$ALL_LINGUAS"; then
-+ for presentlang in $ALL_LINGUAS; do
-+ useit=no
-+ if test "%UNSET%" != "$LINGUAS"; then
-+ desiredlanguages="$LINGUAS"
-+ else
-+ desiredlanguages="$ALL_LINGUAS"
-+ fi
-+ for desiredlang in $desiredlanguages; do
-+ # Use the presentlang catalog if desiredlang is
-+ # a. equal to presentlang, or
-+ # b. a variant of presentlang (because in this case,
-+ # presentlang can be used as a fallback for messages
-+ # which are not translated in the desiredlang catalog).
-+ case "$desiredlang" in
-+ "$presentlang"*) useit=yes;;
-+ esac
-+ done
-+ if test $useit = yes; then
-+ INST_LINGUAS="$INST_LINGUAS $presentlang"
-+ fi
-+ done
-+ fi
-+ CATALOGS=
-+ JAVACATALOGS=
-+ QTCATALOGS=
-+ TCLCATALOGS=
-+ CSHARPCATALOGS=
-+ if test -n "$INST_LINGUAS"; then
-+ for lang in $INST_LINGUAS; do
-+ CATALOGS="$CATALOGS $lang.gmo"
-+ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
-+ QTCATALOGS="$QTCATALOGS $lang.qm"
-+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-+ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
-+ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
-+ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
-+ done
-+ fi
-+
-+ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
-+ if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
-+ # Add dependencies that cannot be formulated as a simple suffix rule.
-+ for lang in $ALL_LINGUAS; do
-+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-+ cat >> "$ac_file.tmp" <<EOF
-+$frobbedlang.msg: $lang.po
-+ @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
-+ \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-+EOF
-+ done
-+ fi
-+ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
-+ # Add dependencies that cannot be formulated as a simple suffix rule.
-+ for lang in $ALL_LINGUAS; do
-+ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
-+ cat >> "$ac_file.tmp" <<EOF
-+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
-+ @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
-+ \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-+EOF
-+ done
-+ fi
-+ if test -n "$POMAKEFILEDEPS"; then
-+ cat >> "$ac_file.tmp" <<EOF
-+Makefile: $POMAKEFILEDEPS
-+EOF
-+ fi
-+ mv "$ac_file.tmp" "$ac_file"
-+])
---- lrzsz-0.12.20.safe/m4/printf-posix.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/printf-posix.m4 2004-09-12 14:40:34.974654000 -0400
-@@ -0,0 +1,46 @@
-+# printf-posix.m4 serial 2 (gettext-0.13.1)
-+dnl Copyright (C) 2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether the printf() function supports POSIX/XSI format strings with
-+dnl positions.
-+
-+AC_DEFUN([gt_PRINTF_POSIX],
-+[
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
-+ gt_cv_func_printf_posix,
-+ [
-+ AC_TRY_RUN([
-+#include <stdio.h>
-+#include <string.h>
-+/* The string "%2$d %1$d", with dollar characters protected from the shell's
-+ dollar expansion (possibly an autoconf bug). */
-+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
-+static char buf[100];
-+int main ()
-+{
-+ sprintf (buf, format, 33, 55);
-+ return (strcmp (buf, "55 33") != 0);
-+}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
-+ [
-+ AC_EGREP_CPP(notposix, [
-+#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
-+ notposix
-+#endif
-+ ], gt_cv_func_printf_posix="guessing no",
-+ gt_cv_func_printf_posix="guessing yes")
-+ ])
-+ ])
-+ case $gt_cv_func_printf_posix in
-+ *yes)
-+ AC_DEFINE(HAVE_POSIX_PRINTF, 1,
-+ [Define if your printf() function supports format strings with positions.])
-+ ;;
-+ esac
-+])
---- lrzsz-0.12.20.safe/m4/progtest.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/progtest.m4 2004-09-12 14:40:34.990651568 -0400
-@@ -0,0 +1,91 @@
-+# progtest.m4 serial 3 (gettext-0.12)
-+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+dnl
-+dnl This file can can be used in projects which are not available under
-+dnl the GNU General Public License or the GNU Library 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 gettext package package is covered by the GNU General Public License.
-+dnl They are *not* in the public domain.
-+
-+dnl Authors:
-+dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
-+
-+# Search path for a program which passes the given test.
-+
-+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-+[
-+# Prepare PATH_SEPARATOR.
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+ echo "#! /bin/sh" >conf$$.sh
-+ echo "exit 0" >>conf$$.sh
-+ chmod +x conf$$.sh
-+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-+ PATH_SEPARATOR=';'
-+ else
-+ PATH_SEPARATOR=:
-+ fi
-+ rm -f conf$$.sh
-+fi
-+
-+# Find out how to test for executable files. Don't use a zero-byte file,
-+# as systems may use methods other than mode bits to determine executability.
-+cat >conf$$.file <<_ASEOF
-+#! /bin/sh
-+exit 0
-+_ASEOF
-+chmod +x conf$$.file
-+if test -x conf$$.file >/dev/null 2>&1; then
-+ ac_executable_p="test -x"
-+else
-+ ac_executable_p="test -f"
-+fi
-+rm -f conf$$.file
-+
-+# Extract the first word of "$2", so it can be a program name with args.
-+set dummy $2; ac_word=[$]2
-+AC_MSG_CHECKING([for $ac_word])
-+AC_CACHE_VAL(ac_cv_path_$1,
-+[case "[$]$1" in
-+ [[\\/]]* | ?:[[\\/]]*)
-+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
-+ ;;
-+ *)
-+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
-+ IFS="$ac_save_IFS"
-+ test -z "$ac_dir" && ac_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-+ if [$3]; then
-+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
-+ break 2
-+ fi
-+ fi
-+ done
-+ done
-+ IFS="$ac_save_IFS"
-+dnl If no 4th arg is given, leave the cache variable unset,
-+dnl so AC_PATH_PROGS will keep looking.
-+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-+])dnl
-+ ;;
-+esac])dnl
-+$1="$ac_cv_path_$1"
-+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
-+ AC_MSG_RESULT([$]$1)
-+else
-+ AC_MSG_RESULT(no)
-+fi
-+AC_SUBST($1)dnl
-+])
---- lrzsz-0.12.20.safe/m4/signed.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/signed.m4 2004-09-12 14:40:34.996650656 -0400
-@@ -0,0 +1,19 @@
-+# signed.m4 serial 1 (gettext-0.10.40)
-+dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([bh_C_SIGNED],
-+[
-+ AC_CACHE_CHECK([for signed], bh_cv_c_signed,
-+ [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)])
-+ if test $bh_cv_c_signed = no; then
-+ AC_DEFINE(signed, ,
-+ [Define to empty if the C compiler doesn't support this keyword.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/size_max.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/size_max.m4 2004-09-12 14:40:35.003649592 -0400
-@@ -0,0 +1,61 @@
-+# size_max.m4 serial 2
-+dnl Copyright (C) 2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+
-+AC_DEFUN([gl_SIZE_MAX],
-+[
-+ AC_CHECK_HEADERS(stdint.h)
-+ dnl First test whether the system already has SIZE_MAX.
-+ AC_MSG_CHECKING([for SIZE_MAX])
-+ result=
-+ AC_EGREP_CPP([Found it], [
-+#include <limits.h>
-+#if HAVE_STDINT_H
-+#include <stdint.h>
-+#endif
-+#ifdef SIZE_MAX
-+Found it
-+#endif
-+], result=yes)
-+ if test -z "$result"; then
-+ dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
-+ dnl than the type 'unsigned long'.
-+ dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr',
-+ dnl which is guaranteed to work from LONG_MIN to LONG_MAX.
-+ _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi,
-+ [#include <stddef.h>], result=?)
-+ _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo,
-+ [#include <stddef.h>], result=?)
-+ _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint,
-+ [#include <stddef.h>], result=?)
-+ if test "$fits_in_uint" = 1; then
-+ dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
-+ dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
-+ AC_TRY_COMPILE([#include <stddef.h>
-+ extern size_t foo;
-+ extern unsigned long foo;
-+ ], [], fits_in_uint=0)
-+ fi
-+ if test -z "$result"; then
-+ if test "$fits_in_uint" = 1; then
-+ result="$res_hi$res_lo"U
-+ else
-+ result="$res_hi$res_lo"UL
-+ fi
-+ else
-+ dnl Shouldn't happen, but who knows...
-+ result='~(size_t)0'
-+ fi
-+ fi
-+ AC_MSG_RESULT([$result])
-+ if test "$result" != yes; then
-+ AC_DEFINE_UNQUOTED([SIZE_MAX], [$result],
-+ [Define as the maximum value of type 'size_t', if the system doesn't define it.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/stdint_h.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/stdint_h.m4 2004-09-12 14:40:35.009648680 -0400
-@@ -0,0 +1,28 @@
-+# stdint_h.m4 serial 3 (gettext-0.12)
-+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-+# doesn't clash with <sys/types.h>, and declares uintmax_t.
-+
-+AC_DEFUN([jm_AC_HEADER_STDINT_H],
-+[
-+ AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
-+ [AC_TRY_COMPILE(
-+ [#include <sys/types.h>
-+#include <stdint.h>],
-+ [uintmax_t i = (uintmax_t) -1;],
-+ jm_ac_cv_header_stdint_h=yes,
-+ jm_ac_cv_header_stdint_h=no)])
-+ if test $jm_ac_cv_header_stdint_h = yes; then
-+ AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
-+ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
-+ and declares uintmax_t. ])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/uintmax_t.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/uintmax_t.m4 2004-09-12 14:40:35.021646856 -0400
-@@ -0,0 +1,32 @@
-+# uintmax_t.m4 serial 7 (gettext-0.12)
-+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+AC_PREREQ(2.13)
-+
-+# Define uintmax_t to 'unsigned long' or 'unsigned long long'
-+# if it is not already defined in <stdint.h> or <inttypes.h>.
-+
-+AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-+[
-+ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
-+ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
-+ if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
-+ AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-+ test $ac_cv_type_unsigned_long_long = yes \
-+ && ac_type='unsigned long long' \
-+ || ac_type='unsigned long'
-+ AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
-+ [Define to unsigned long or unsigned long long
-+ if <stdint.h> and <inttypes.h> don't define.])
-+ else
-+ AC_DEFINE(HAVE_UINTMAX_T, 1,
-+ [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/ulonglong.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/ulonglong.m4 2004-09-12 14:40:35.028645792 -0400
-@@ -0,0 +1,25 @@
-+# ulonglong.m4 serial 3
-+dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Paul Eggert.
-+
-+# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
-+
-+AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
-+[
-+ AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
-+ [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],
-+ [unsigned long long ullmax = (unsigned long long) -1;
-+ return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
-+ ac_cv_type_unsigned_long_long=yes,
-+ ac_cv_type_unsigned_long_long=no)])
-+ if test $ac_cv_type_unsigned_long_long = yes; then
-+ AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
-+ [Define if you have the 'unsigned long long' type.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/wchar_t.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/wchar_t.m4 2004-09-12 14:40:35.034644880 -0400
-@@ -0,0 +1,22 @@
-+# wchar_t.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether <stddef.h> has the 'wchar_t' type.
-+dnl Prerequisite: AC_PROG_CC
-+
-+AC_DEFUN([gt_TYPE_WCHAR_T],
-+[
-+ AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
-+ [AC_TRY_COMPILE([#include <stddef.h>
-+ wchar_t foo = (wchar_t)'\0';], ,
-+ gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
-+ if test $gt_cv_c_wchar_t = yes; then
-+ AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/wint_t.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/wint_t.m4 2004-09-12 14:40:35.040643968 -0400
-@@ -0,0 +1,22 @@
-+# wint_t.m4 serial 1 (gettext-0.12)
-+dnl Copyright (C) 2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+dnl From Bruno Haible.
-+dnl Test whether <wchar.h> has the 'wint_t' type.
-+dnl Prerequisite: AC_PROG_CC
-+
-+AC_DEFUN([gt_TYPE_WINT_T],
-+[
-+ AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
-+ [AC_TRY_COMPILE([#include <wchar.h>
-+ wint_t foo = (wchar_t)'\0';], ,
-+ gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
-+ if test $gt_cv_c_wint_t = yes; then
-+ AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
-+ fi
-+])
---- lrzsz-0.12.20.safe/m4/xsize.m4 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/m4/xsize.m4 2004-09-12 14:40:35.047642904 -0400
-@@ -0,0 +1,14 @@
-+# xsize.m4 serial 2
-+dnl Copyright (C) 2003 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
-+
-+AC_DEFUN([gl_XSIZE],
-+[
-+ dnl Prerequisites of lib/xsize.h.
-+ AC_REQUIRE([gl_SIZE_MAX])
-+ AC_CHECK_HEADERS(stdint.h)
-+])
---- lrzsz-0.12.20.safe/Makefile.am 1998-12-30 06:19:40.000000000 -0500
-+++ lrzsz-0.12.20/Makefile.am 2004-09-12 14:40:35.121631656 -0400
-@@ -1,5 +1,5 @@
- SUBDIRS = lib intl src po man testsuite
--EXTRA_DIST = check.lrzsz COMPATABILITY README.cvs README.isdn4linux \
-+EXTRA_DIST = config.rpath check.lrzsz COMPATABILITY README.cvs README.isdn4linux \
- README.gettext rpmrc buildrpm systype.in fastcheck.sh README.tests \
- beos-runpiped.c fastcheck.beos
- noinst_SCRIPTS=systype
-@@ -83,3 +83,5 @@
- rpm: $(PR).tar.gz Specfile
- $(srcdir)/buildrpm $(srcdir)
-
-+
-+ACLOCAL_AMFLAGS = -I m4
---- lrzsz-0.12.20.safe/Makefile.in 1998-12-30 11:31:40.000000000 -0500
-+++ lrzsz-0.12.20/Makefile.in 2004-09-12 14:40:35.109633480 -0400
-@@ -125,7 +125,7 @@
- && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
- $(ACLOCAL_M4): configure.in acinclude.m4
-- cd $(srcdir) && $(ACLOCAL)
-+ cd $(srcdir) && $(ACLOCAL) -I m4
-
- config.status: $(srcdir)/configure
- $(SHELL) ./config.status --recheck
---- lrzsz-0.12.20.safe/mkinstalldirs 1998-04-26 09:20:52.000000000 -0400
-+++ lrzsz-0.12.20/mkinstalldirs 2004-09-12 14:40:34.337750824 -0400
-@@ -1,34 +1,150 @@
- #! /bin/sh
- # mkinstalldirs --- make directory hierarchy
--# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-+
-+scriptversion=2004-02-15.20
-+
-+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
- # Created: 1993-05-16
--# Last modified: 1995-03-05
--# Public domain
-+# Public domain.
-+#
-+# This file is maintained in Automake, please report
-+# bugs to <bug-automake@gnu.org> or send patches to
-+# <automake-patches@gnu.org>.
-
- errstatus=0
-+dirmode=""
-
--for file in ${1+"$@"} ; do
-- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-- shift
-+usage="\
-+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-- pathcomp=
-- for d in ${1+"$@"} ; do
-- pathcomp="$pathcomp$d"
-- case "$pathcomp" in
-- -* ) pathcomp=./$pathcomp ;;
-- esac
-+Create each directory DIR (with mode MODE, if specified), including all
-+leading file name components.
-
-- if test ! -d "$pathcomp"; then
-- echo "mkdir $pathcomp" 1>&2
-- mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$?
-- fi
-+Report bugs to <bug-automake@gnu.org>."
-
-- if test ! -d "$pathcomp"; then
-+# process command line arguments
-+while test $# -gt 0 ; do
-+ case $1 in
-+ -h | --help | --h*) # -h for help
-+ echo "$usage"
-+ exit 0
-+ ;;
-+ -m) # -m PERM arg
-+ shift
-+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
-+ dirmode=$1
-+ shift
-+ ;;
-+ --version)
-+ echo "$0 $scriptversion"
-+ exit 0
-+ ;;
-+ --) # stop option processing
-+ shift
-+ break
-+ ;;
-+ -*) # unknown option
-+ echo "$usage" 1>&2
-+ exit 1
-+ ;;
-+ *) # first non-opt arg
-+ break
-+ ;;
-+ esac
-+done
-+
-+for file
-+do
-+ if test -d "$file"; then
-+ shift
-+ else
-+ break
-+ fi
-+done
-+
-+case $# in
-+ 0) exit 0 ;;
-+esac
-+
-+# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
-+# mkdir -p a/c at the same time, both will detect that a is missing,
-+# one will create a, then the other will try to create a and die with
-+# a "File exists" error. This is a problem when calling mkinstalldirs
-+# from a parallel make. We use --version in the probe to restrict
-+# ourselves to GNU mkdir, which is thread-safe.
-+case $dirmode in
-+ '')
-+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-+ echo "mkdir -p -- $*"
-+ exec mkdir -p -- "$@"
-+ else
-+ # On NextStep and OpenStep, the `mkdir' command does not
-+ # recognize any option. It will interpret all options as
-+ # directories to create, and then abort because `.' already
-+ # exists.
-+ test -d ./-p && rmdir ./-p
-+ test -d ./--version && rmdir ./--version
-+ fi
-+ ;;
-+ *)
-+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
-+ test ! -d ./--version; then
-+ echo "mkdir -m $dirmode -p -- $*"
-+ exec mkdir -m "$dirmode" -p -- "$@"
-+ else
-+ # Clean up after NextStep and OpenStep mkdir.
-+ for d in ./-m ./-p ./--version "./$dirmode";
-+ do
-+ test -d $d && rmdir $d
-+ done
-+ fi
-+ ;;
-+esac
-+
-+for file
-+do
-+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-+ shift
-+
-+ pathcomp=
-+ for d
-+ do
-+ pathcomp="$pathcomp$d"
-+ case $pathcomp in
-+ -*) pathcomp=./$pathcomp ;;
-+ esac
-+
-+ if test ! -d "$pathcomp"; then
-+ echo "mkdir $pathcomp"
-+
-+ mkdir "$pathcomp" || lasterr=$?
-+
-+ if test ! -d "$pathcomp"; then
- errstatus=$lasterr
-- fi
-+ else
-+ if test ! -z "$dirmode"; then
-+ echo "chmod $dirmode $pathcomp"
-+ lasterr=""
-+ chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-- pathcomp="$pathcomp/"
-- done
-+ if test ! -z "$lasterr"; then
-+ errstatus=$lasterr
-+ fi
-+ fi
-+ fi
-+ fi
-+
-+ pathcomp="$pathcomp/"
-+ done
- done
-
- exit $errstatus
-+
-+# Local Variables:
-+# mode: shell-script
-+# sh-indentation: 2
-+# eval: (add-hook 'write-file-hooks 'time-stamp)
-+# time-stamp-start: "scriptversion="
-+# time-stamp-format: "%:y-%02m-%02d.%02H"
-+# time-stamp-end: "$"
-+# End:
---- lrzsz-0.12.20.safe/po/boldquot.sed 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/po/boldquot.sed 2004-09-12 14:40:34.723692152 -0400
-@@ -0,0 +1,10 @@
-+s/"\([^"]*\)"/“\1â€/g
-+s/`\([^`']*\)'/‘\1’/g
-+s/ '\([^`']*\)' / ‘\1’ /g
-+s/ '\([^`']*\)'$/ ‘\1’/g
-+s/^'\([^`']*\)' /‘\1’ /g
-+s/“â€/""/g
-+s/“/“/g
-+s/â€/â€/g
-+s/‘/‘/g
-+s/’/’/g
---- lrzsz-0.12.20.safe/po/cat-id-tbl.c 1998-12-29 04:24:24.000000000 -0500
-+++ lrzsz-0.12.20/po/cat-id-tbl.c 1969-12-31 19:00:00.000000000 -0500
-@@ -1,234 +0,0 @@
--/* Automatically generated by po2tbl.sed from lrzsz.pot. */
--
--#if HAVE_CONFIG_H
--# include <config.h>
--#endif
--
--#include "libgettext.h"
--
--const struct _msg_ent _msg_tbl[] = {
-- {"", 1},
-- {"io_mode(,2) in rbsb.c not implemented\n", 2},
-- {"caught signal %d; exiting", 3},
-- {"command tries", 4},
-- {"packetlength", 5},
-- {"packetlength out of range 24..%ld", 6},
-- {"framelength", 7},
-- {"framelength out of range 32..%ld", 8},
-- {"min_bps", 9},
-- {"min_bps must be >= 0", 10},
-- {"min_bps_time", 11},
-- {"min_bps_time must be > 1", 12},
-- {"hour to large (0..23)", 13},
-- {"unparsable stop time\n", 14},
-- {"minute to large (0..59)", 15},
-- {"stop time to small", 16},
-- {"stop-at", 17},
-- {"timeout", 18},
-- {"timeout out of range 10..1000", 19},
-- {"security violation: can't do that under restricted shell\n", 20},
-- {"window size", 21},
-- {"cannot turnoff syslog", 22},
-- {"startup delay", 23},
-- {"out of memory", 24},
-- {"this program was never intended to be used setuid\n", 25},
-- {"need at least one file to send", 26},
-- {"Can't send command in restricted mode\n", 27},
-- {"hostname too long\n", 28},
-- {"illegal server address\n", 29},
-- {"can read only one file from stdin", 30},
-- {"Transfer incomplete\n", 31},
-- {"Transfer complete\n", 32},
-- {"send_pseudo %s: cannot open tmpfile %s: %s", 33},
-- {"send_pseudo %s: cannot lstat tmpfile %s: %s", 34},
-- {"send_pseudo %s: avoiding symlink trap", 35},
-- {"send_pseudo %s: cannot write to tmpfile %s: %s", 36},
-- {"send_pseudo %s: failed", 37},
-- {"send_pseudo %s: ok", 38},
-- {"tcp protocol init failed\n", 39},
-- {"Answering TIMESYNC at %s", 40},
-- {"timezone", 41},
-- {"timezone unknown", 42},
-- {"Can't open any requested files.", 43},
-- {"security violation: not allowed to upload from %s", 44},
-- {"cannot open %s", 45},
-- {"is not a file: %s", 46},
-- {"%s/%s: error occured", 47},
-- {"skipped: %s", 48},
-- {"%s/%s: skipped", 49},
-- {"Bytes Sent:%7ld BPS:%-8ld \n", 50},
-- {"Sending %s, %ld blocks: ", 51},
-- {"Give your local XMODEM receive command now.", 52},
-- {"Sending: %s\n", 53},
-- {"Timeout on pathname", 54},
-- {"Receiver Cancelled", 55},
-- {"No ACK on EOT", 56},
-- {"Xmodem sectors/kbytes sent: %3d/%2dk", 57},
-- {"Ymodem sectors/kbytes sent: %3d/%2dk", 58},
-- {"Cancelled", 59},
-- {"Timeout on sector ACK", 60},
-- {"NAK on sector", 61},
-- {"Got burst for sector ACK", 62},
-- {"Got %02x for sector ACK", 63},
-- {"Retry Count Exceeded", 64},
-- {"Try `%s --help' for more information.\n", 65},
-- {"%s version %s\n", 66},
-- {"Usage: %s [options] file ...\n", 67},
-- {" or: %s [options] -{c|i} COMMAND\n", 68},
-- {"Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n", 69},
-- {"\
-- (X) = option applies to XMODEM only\n\
-- (Y) = option applies to YMODEM only\n\
-- (Z) = option applies to ZMODEM only\n", 70},
-- {"\
-- -+, --append append to existing destination file (Z)\n\
-- -2, --twostop use 2 stop bits\n\
-- -4, --try-4k go up to 4K blocksize\n\
-- --start-4k start with 4K blocksize (doesn't try 8)\n\
-- -8, --try-8k go up to 8K blocksize\n\
-- --start-8k start with 8K blocksize\n\
-- -a, --ascii ASCII transfer (change CR/LF to LF)\n\
-- -b, --binary binary transfer\n\
-- -B, --bufsize N buffer N bytes (N==auto: buffer whole file)\n\
-- -c, --command COMMAND execute remote command COMMAND (Z)\n\
-- -C, --command-tries N try N times to execute a command (Z)\n\
-- -d, --dot-to-slash change '.' to '/' in pathnames (Y/Z)\n\
-- --delay-startup N sleep N seconds before doing anything\n\
-- -e, --escape escape all control characters (Z)\n\
-- -E, --rename force receiver to rename files it already has\n\
-- -f, --full-path send full pathname (Y/Z)\n\
-- -i, --immediate-command CMD send remote CMD, return immediately (Z)\n\
-- -h, --help print this usage message\n\
-- -k, --1k send 1024 byte packets (X)\n\
-- -L, --packetlen N limit subpacket length to N bytes (Z)\n\
-- -l, --framelen N limit frame length to N bytes (l>=L) (Z)\n\
-- -m, --min-bps N stop transmission if BPS below N\n\
-- -M, --min-bps-time N for at least N seconds (default: 120)\n", 71},
-- {"\
-- -n, --newer send file if source newer (Z)\n\
-- -N, --newer-or-longer send file if source newer or longer (Z)\n\
-- -o, --16-bit-crc use 16 bit CRC instead of 32 bit CRC (Z)\n\
-- -O, --disable-timeouts disable timeout code, wait forever\n\
-- -p, --protect protect existing destination file (Z)\n\
-- -r, --resume resume interrupted file transfer (Z)\n\
-- -R, --restricted restricted, more secure mode\n\
-- -q, --quiet quiet (no progress reports)\n\
-- -s, --stop-at {HH:MM|+N} stop transmission at HH:MM or in N seconds\n\
-- --tcp build a TCP connection to transmit files\n\
-- --tcp-server open socket, wait for connection\n\
-- -u, --unlink unlink file after transmission\n\
-- -U, --unrestrict turn off restricted mode (if allowed to)\n\
-- -v, --verbose be verbose, provide debugging information\n\
-- -w, --windowsize N Window is N bytes (Z)\n\
-- -X, --xmodem use XMODEM protocol\n\
-- -y, --overwrite overwrite existing files\n\
-- -Y, --overwrite-or-skip overwrite existing files, else skip\n\
-- --ymodem use YMODEM protocol\n\
-- -Z, --zmodem use ZMODEM protocol\n\
--\n\
--short options use the same arguments as the long ones\n", 72},
-- {"got ZRQINIT", 73},
-- {"got ZCAN", 74},
-- {"blklen now %d\n", 75},
-- {"zsendfdata: bps rate %ld below min %ld", 76},
-- {"zsendfdata: reached stop time", 77},
-- {"Bytes Sent:%7ld/%7ld BPS:%-8ld ETA %02d:%02d ", 78},
-- {"calc_blklen: reduced to %d due to error\n", 79},
-- {"calc_blklen: returned old value %d due to low bpe diff\n", 80},
-- {"calc_blklen: old %ld, new %ld, d %ld\n", 81},
-- {"calc_blklen: calc total_bytes=%ld, bpe=%ld, ec=%ld\n", 82},
-- {"calc_blklen: blklen %d, ok %ld, failed %ld -> %lu\n", 83},
-- {"calc_blklen: returned %d as best\n", 84},
-- {"\
--\n\
--countem: Total %d %ld\n", 85},
-- {"Bad escape sequence %x", 86},
-- {"Sender Canceled", 87},
-- {"TIMEOUT", 88},
-- {"Bad data subpacket", 89},
-- {"Data subpacket too long", 90},
-- {"Garbage count exceeded", 91},
-- {"Got %s", 92},
-- {"Retry %d: ", 93},
-- {"don't have settimeofday, will not set time\n", 94},
-- {"not running as root (this is good!), can not set time\n", 95},
-- {"bytes_per_error", 96},
-- {"bytes-per-error should be >100", 97},
-- {"O_SYNC not supported by the kernel", 98},
-- {"garbage on commandline", 99},
-- {"Usage: %s [options] [filename.if.xmodem]\n", 100},
-- {"Receive files with ZMODEM/YMODEM/XMODEM protocol\n", 101},
-- {"\
-- -+, --append append to existing files\n\
-- -a, --ascii ASCII transfer (change CR/LF to LF)\n\
-- -b, --binary binary transfer\n\
-- -B, --bufsize N buffer N bytes (N==auto: buffer whole file)\n\
-- -c, --with-crc Use 16 bit CRC (X)\n\
-- -C, --allow-remote-commands allow execution of remote commands (Z)\n\
-- -D, --null write all received data to /dev/null\n\
-- --delay-startup N sleep N seconds before doing anything\n\
-- -e, --escape Escape control characters (Z)\n\
-- -E, --rename rename any files already existing\n\
-- --errors N generate CRC error every N bytes (debugging)\n\
-- -h, --help Help, print this usage message\n\
-- -m, --min-bps N stop transmission if BPS below N\n\
-- -M, --min-bps-time N for at least N seconds (default: 120)\n\
-- -O, --disable-timeouts disable timeout code, wait forever for data\n\
-- --o-sync open output file(s) in synchronous write mode\n\
-- -p, --protect protect existing files\n\
-- -q, --quiet quiet, no progress reports\n\
-- -r, --resume try to resume interrupted file transfer (Z)\n\
-- -R, --restricted restricted, more secure mode\n\
-- -s, --stop-at {HH:MM|+N} stop transmission at HH:MM or in N seconds\n\
-- -S, --timesync request remote time (twice: set local time)\n\
-- --syslog[=off] turn syslog on or off, if possible\n\
-- -t, --timeout N set timeout to N tenths of a second\n\
-- -u, --keep-uppercase keep upper case filenames\n\
-- -U, --unrestrict disable restricted mode (if allowed to)\n\
-- -v, --verbose be verbose, provide debugging information\n\
-- -w, --windowsize N Window is N bytes (Z)\n\
-- -X --xmodem use XMODEM protocol\n\
-- -y, --overwrite Yes, clobber existing file if any\n\
-- --ymodem use YMODEM protocol\n\
-- -Z, --zmodem use ZMODEM protocol\n\
--\n\
--short options use the same arguments as the long ones\n", 102},
-- {"%s waiting to receive.", 103},
-- {"\rBytes received: %7ld/%7ld BPS:%-6ld \r\n", 104},
-- {"%s: ready to receive %s", 105},
-- {"\rBytes received: %7ld BPS:%-6ld \r\n", 106},
-- {"\
--\r\n\
--%s: %s removed.\r\n", 107},
-- {"Pathname fetch returned EOT", 108},
-- {"Received dup Sector", 109},
-- {"Sync Error", 110},
-- {"CRC", 111},
-- {"Checksum", 112},
-- {"Sector number garbled", 113},
-- {"Sender Cancelled", 114},
-- {"Got 0%o sector header", 115},
-- {"file name ends with a /, skipped: %s\n", 116},
-- {"zmanag=%d, Lzmanag=%d\n", 117},
-- {"zconv=%d\n", 118},
-- {"file exists, skipped: %s\n", 119},
-- {"TIMESYNC: here %ld, remote %ld, diff %ld seconds\n", 120},
-- {"TIMESYNC: cannot set time: %s\n", 121},
-- {"cannot tmpfile() for tcp protocol synchronization", 122},
-- {"Topipe", 123},
-- {"Receiving: %s\n", 124},
-- {"Blocks received: %d", 125},
-- {"%s: %s exists\n", 126},
-- {"%s:\tSecurity Violation", 127},
-- {"remote command execution requested", 128},
-- {"not executed", 129},
-- {"got ZRINIT", 130},
-- {"Skipped", 131},
-- {"rzfile: bps rate %ld below min %ld", 132},
-- {"rzfile: reached stop time", 133},
-- {"\rBytes received: %7ld/%7ld BPS:%-6ld ETA %02d:%02d ", 134},
-- {"fgets for tcp protocol synchronization failed: ", 135},
-- {"file close error", 136},
--};
--
--int _msg_tbl_length = 136;
---- lrzsz-0.12.20.safe/po/ChangeLog 1998-04-26 09:20:52.000000000 -0400
-+++ lrzsz-0.12.20/po/ChangeLog 2004-09-12 14:40:34.793681512 -0400
-@@ -1,3 +1,15 @@
-+2004-09-12 gettextize <bug-gnu-gettext@gnu.org>
-+
-+ * boldquot.sed: New file, from gettext-0.14.1.
-+ * en@boldquot.header: New file, from gettext-0.14.1.
-+ * en@quot.header: New file, from gettext-0.14.1.
-+ * insert-header.sin: New file, from gettext-0.14.1.
-+ * quot.sed: New file, from gettext-0.14.1.
-+ * remove-potcdate.sin: New file, from gettext-0.14.1.
-+ * Rules-quot: New file, from gettext-0.14.1.
-+ * cat-id-tbl.c: Remove file.
-+ * stamp-cat-id: Remove file.
-+
- /* Automatically generated by po2tbl.sed from lrzsz.pot. */
-
- #if HAVE_CONFIG_H
---- lrzsz-0.12.20.safe/po/en@boldquot.header 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/po/en@boldquot.header 2004-09-12 14:40:34.731690936 -0400
-@@ -0,0 +1,25 @@
-+# All this catalog "translates" are quotation characters.
-+# The msgids must be ASCII and therefore cannot contain real quotation
-+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
-+# and double quote (0x22). These substitutes look strange; see
-+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
-+#
-+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
-+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
-+# It also translates pairs of apostrophe (0x27) to
-+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
-+# and pairs of quotation mark (0x22) to
-+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
-+#
-+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
-+# When output to an ISO-8859-1 terminal, the single quotation marks are
-+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
-+# grave/acute accent (by libiconv), and the double quotation marks are
-+# transliterated to 0x22.
-+# When output to an ASCII terminal, the single quotation marks are
-+# transliterated to apostrophes, and the double quotation marks are
-+# transliterated to 0x22.
-+#
-+# This catalog furthermore displays the text between the quotation marks in
-+# bold face, assuming the VT100/XTerm escape sequences.
-+#
---- lrzsz-0.12.20.safe/po/en@quot.header 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/po/en@quot.header 2004-09-12 14:40:34.737690024 -0400
-@@ -0,0 +1,22 @@
-+# All this catalog "translates" are quotation characters.
-+# The msgids must be ASCII and therefore cannot contain real quotation
-+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
-+# and double quote (0x22). These substitutes look strange; see
-+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
-+#
-+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
-+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
-+# It also translates pairs of apostrophe (0x27) to
-+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
-+# and pairs of quotation mark (0x22) to
-+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
-+#
-+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
-+# When output to an ISO-8859-1 terminal, the single quotation marks are
-+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
-+# grave/acute accent (by libiconv), and the double quotation marks are
-+# transliterated to 0x22.
-+# When output to an ASCII terminal, the single quotation marks are
-+# transliterated to apostrophes, and the double quotation marks are
-+# transliterated to 0x22.
-+#
---- lrzsz-0.12.20.safe/po/insert-header.sin 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/po/insert-header.sin 2004-09-12 14:40:34.743689112 -0400
-@@ -0,0 +1,23 @@
-+# Sed script that inserts the file called HEADER before the header entry.
-+#
-+# At each occurrence of a line starting with "msgid ", we execute the following
-+# commands. At the first occurrence, insert the file. At the following
-+# occurrences, do nothing. The distinction between the first and the following
-+# occurrences is achieved by looking at the hold space.
-+/^msgid /{
-+x
-+# Test if the hold space is empty.
-+s/m/m/
-+ta
-+# Yes it was empty. First occurrence. Read the file.
-+r HEADER
-+# Output the file's contents by reading the next line. But don't lose the
-+# current line while doing this.
-+g
-+N
-+bb
-+:a
-+# The hold space was nonempty. Following occurrences. Do nothing.
-+x
-+:b
-+}
---- lrzsz-0.12.20.safe/po/Makevars 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/po/Makevars 2004-09-12 14:40:34.748688352 -0400
-@@ -0,0 +1,41 @@
-+# Makefile variables for PO directory in any package using GNU gettext.
-+
-+# Usually the message domain is the same as the package name.
-+DOMAIN = $(PACKAGE)
-+
-+# These two variables depend on the location of this directory.
-+subdir = po
-+top_builddir = ..
-+
-+# These options get passed to xgettext.
-+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-+
-+# This is the copyright holder that gets inserted into the header of the
-+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
-+# package. (Note that the msgstr strings, extracted from the package's
-+# sources, belong to the copyright holder of the package.) Translators are
-+# expected to transfer the copyright for their translations to this person
-+# or entity, or to disclaim their copyright. The empty string stands for
-+# the public domain; in this case the translators are expected to disclaim
-+# their copyright.
-+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
-+
-+# This is the email address or URL to which the translators shall report
-+# bugs in the untranslated strings:
-+# - Strings which are not entire sentences, see the maintainer guidelines
-+# in the GNU gettext documentation, section 'Preparing Strings'.
-+# - Strings which use unclear terms or require additional context to be
-+# understood.
-+# - Strings which make invalid assumptions about notation of date, time or
-+# money.
-+# - Pluralisation problems.
-+# - Incorrect English spelling.
-+# - Incorrect formatting.
-+# It can be your email address, or a mailing list address where translators
-+# can write to without being subscribed, or the URL of a web page through
-+# which the translators can contact you.
-+MSGID_BUGS_ADDRESS =
-+
-+# This is the list of locale categories, beyond LC_MESSAGES, for which the
-+# message catalogs shall be used. It is usually empty.
-+EXTRA_LOCALE_CATEGORIES =
---- lrzsz-0.12.20.safe/po/quot.sed 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/po/quot.sed 2004-09-12 14:40:34.754687440 -0400
-@@ -0,0 +1,6 @@
-+s/"\([^"]*\)"/“\1â€/g
-+s/`\([^`']*\)'/‘\1’/g
-+s/ '\([^`']*\)' / ‘\1’ /g
-+s/ '\([^`']*\)'$/ ‘\1’/g
-+s/^'\([^`']*\)' /‘\1’ /g
-+s/“â€/""/g
---- lrzsz-0.12.20.safe/po/remove-potcdate.sin 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/po/remove-potcdate.sin 2004-09-12 14:40:34.762686224 -0400
-@@ -0,0 +1,19 @@
-+# Sed script that remove the POT-Creation-Date line in the header entry
-+# from a POT file.
-+#
-+# The distinction between the first and the following occurrences of the
-+# pattern is achieved by looking at the hold space.
-+/^"POT-Creation-Date: .*"$/{
-+x
-+# Test if the hold space is empty.
-+s/P/P/
-+ta
-+# Yes it was empty. First occurrence. Remove the line.
-+g
-+d
-+bb
-+:a
-+# The hold space was nonempty. Following occurrences. Do nothing.
-+x
-+:b
-+}
---- lrzsz-0.12.20.safe/po/Rules-quot 1969-12-31 19:00:00.000000000 -0500
-+++ lrzsz-0.12.20/po/Rules-quot 2004-09-12 14:40:34.778683792 -0400
-@@ -0,0 +1,47 @@
-+# Special Makefile rules for English message catalogs with quotation marks.
-+
-+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
-+
-+.SUFFIXES: .insert-header .po-update-en
-+
-+en@quot.po-create:
-+ $(MAKE) en@quot.po-update
-+en@boldquot.po-create:
-+ $(MAKE) en@boldquot.po-update
-+
-+en@quot.po-update: en@quot.po-update-en
-+en@boldquot.po-update: en@boldquot.po-update-en
-+
-+.insert-header.po-update-en:
-+ @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
-+ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
-+ tmpdir=`pwd`; \
-+ echo "$$lang:"; \
-+ ll=`echo $$lang | sed -e 's/@.*//'`; \
-+ LC_ALL=C; export LC_ALL; \
-+ cd $(srcdir); \
-+ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
-+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
-+ rm -f $$tmpdir/$$lang.new.po; \
-+ else \
-+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
-+ :; \
-+ else \
-+ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
-+ exit 1; \
-+ fi; \
-+ fi; \
-+ else \
-+ echo "creation of $$lang.po failed!" 1>&2; \
-+ rm -f $$tmpdir/$$lang.new.po; \
-+ fi
-+
-+en@quot.insert-header: insert-header.sin
-+ sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
-+
-+en@boldquot.insert-header: insert-header.sin
-+ sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
-+
-+mostlyclean: mostlyclean-quot
-+mostlyclean-quot:
-+ rm -f *.insert-header
---- lrzsz-0.12.20.safe/po/stamp-cat-id 1998-12-30 02:50:01.000000000 -0500
-+++ lrzsz-0.12.20/po/stamp-cat-id 1969-12-31 19:00:00.000000000 -0500
-@@ -1 +0,0 @@
--timestamp
---- lrzsz-0.12.20.safe/src/Makefile.am 1998-12-28 03:38:47.000000000 -0500
-+++ lrzsz-0.12.20/src/Makefile.am 2004-09-12 14:40:53.665812512 -0400
-@@ -2,12 +2,12 @@
- lrz_SOURCES=lrz.c timing.c zperr.c zreadline.c crctab.c rbsb.c zm.c protname.c tcp.c lsyslog.c canit.c
- lsz_SOURCES=lsz.c timing.c zperr.c zreadline.c crctab.c rbsb.c zm.c protname.c tcp.c lsyslog.c canit.c
- noinst_HEADERS = timing.h zglobal.h zmodem.h
--datadir = $(prefix)/@DATADIRNAME@
-+datadir = $(prefix)/share
- localedir = $(datadir)/locale
- CFLAGS=@CFLAGS@
- DISTCLEAN_FILES=lrzszbug
-
--LDADD = ../lib/libzmodem.a @INTLLIBS@
-+LDADD = ../lib/libzmodem.a @LIBINTL@
- AUTOMAKE_OPTIONS=ansi2knr
- EXTRA_DIST = ansi2knr.1 ansi2knr.c lrzszbug.in
- INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/src -I../intl -I$(top_srcdir)/lib
diff --git a/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch b/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch
deleted file mode 100644
index 682f1c9c8d..0000000000
--- a/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Upstream-Status: Pending
-
-This patch fixes following issue with automake 1.12
-
-| configure.in:95: error: automatic de-ANSI-fication support has been removed
-...
-| lib/Makefile.am:3: error: automatic de-ANSI-fication support has been removed
-| lib/Makefile.am: installing './depcomp'
-| src/Makefile.am:11: error: automatic de-ANSI-fication support has been removed
-
-
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-2012/05/03
-
-Index: lrzsz-0.12.20/configure.in
-===================================================================
---- lrzsz-0.12.20.orig/configure.in
-+++ lrzsz-0.12.20/configure.in
-@@ -92,7 +92,6 @@ AC_PROG_RANLIB
- AC_ISC_POSIX
- AC_AIX
- AC_MINIX
--AM_C_PROTOTYPES
- AC_C_CONST
- AC_C_INLINE
-
-Index: lrzsz-0.12.20/lib/Makefile.am
-===================================================================
---- lrzsz-0.12.20.orig/lib/Makefile.am
-+++ lrzsz-0.12.20/lib/Makefile.am
-@@ -1,6 +1,5 @@
- noinst_LIBRARIES=libzmodem.a
- CFLAGS=@CFLAGS@
--AUTOMAKE_OPTIONS=ansi2knr
-
- EXTRA_DIST = alloca.c ansi2knr.1 ansi2knr.c \
- getopt.c getopt1.c mkdir.c mktime.c \
-Index: lrzsz-0.12.20/src/Makefile.am
-===================================================================
---- lrzsz-0.12.20.orig/src/Makefile.am
-+++ lrzsz-0.12.20/src/Makefile.am
-@@ -8,7 +8,6 @@ CFLAGS=@CFLAGS@
- DISTCLEAN_FILES=lrzszbug
-
- LDADD = ../lib/libzmodem.a @LIBINTL@
--AUTOMAKE_OPTIONS=ansi2knr
- EXTRA_DIST = ansi2knr.1 ansi2knr.c lrzszbug.in
- INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/src -I../intl -I$(top_srcdir)/lib
- #DEFS = -DLOCALEDIR=\"$(localedir)\" -DOS=\"@host_os@\" -DCPU=\"@host_cpu@\"
diff --git a/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb b/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb
index 34556b2c29..4129237c59 100644
--- a/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb
+++ b/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb
@@ -13,11 +13,9 @@ DEPENDS = ""
PR = "r6"
SRC_URI = "http://www.ohse.de/uwe/releases/lrzsz-${PV}.tar.gz \
+ file://autotools-update.patch \
file://autotools.patch \
file://makefile.patch \
- file://gettext.patch \
- file://acdefine.patch \
- file://lrzsz_fix_for_automake-1.12.patch \
file://lrzsz-check-locale.h.patch \
file://cve-2018-10195.patch \
file://include.patch \
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 9c2d0eb479..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,25 +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 ae68f55..10851fc 100644
+index ccf8ea3..69e5b38 100644
--- a/Makefile
+++ b/Makefile
-@@ -145,7 +145,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)
-@@ -158,7 +157,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
@@ -33,6 +34,3 @@ index ae68f55..10851fc 100644
ASFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
ASFLAGS += $(GENFLAGS)
ASFLAGS += $(platform-asflags-y)
---
-2.20.1
-
diff --git a/meta/recipes-bsp/opensbi/opensbi-payloads.inc b/meta/recipes-bsp/opensbi/opensbi-payloads.inc
index b9714a7acb..2e32943245 100644
--- a/meta/recipes-bsp/opensbi/opensbi-payloads.inc
+++ b/meta/recipes-bsp/opensbi/opensbi-payloads.inc
@@ -7,18 +7,8 @@ def riscv_get_extra_oemake_image(d):
return "FW_PAYLOAD_PATH=" + deploy_dir + "/" + sbi_payload
-def riscv_get_extra_oemake_fdt(d):
- sbi_fdt_payload = d.getVar('RISCV_SBI_FDT')
- deploy_dir = d.getVar('DEPLOY_DIR_IMAGE')
-
- if sbi_fdt_payload is None:
- return ""
-
- return "FW_PAYLOAD_FDT_PATH=" + deploy_dir + "/" + sbi_fdt_payload
-
def riscv_get_do_compile_depends(d):
sbi_payload = d.getVar('RISCV_SBI_PAYLOAD')
- sbi_fdt_payload = d.getVar('RISCV_SBI_FDT')
if sbi_payload is None:
return ""
@@ -26,14 +16,6 @@ def riscv_get_do_compile_depends(d):
if 'linux' in sbi_payload or 'Image' in sbi_payload:
return "virtual/kernel:do_deploy"
if 'u-boot.bin' in sbi_payload:
- # If we want U-Boot and a FDT then we need to depend on U-Boot and
- # the kernel
- if sbi_fdt_payload is not None:
- return "virtual/bootloader:do_deploy virtual/kernel:do_deploy"
- else:
- return "virtual/bootloader:do_deploy"
- # If we want a custom FDT then we need to depend on the kernel
- if sbi_fdt_payload is not None:
- return "virtual/kernel:do_deploy"
+ return "virtual/bootloader:do_deploy"
return ""
diff --git a/meta/recipes-bsp/opensbi/opensbi_0.4.bb b/meta/recipes-bsp/opensbi/opensbi_0.8.bb
index b030436688..818efac733 100644
--- a/meta/recipes-bsp/opensbi/opensbi_0.4.bb
+++ b/meta/recipes-bsp/opensbi/opensbi_0.8.bb
@@ -2,25 +2,21 @@ SUMMARY = "RISC-V Open Source Supervisor Binary Interface (OpenSBI)"
DESCRIPTION = "OpenSBI aims to provide an open-source and extensible implementation of the RISC-V SBI specification for a platform specific firmware (M-mode) and a general purpose OS, hypervisor or bootloader (S-mode or HS-mode). OpenSBI implementation can be easily extended by RISC-V platform or System-on-Chip vendors to fit a particular hadware configuration."
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=42dd9555eb177f35150cf9aa240b61e5"
-DEPENDS += "dtc-native"
require opensbi-payloads.inc
inherit autotools-brokensep deploy
-SRCREV = "ce228ee0919deb9957192d723eecc8aaae2697c6"
-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 \
"
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)} ${@riscv_get_extra_oemake_fdt(d)}"
+EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_image(d)}"
# Required if specifying a custom payload
do_compile[depends] += "${@riscv_get_do_compile_depends(d)}"
@@ -29,23 +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/configure.patch b/meta/recipes-bsp/pciutils/pciutils/configure.patch
index a7e445733a..e444c13975 100644
--- a/meta/recipes-bsp/pciutils/pciutils/configure.patch
+++ b/meta/recipes-bsp/pciutils/pciutils/configure.patch
@@ -24,7 +24,7 @@ Index: pciutils-3.5.6/Makefile
- $(CC) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) -o $@
+ $(CC) $(LDFLAGS) $(TARGET_ARCH) $^ $(LIB_LDLIBS) $(LDLIBS) -o $@
- %.8 %.7: %.man
+ %.8 %.7 %.5: %.man
M=`echo $(DATE) | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <$< >$@ "s/@TODAY@/$$M/;s/@VERSION@/pciutils-$(VERSION)/;s#@IDSDIR@#$(IDSDIR)#"
Index: pciutils-3.5.6/lib/configure
===================================================================
@@ -70,7 +70,7 @@ Index: pciutils-3.5.6/lib/configure
fi
[ -n "$RELEASE" ] && rel="${RELEASE}"
# CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless.
-@@ -44,6 +48,8 @@ cpu=`echo $host | sed 's/^\([^-]*\)-\([^
+@@ -44,6 +48,8 @@ cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
sys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo " $host $rel $cpu $sys"
diff --git a/meta/recipes-bsp/pciutils/pciutils_3.6.2.bb b/meta/recipes-bsp/pciutils/pciutils_3.7.0.bb
index 413421cd8a..4f0edc01ed 100644
--- a/meta/recipes-bsp/pciutils/pciutils_3.6.2.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] = "77963796d1be4f451b83e6da28ba4f82"
-SRC_URI[sha256sum] = "db452ec986edefd88af0d222d22f6102f8030a8633fdfe846c3ae4bde9bb93f3"
+SRC_URI[sha256sum] = "9d40b97be8b6a2cdf96aead5a61881d1f7e4e0da9544a9bac4fba1ae9dcd40eb"
inherit multilib_header pkgconfig
diff --git a/meta/recipes-bsp/u-boot/files/0001-CVE-2019-13103.patch b/meta/recipes-bsp/u-boot/files/0001-CVE-2019-13103.patch
deleted file mode 100644
index 1a5d1eb996..0000000000
--- a/meta/recipes-bsp/u-boot/files/0001-CVE-2019-13103.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 39a759494f734c4cdc3e2b919671bfb3134b41ae Mon Sep 17 00:00:00 2001
-From: Paul Emge <paulemge@forallsecure.com>
-Date: Mon, 8 Jul 2019 16:37:03 -0700
-Subject: [PATCH 1/9] CVE-2019-13103: disk: stop infinite recursion in DOS
- Partitions
-
-part_get_info_extended and print_partition_extended can recurse infinitely
-while parsing a self-referential filesystem or one with a silly number of
-extended partitions. This patch adds a limit to the number of recursive
-partitions.
-
-Signed-off-by: Paul Emge <paulemge@forallsecure.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=232e2f4fd9a24bf08215ddc8c53ccadffc841fb5]
-
-CVE: CVE-2019-13103
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- disk/part_dos.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/disk/part_dos.c b/disk/part_dos.c
-index 936cee0d36..aae9d95906 100644
---- a/disk/part_dos.c
-+++ b/disk/part_dos.c
-@@ -23,6 +23,10 @@
-
- #define DOS_PART_DEFAULT_SECTOR 512
-
-+/* should this be configurable? It looks like it's not very common at all
-+ * to use large numbers of partitions */
-+#define MAX_EXT_PARTS 256
-+
- /* Convert char[4] in little endian format to the host format integer
- */
- static inline unsigned int le32_to_int(unsigned char *le32)
-@@ -126,6 +130,13 @@ static void print_partition_extended(struct blk_desc *dev_desc,
- dos_partition_t *pt;
- int i;
-
-+ /* set a maximum recursion level */
-+ if (part_num > MAX_EXT_PARTS)
-+ {
-+ printf("** Nested DOS partitions detected, stopping **\n");
-+ return;
-+ }
-+
- if (blk_dread(dev_desc, ext_part_sector, 1, (ulong *)buffer) != 1) {
- printf ("** Can't read partition table on %d:" LBAFU " **\n",
- dev_desc->devnum, ext_part_sector);
-@@ -191,6 +202,13 @@ static int part_get_info_extended(struct blk_desc *dev_desc,
- int i;
- int dos_type;
-
-+ /* set a maximum recursion level */
-+ if (part_num > MAX_EXT_PARTS)
-+ {
-+ printf("** Nested DOS partitions detected, stopping **\n");
-+ return -1;
-+ }
-+
- if (blk_dread(dev_desc, ext_part_sector, 1, (ulong *)buffer) != 1) {
- printf ("** Can't read partition table on %d:" LBAFU " **\n",
- dev_desc->devnum, ext_part_sector);
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/files/0002-CVE-2019-13104.patch b/meta/recipes-bsp/u-boot/files/0002-CVE-2019-13104.patch
deleted file mode 100644
index de122b27d0..0000000000
--- a/meta/recipes-bsp/u-boot/files/0002-CVE-2019-13104.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 1d36545e43003f4b1bb3a303a3b468abd482fa2f Mon Sep 17 00:00:00 2001
-From: Paul Emge <paulemge@forallsecure.com>
-Date: Mon, 8 Jul 2019 16:37:05 -0700
-Subject: [PATCH 2/9] CVE-2019-13104: ext4: check for underflow in
- ext4fs_read_file
-
-in ext4fs_read_file, it is possible for a broken/malicious file
-system to cause a memcpy of a negative number of bytes, which
-overflows all memory. This patch fixes the issue by checking for
-a negative length.
-
-Signed-off-by: Paul Emge <paulemge@forallsecure.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=878269dbe74229005dd7f27aca66c554e31dad8e]
-
-CVE: CVE-2019-13104
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- fs/ext4/ext4fs.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
-index 26db677a1f..c8c8655ed8 100644
---- a/fs/ext4/ext4fs.c
-+++ b/fs/ext4/ext4fs.c
-@@ -66,13 +66,15 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
-
- ext_cache_init(&cache);
-
-- if (blocksize <= 0)
-- return -1;
--
- /* Adjust len so it we can't read past the end of the file. */
- if (len + pos > filesize)
- len = (filesize - pos);
-
-+ if (blocksize <= 0 || len <= 0) {
-+ ext_cache_fini(&cache);
-+ return -1;
-+ }
-+
- blockcnt = lldiv(((len + pos) + blocksize - 1), blocksize);
-
- for (i = lldiv(pos, blocksize); i < blockcnt; i++) {
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/files/0003-CVE-2019-13105.patch b/meta/recipes-bsp/u-boot/files/0003-CVE-2019-13105.patch
deleted file mode 100644
index f525147e57..0000000000
--- a/meta/recipes-bsp/u-boot/files/0003-CVE-2019-13105.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 4e937d0de669ee69cf41c20494cbf66c339c3174 Mon Sep 17 00:00:00 2001
-From: Paul Emge <paulemge@forallsecure.com>
-Date: Mon, 8 Jul 2019 16:37:04 -0700
-Subject: [PATCH 3/9] CVE-2019-13105: ext4: fix double-free in ext4_cache_read
-
-ext_cache_read doesn't null cache->buf, after freeing, which results
-in a later function double-freeing it. This patch fixes
-ext_cache_read to call ext_cache_fini instead of free.
-
-Signed-off-by: Paul Emge <paulemge@forallsecure.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=6e5a79de658cb1c8012c86e0837379aa6eabd024]
-
-CVE: CVE-2019-13105
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- fs/ext4/ext4fs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
-index c8c8655ed8..e2b740cac4 100644
---- a/fs/ext4/ext4fs.c
-+++ b/fs/ext4/ext4fs.c
-@@ -288,7 +288,7 @@ int ext_cache_read(struct ext_block_cache *cache, lbaint_t block, int size)
- if (!cache->buf)
- return 0;
- if (!ext4fs_devread(block, 0, size, cache->buf)) {
-- free(cache->buf);
-+ ext_cache_fini(cache);
- return 0;
- }
- cache->block = block;
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/files/0004-CVE-2019-13106.patch b/meta/recipes-bsp/u-boot/files/0004-CVE-2019-13106.patch
deleted file mode 100644
index 8e1a1a9943..0000000000
--- a/meta/recipes-bsp/u-boot/files/0004-CVE-2019-13106.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 1307dabf5422372483f840dda3963f9dbd2e8e6f Mon Sep 17 00:00:00 2001
-From: Paul Emge <paulemge@forallsecure.com>
-Date: Mon, 8 Jul 2019 16:37:07 -0700
-Subject: [PATCH 4/9] CVE-2019-13106: ext4: fix out-of-bounds memset
-
-In ext4fs_read_file in ext4fs.c, a memset can overwrite the bounds of
-the destination memory region. This patch adds a check to disallow
-this.
-
-Signed-off-by: Paul Emge <paulemge@forallsecure.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=e205896c5383c938274262524adceb2775fb03ba]
-
-CVE: CVE-2019-13106
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- fs/ext4/ext4fs.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
-index e2b740cac4..37b31d9f0f 100644
---- a/fs/ext4/ext4fs.c
-+++ b/fs/ext4/ext4fs.c
-@@ -61,6 +61,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
- lbaint_t delayed_skipfirst = 0;
- lbaint_t delayed_next = 0;
- char *delayed_buf = NULL;
-+ char *start_buf = buf;
- short status;
- struct ext_block_cache cache;
-
-@@ -139,6 +140,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
- }
- } else {
- int n;
-+ int n_left;
- if (previous_block_number != -1) {
- /* spill */
- status = ext4fs_devread(delayed_start,
-@@ -153,8 +155,9 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
- }
- /* Zero no more than `len' bytes. */
- n = blocksize - skipfirst;
-- if (n > len)
-- n = len;
-+ n_left = len - ( buf - start_buf );
-+ if (n > n_left)
-+ n = n_left;
- memset(buf, 0, n);
- }
- buf += blocksize - skipfirst;
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/files/0005-CVE-2019-14192-14193-14199.patch b/meta/recipes-bsp/u-boot/files/0005-CVE-2019-14192-14193-14199.patch
deleted file mode 100644
index a19545a2d3..0000000000
--- a/meta/recipes-bsp/u-boot/files/0005-CVE-2019-14192-14193-14199.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e8e602f4a4b2aacfb3da32bb8a838be15ea70e7b Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:47:33 +0000
-Subject: [PATCH 5/9] CVE: net: fix unbounded memcpy of UDP packet
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to udp_len to fix unbounded memcpy for
-CVE-2019-14192, CVE-2019-14193 and CVE-2019-14199.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=fe7288069d2e6659117049f7d27e261b550bb725]
-
-CVE: CVE-2019-14192, CVE-2019-14193 and CVE-2019-14199
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/net.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/net.c b/net/net.c
-index 58b0417cbe..38105f1142 100644
---- a/net/net.c
-+++ b/net/net.c
-@@ -1252,6 +1252,9 @@ void net_process_received_packet(uchar *in_packet, int len)
- return;
- }
-
-+ if (ntohs(ip->udp_len) < UDP_HDR_SIZE || ntohs(ip->udp_len) > ntohs(ip->ip_len))
-+ return;
-+
- debug_cond(DEBUG_DEV_PKT,
- "received UDP (to=%pI4, from=%pI4, len=%d)\n",
- &dst_ip, &src_ip, len);
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/files/0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch b/meta/recipes-bsp/u-boot/files/0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch
deleted file mode 100644
index 04a09e46df..0000000000
--- a/meta/recipes-bsp/u-boot/files/0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 261658ddaf24bb35edd477cf09ec055569fd9894 Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:47:40 +0000
-Subject: [PATCH 6/9] CVE: nfs: fix stack-based buffer overflow in some
- nfs_handler reply helper functions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to nfs_handler to fix buffer overflow for CVE-2019-14197,
-CVE-2019-14200, CVE-2019-14201, CVE-2019-14202, CVE-2019-14203 and CVE-2019-14204.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=741a8a08ebe5bc3ccfe3cde6c2b44ee53891af21]
-
-CVE: CVE-2019-14197, CVE-2019-14200, CVE-2019-14201, CVE-2019-14202,
- CVE-2019-14203 and CVE-2019-14204
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/nfs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/nfs.c b/net/nfs.c
-index d6a7f8e827..b7cf3b3a18 100644
---- a/net/nfs.c
-+++ b/net/nfs.c
-@@ -732,6 +732,9 @@ static void nfs_handler(uchar *pkt, unsigned dest, struct in_addr sip,
-
- debug("%s\n", __func__);
-
-+ if (len > sizeof(struct rpc_t))
-+ return;
-+
- if (dest != nfs_our_port)
- return;
-
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/files/0007-CVE-2019-14194-14198.patch b/meta/recipes-bsp/u-boot/files/0007-CVE-2019-14194-14198.patch
deleted file mode 100644
index b3e3b72ebf..0000000000
--- a/meta/recipes-bsp/u-boot/files/0007-CVE-2019-14194-14198.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From fb6dc193bf2685b7574b218f7ca558aa54659e11 Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:47:48 +0000
-Subject: [PATCH 7/9] CVE-2019-14194/CVE-2019-14198: nfs: fix unbounded memcpy
- with a failed length check at nfs_read_reply
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to rpc_pkt.u.reply.data at nfs_read_reply.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=aa207cf3a6d68f39d64cd29057a4fb63943e9078]
-
-CVE: CVE-2019-14194 and CVE-2019-14198
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/nfs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/nfs.c b/net/nfs.c
-index b7cf3b3a18..11941fad1a 100644
---- a/net/nfs.c
-+++ b/net/nfs.c
-@@ -701,6 +701,9 @@ static int nfs_read_reply(uchar *pkt, unsigned len)
- &(rpc_pkt.u.reply.data[4 + nfsv3_data_offset]);
- }
-
-+ if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + rlen) > len)
-+ return -9999;
-+
- if (store_block(data_ptr, nfs_offset, rlen))
- return -9999;
-
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/files/0008-CVE-2019-14195.patch b/meta/recipes-bsp/u-boot/files/0008-CVE-2019-14195.patch
deleted file mode 100644
index bf9fb0ef52..0000000000
--- a/meta/recipes-bsp/u-boot/files/0008-CVE-2019-14195.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 2236973b8a173ff54ae1ebf8ec2300928e69bd1b Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:47:54 +0000
-Subject: [PATCH 8/9] CVE-2019-14195: nfs: fix unbounded memcpy with
- unvalidated length at nfs_readlink_reply
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to rpc_pkt.u.reply.data at nfs_readlink_reply.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=cf3a4f1e86ecdd24f87b615051b49d8e1968c230]
-
-CVE: CVE-2019-14195
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/nfs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/nfs.c b/net/nfs.c
-index 11941fad1a..915acd95cf 100644
---- a/net/nfs.c
-+++ b/net/nfs.c
-@@ -634,6 +634,9 @@ static int nfs_readlink_reply(uchar *pkt, unsigned len)
- /* new path length */
- rlen = ntohl(rpc_pkt.u.reply.data[1 + nfsv3_data_offset]);
-
-+ if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + rlen) > len)
-+ return -NFS_RPC_DROP;
-+
- if (*((char *)&(rpc_pkt.u.reply.data[2 + nfsv3_data_offset])) != '/') {
- int pathlen;
-
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/files/0009-CVE-2019-14196.patch b/meta/recipes-bsp/u-boot/files/0009-CVE-2019-14196.patch
deleted file mode 100644
index f06e025297..0000000000
--- a/meta/recipes-bsp/u-boot/files/0009-CVE-2019-14196.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 74c468caa95c86cdb12c4b8073e154c435ac0bf7 Mon Sep 17 00:00:00 2001
-From: "liucheng (G)" <liucheng32@huawei.com>
-Date: Thu, 29 Aug 2019 13:48:02 +0000
-Subject: [PATCH 9/9] CVE-2019-14196: nfs: fix unbounded memcpy with a failed
- length check at nfs_lookup_reply
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds a check to rpc_pkt.u.reply.data at nfs_lookup_reply.
-
-Signed-off-by: Cheng Liu <liucheng32@huawei.com>
-Reported-by: Fermín Serna <fermin@semmle.com>
-Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-
-Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit;
- h=5d14ee4e53a81055d34ba280cb8fd90330f22a96]
-
-CVE: CVE-2019-14196
-
-Signed-off-by: Meng Li <Meng.Li@windriver.com>
----
- net/nfs.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/net/nfs.c b/net/nfs.c
-index 915acd95cf..89952aeb66 100644
---- a/net/nfs.c
-+++ b/net/nfs.c
-@@ -566,11 +566,15 @@ static int nfs_lookup_reply(uchar *pkt, unsigned len)
- }
-
- if (supported_nfs_versions & NFSV2_FLAG) {
-+ if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + NFS_FHSIZE) > len)
-+ return -NFS_RPC_DROP;
- memcpy(filefh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE);
- } else { /* NFSV3_FLAG */
- filefh3_length = ntohl(rpc_pkt.u.reply.data[1]);
- if (filefh3_length > NFS3_FHSIZE)
- filefh3_length = NFS3_FHSIZE;
-+ if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + filefh3_length) > len)
-+ return -NFS_RPC_DROP;
- memcpy(filefh, rpc_pkt.u.reply.data + 2, filefh3_length);
- }
-
---
-2.17.1
-
diff --git a/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb b/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb
new file mode 100644
index 0000000000..613e3161fb
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "U-Boot libraries and tools to access environment"
+
+DESCRIPTION = "This package contains tools and libraries to read \
+and modify U-Boot environment. \
+It provides a hardware-independent replacement for fw_printenv/setenv utilities \
+provided by U-Boot"
+
+HOMEPAGE = "https://github.com/sbabic/libubootenv"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c"
+SECTION = "libs"
+
+SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https"
+SRCREV = "824551ac77bab1d0f7ae34d7a7c77b155240e754"
+
+S = "${WORKDIR}/git"
+
+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 f63dfa3b73..9199bbfe0b 100644
--- a/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,18 +12,11 @@ PE = "1"
# We use the revision in order to avoid having to fetch it from the
# repo during parse
-SRCREV = "e5aee22e4be75e75a854ab64503fc80598bc2004"
+SRCREV = "2f5fbb5b39f7b67044dda5c35e4a4b31685a3109"
SRC_URI = "git://git.denx.de/u-boot.git \
- file://0001-CVE-2019-13103.patch \
- file://0002-CVE-2019-13104.patch \
- file://0003-CVE-2019-13105.patch \
- file://0004-CVE-2019-13106.patch \
- file://0005-CVE-2019-14192-14193-14199.patch \
- file://0006-CVE-2019-14197-14200-14201-14202-14203-14204.patch \
- file://0007-CVE-2019-14194-14198.patch \
- file://0008-CVE-2019-14195.patch \
- file://0009-CVE-2019-14196.patch \
-"
+ "
S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+do_configure[cleandirs] = "${B}"
diff --git a/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.07.bb b/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.07.bb
deleted file mode 100644
index b5ce56847b..0000000000
--- a/meta/recipes-bsp/u-boot/u-boot-fw-utils_2019.07.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-require u-boot-common.inc
-
-SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
-DEPENDS += "mtd-utils"
-
-INSANE_SKIP_${PN} = "already-stripped"
-EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1'
-EXTRA_OEMAKE_class-cross = 'HOSTCC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
-
-inherit uboot-config
-
-do_compile () {
- oe_runmake ${UBOOT_MACHINE}
- oe_runmake envtools
-}
-
-do_install () {
- install -d ${D}${base_sbindir}
- install -d ${D}${sysconfdir}
- install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv
- install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv
- install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config
-}
-
-do_install_class-cross () {
- install -d ${D}${bindir_cross}
- install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv
- install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv
-}
-
-SYSROOT_DIRS_append_class-cross = " ${bindir_cross}"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-BBCLASSEXTEND = "cross"
diff --git a/meta/recipes-bsp/u-boot/u-boot-tools_2019.07.bb b/meta/recipes-bsp/u-boot/u-boot-tools.inc
index bede984ef7..8ae290acc6 100644
--- a/meta/recipes-bsp/u-boot/u-boot-tools_2019.07.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"
@@ -25,14 +23,14 @@ SED_CONFIG_EFI_armeb = ''
SED_CONFIG_EFI_aarch64 = ''
do_compile () {
- oe_runmake sandbox_defconfig
+ oe_runmake -C ${S} sandbox_defconfig O=${B}
# Disable CONFIG_CMD_LICENSE, license.h is not used by tools and
# generating it requires bin2header tool, which for target build
# is built with target tools and thus cannot be executed on host.
- sed -i -e "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" ${SED_CONFIG_EFI} .config
+ sed -i -e "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" ${SED_CONFIG_EFI} ${B}/.config
- oe_runmake cross_tools NO_SDL=1
+ oe_runmake -C ${S} cross_tools NO_SDL=1 O=${B}
}
do_install () {
@@ -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 9a754fd09b..251178db33 100644
--- a/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/meta/recipes-bsp/u-boot/u-boot.inc
@@ -1,19 +1,17 @@
SUMMARY = "Universal Boot Loader for embedded devices"
PROVIDES = "virtual/bootloader"
-B = "${WORKDIR}/build"
-
PACKAGE_ARCH = "${MACHINE_ARCH}"
DEPENDS += "kern-tools-native"
-inherit uboot-config uboot-extlinux-config uboot-sign deploy cml1
+inherit uboot-config uboot-extlinux-config uboot-sign deploy cml1 python3native
-DEPENDS += "swig-native python-native"
+DEPENDS += "swig-native"
EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
-EXTRA_OEMAKE += 'PYTHON2=nativepython STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
+EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
PACKAGECONFIG ??= "openssl"
# u-boot will compile its own tools during the build, with specific
@@ -62,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
@@ -91,21 +101,21 @@ do_configure () {
}
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_2019.07.bb b/meta/recipes-bsp/u-boot/u-boot_2020.07.bb
index 02d67c0db2..02d67c0db2 100644
--- a/meta/recipes-bsp/u-boot/u-boot_2019.07.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 0213e7af63..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 distro_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 1c6e46aaba..0000000000
--- a/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-require avahi.inc
-
-inherit distro_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 37e210e6da..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
@@ -1,4 +1,4 @@
-From 9473d29843579802e96b0293a3e953fed93de82c Mon Sep 17 00:00:00 2001
+From edda20fb5a6e88548f85e39d34d6c074306e15bc Mon Sep 17 00:00:00 2001
From: Paul Gortmaker <paul.gortmaker@windriver.com>
Date: Tue, 9 Jun 2015 11:22:00 -0400
Subject: [PATCH] bind: ensure searching for json headers searches sysroot
@@ -27,20 +27,21 @@ to make use of the combination some day.
Upstream-Status: Inappropriate [OE Specific]
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+
---
- configure.in | 2 +-
+ configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: bind-9.11.3/configure.in
+Index: bind-9.16.4/configure.ac
===================================================================
---- bind-9.11.3.orig/configure.in
-+++ bind-9.11.3/configure.in
-@@ -2574,7 +2574,7 @@ case "$use_libjson" in
- libjson_libs=""
+--- 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 871bb2a5f6..0000000000
--- a/meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 950867d9fd3f690e271c8c807b6eed144b2935b2 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.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.in b/configure.in
-index 54efc55..76ac0eb 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1691,7 +1691,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
---
-2.7.4
-
diff --git a/meta/recipes-connectivity/bind/bind/0001-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch b/meta/recipes-connectivity/bind/bind/0001-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch
deleted file mode 100644
index a8d601dcaa..0000000000
--- a/meta/recipes-connectivity/bind/bind/0001-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Upstream-Status: Pending
-
-Subject: gen.c: extend DIRNAMESIZE from 256 to 512
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- lib/dns/gen.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: bind-9.11.3/lib/dns/gen.c
-===================================================================
---- bind-9.11.3.orig/lib/dns/gen.c
-+++ bind-9.11.3/lib/dns/gen.c
-@@ -130,7 +130,7 @@ static const char copyright[] =
- #define TYPECLASSBUF (TYPECLASSLEN + 1)
- #define TYPECLASSFMT "%" STR(TYPECLASSLEN) "[-0-9a-z]_%d"
- #define ATTRIBUTESIZE 256
--#define DIRNAMESIZE 256
-+#define DIRNAMESIZE 512
-
- static struct cc {
- struct cc *next;
diff --git a/meta/recipes-connectivity/bind/bind/0001-lib-dns-gen.c-fix-too-long-error.patch b/meta/recipes-connectivity/bind/bind/0001-lib-dns-gen.c-fix-too-long-error.patch
deleted file mode 100644
index 01874a4407..0000000000
--- a/meta/recipes-connectivity/bind/bind/0001-lib-dns-gen.c-fix-too-long-error.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5bc3167a8b714ec0c4a3f1c7f3b9411296ec0a23 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 16 Sep 2015 20:23:47 -0700
-Subject: [PATCH] lib/dns/gen.c: fix too long error
-
-The 512 is a little short when build in deep dir, and cause "too long"
-error, use PATH_MAX if defined.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- lib/dns/gen.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-Index: bind-9.11.3/lib/dns/gen.c
-===================================================================
---- bind-9.11.3.orig/lib/dns/gen.c
-+++ bind-9.11.3/lib/dns/gen.c
-@@ -130,7 +130,11 @@ static const char copyright[] =
- #define TYPECLASSBUF (TYPECLASSLEN + 1)
- #define TYPECLASSFMT "%" STR(TYPECLASSLEN) "[-0-9a-z]_%d"
- #define ATTRIBUTESIZE 256
-+#ifdef PATH_MAX
-+#define DIRNAMESIZE PATH_MAX
-+#else
- #define DIRNAMESIZE 512
-+#endif
-
- static struct cc {
- struct cc *next;
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.5-P4.bb b/meta/recipes-connectivity/bind/bind_9.16.7.bb
index 69b1174073..5fc2c1d3cd 100644
--- a/meta/recipes-connectivity/bind/bind_9.11.5-P4.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,40 +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-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch \
- file://0001-lib-dns-gen.c-fix-too-long-error.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] = "8ddab4b61fa4516fe404679c74e37960"
-SRC_URI[sha256sum] = "7e8c08192bcbaeb6e9f2391a70e67583b027b90e8c4bc1605da6eb126edde434"
+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+)*)/"
-inherit autotools update-rc.d systemd useradd pkgconfig multilib_script
-
-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)}
@@ -64,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"
@@ -103,6 +87,8 @@ do_install_append() {
install -d ${D}${sysconfdir}/tmpfiles.d
echo "d /run/named 0755 bind bind - -" > ${D}${sysconfdir}/tmpfiles.d/bind.conf
fi
+
+ oe_multilib_header isc/platform.h
}
CONFFILES_${PN} = " \
@@ -126,14 +112,12 @@ 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)}"
FILES_python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \
${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}"
-RDEPENDS_${PN} = "bash"
-RDEPENDS_${PN}-utils = "bash"
RDEPENDS_${PN}-dev = ""
RDEPENDS_python3-bind = "python3-core python3-ply"
diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc b/meta/recipes-connectivity/bluez5/bluez5.inc
index f582a07e22..4c1156c67c 100644
--- a/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -42,33 +42,28 @@ 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 \
- file://out-of-tree.patch \
- file://init \
- file://run-ptest \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch', d)} \
- file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
- file://0001-test-gatt-Fix-hung-issue.patch \
- file://0001-Makefile.am-Fix-a-race-issue-for-tools.patch \
- file://CVE-2018-10910.patch \
- file://gcc9-fixes.patch \
- file://0001-tools-Fix-build-after-y2038-changes-in-glibc.patch \
-"
+SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
+ file://init \
+ file://run-ptest \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch', d)} \
+ file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
+ file://0001-test-gatt-Fix-hung-issue.patch \
+ "
S = "${WORKDIR}/bluez-${PV}"
CVE_PRODUCT = "bluez"
-inherit autotools pkgconfig systemd update-rc.d distro_features_check ptest gobject-introspection-data
+inherit autotools pkgconfig systemd update-rc.d ptest gobject-introspection-data
EXTRA_OECONF = "\
--enable-test \
--enable-datafiles \
--enable-library \
+ --without-zsh-completion-dir \
"
# bluez5 builds a large number of useful utilities but does not
diff --git a/meta/recipes-connectivity/bluez5/bluez5/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch b/meta/recipes-connectivity/bluez5/bluez5/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
index da7140922d..618ed734a9 100644
--- a/meta/recipes-connectivity/bluez5/bluez5/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
+++ b/meta/recipes-connectivity/bluez5/bluez5/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
@@ -1,4 +1,4 @@
-From 99ccdbe155028c4c789803a429072675b87d0c3a Mon Sep 17 00:00:00 2001
+From f74eb97c9fb3c0ee2895742e773ac6a3c41c999c Mon Sep 17 00:00:00 2001
From: Giovanni Campagna <gcampagna-cNUdlRotFMnNLxjTenLetw@public.gmane.org>
Date: Sat, 12 Oct 2013 17:45:25 +0200
Subject: [PATCH] Allow using obexd without systemd in the user session
@@ -17,22 +17,22 @@ http://thread.gmane.org/gmane.linux.bluez.kernel/38725/focus=38843
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
- Makefile.obexd | 4 ++--
- obexd/src/{org.bluez.obex.service => org.bluez.obex.service.in} | 2 +-
+ Makefile.obexd | 4 ++--
+ .../src/{org.bluez.obex.service => org.bluez.obex.service.in} | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
rename obexd/src/{org.bluez.obex.service => org.bluez.obex.service.in} (76%)
diff --git a/Makefile.obexd b/Makefile.obexd
-index c462692..0325f66 100644
+index de59d29..73004a3 100644
--- a/Makefile.obexd
+++ b/Makefile.obexd
@@ -1,12 +1,12 @@
if SYSTEMD
- systemduserunitdir = @SYSTEMD_USERUNITDIR@
+ systemduserunitdir = $(SYSTEMD_USERUNITDIR)
systemduserunit_DATA = obexd/src/obex.service
+endif
- dbussessionbusdir = @DBUS_SESSIONBUSDIR@
+ dbussessionbusdir = $(DBUS_SESSIONBUSDIR)
dbussessionbus_DATA = obexd/src/org.bluez.obex.service
-endif
diff --git a/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch b/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch
deleted file mode 100644
index 3c227a8ea2..0000000000
--- a/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 048e1844092cb4b3afd23f16fc2cc70dd2e122b7 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Mon, 24 Dec 2018 17:57:14 -0800
-Subject: [PATCH] Makefile.am: Fix a race issue for tools
-
-Fixed:
-cp ../bluez-5.50/tools/hid2hci.rules tools/97-hid2hci.rules
-cp: cannot create regular file tools/97-hid2hci.rules: No such file or directory
-make[1]: *** [tools/97-hid2hci.rules] Error 1
-
-Upstream-Status: Submitted[https://www.spinics.net/lists/linux-bluetooth/msg78361.html]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index 6d1ff11..35a01f2 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -504,6 +504,7 @@ src/builtin.h: src/genbuiltin $(builtin_sources)
- $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@
-
- tools/%.rules:
-+ [ -e tools ] || $(MKDIR_P) tools
- $(AM_V_GEN)cp $(srcdir)/$(subst 97-,,$@) $@
-
- $(lib_libbluetooth_la_OBJECTS): $(local_headers)
---
-2.10.2
-
diff --git a/meta/recipes-connectivity/bluez5/bluez5/0001-tools-Fix-build-after-y2038-changes-in-glibc.patch b/meta/recipes-connectivity/bluez5/bluez5/0001-tools-Fix-build-after-y2038-changes-in-glibc.patch
deleted file mode 100644
index 9ca20ae53b..0000000000
--- a/meta/recipes-connectivity/bluez5/bluez5/0001-tools-Fix-build-after-y2038-changes-in-glibc.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From f36f71f60b1e68c0f12e615b9b128d089ec3dd19 Mon Sep 17 00:00:00 2001
-From: Bastien Nocera <hadess@hadess.net>
-Date: Fri, 7 Jun 2019 09:51:33 +0200
-Subject: [PATCH] tools: Fix build after y2038 changes in glibc
-
-The 32-bit SIOCGSTAMP has been deprecated. Use the deprecated name
-to fix the build.
-
-Upstream-Status: backport commit f36f71f60b1e68c0f12e615b9b128d089ec3dd19
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
-
----
- tools/l2test.c | 6 +++++-
- tools/rctest.c | 6 +++++-
- 2 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/tools/l2test.c b/tools/l2test.c
-index e755ac881..e787c2ce2 100644
---- a/tools/l2test.c
-+++ b/tools/l2test.c
-@@ -55,6 +55,10 @@
- #define BREDR_DEFAULT_PSM 0x1011
- #define LE_DEFAULT_PSM 0x0080
-
-+#ifndef SIOCGSTAMP_OLD
-+#define SIOCGSTAMP_OLD SIOCGSTAMP
-+#endif
-+
- /* Test modes */
- enum {
- SEND,
-@@ -907,7 +911,7 @@ static void recv_mode(int sk)
- if (timestamp) {
- struct timeval tv;
-
-- if (ioctl(sk, SIOCGSTAMP, &tv) < 0) {
-+ if (ioctl(sk, SIOCGSTAMP_OLD, &tv) < 0) {
- timestamp = 0;
- memset(ts, 0, sizeof(ts));
- } else {
-diff --git a/tools/rctest.c b/tools/rctest.c
-index 94490f462..bc8ed875d 100644
---- a/tools/rctest.c
-+++ b/tools/rctest.c
-@@ -50,6 +50,10 @@
-
- #include "src/shared/util.h"
-
-+#ifndef SIOCGSTAMP_OLD
-+#define SIOCGSTAMP_OLD SIOCGSTAMP
-+#endif
-+
- /* Test modes */
- enum {
- SEND,
-@@ -505,7 +509,7 @@ static void recv_mode(int sk)
- if (timestamp) {
- struct timeval tv;
-
-- if (ioctl(sk, SIOCGSTAMP, &tv) < 0) {
-+ if (ioctl(sk, SIOCGSTAMP_OLD, &tv) < 0) {
- timestamp = 0;
- memset(ts, 0, sizeof(ts));
- } else {
---
-2.19.1
-
diff --git a/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch b/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch
deleted file mode 100644
index 2a78077443..0000000000
--- a/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch
+++ /dev/null
@@ -1,505 +0,0 @@
-From 977321f2c7f974ea68a3d90df296c66189a3f254 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Fri, 21 Jun 2019 17:57:35 +0900
-Subject: [PATCH] CVE-2018-10910
-
-A bug in Bluez may allow for the Bluetooth Discoverable state being set to on
-when no Bluetooth agent is registered with the system. This situation could
-lead to the unauthorized pairing of certain Bluetooth devices without any
-form of authentication.
-
-CVE: CVE-2018-10910
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-Subject: [PATCH BlueZ 1/4] client: Add discoverable-timeout command
-From: Luiz Augusto von Dentz <luiz.dentz () gmail ! com>
-Date: 2018-07-25 10:20:32
-Message-ID: 20180725102035.19439-1-luiz.dentz () gmail ! com
-[Download RAW message or body]
-
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
-This adds discoverable-timeout command which can be used to get/set
-DiscoverableTimeout property:
-
-[bluetooth]# discoverable-timeout 180
-Changing discoverable-timeout 180 succeeded
----
- client/main.c | 82 +++++++++++++++++++++++++++++++++-
- doc/adapter-api.txt | 6 +++
- src/adapter.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++------
- 3 files changed, 198 insertions(+), 15 deletions(-)
-
-diff --git a/client/main.c b/client/main.c
-index 87323d8..1a66a3a 100644
---- a/client/main.c
-+++ b/client/main.c
-@@ -877,6 +877,7 @@ static void cmd_show(int argc, char *argv[])
- print_property(proxy, "Class");
- print_property(proxy, "Powered");
- print_property(proxy, "Discoverable");
-+ print_property(proxy, "DiscoverableTimeout");
- print_property(proxy, "Pairable");
- print_uuids(proxy);
- print_property(proxy, "Modalias");
-@@ -1061,6 +1062,47 @@ static void cmd_discoverable(int argc, char *argv[])
- return bt_shell_noninteractive_quit(EXIT_FAILURE);
- }
-
-+static void cmd_discoverable_timeout(int argc, char *argv[])
-+{
-+ uint32_t value;
-+ char *endptr = NULL;
-+ char *str;
-+
-+ if (argc < 2) {
-+ DBusMessageIter iter;
-+
-+ if (!g_dbus_proxy_get_property(default_ctrl->proxy,
-+ "DiscoverableTimeout", &iter)) {
-+ bt_shell_printf("Unable to get DiscoverableTimeout\n");
-+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
-+ }
-+
-+ dbus_message_iter_get_basic(&iter, &value);
-+
-+ bt_shell_printf("DiscoverableTimeout: %d seconds\n", value);
-+
-+ return;
-+ }
-+
-+ value = strtol(argv[1], &endptr, 0);
-+ if (!endptr || *endptr != '\0' || value > UINT32_MAX) {
-+ bt_shell_printf("Invalid argument\n");
-+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
-+ }
-+
-+ str = g_strdup_printf("discoverable-timeout %d", value);
-+
-+ if (g_dbus_proxy_set_property_basic(default_ctrl->proxy,
-+ "DiscoverableTimeout",
-+ DBUS_TYPE_UINT32, &value,
-+ generic_callback, str, g_free))
-+ return;
-+
-+ g_free(str);
-+
-+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
-+}
-+
- static void cmd_agent(int argc, char *argv[])
- {
- dbus_bool_t enable;
-@@ -1124,6 +1166,7 @@ static struct set_discovery_filter_args {
- char **uuids;
- size_t uuids_len;
- dbus_bool_t duplicate;
-+ dbus_bool_t discoverable;
- bool set;
- } filter = {
- .rssi = DISTANCE_VAL_INVALID,
-@@ -1163,6 +1206,11 @@ static void set_discovery_filter_setup(DBusMessageIter *iter, void *user_data)
- DBUS_TYPE_BOOLEAN,
- &args->duplicate);
-
-+ if (args->discoverable)
-+ g_dbus_dict_append_entry(&dict, "Discoverable",
-+ DBUS_TYPE_BOOLEAN,
-+ &args->discoverable);
-+
- dbus_message_iter_close_container(iter, &dict);
- }
-
-@@ -1320,6 +1368,26 @@ static void cmd_scan_filter_duplicate_data(int argc, char *argv[])
- filter.set = false;
- }
-
-+static void cmd_scan_filter_discoverable(int argc, char *argv[])
-+{
-+ if (argc < 2 || !strlen(argv[1])) {
-+ bt_shell_printf("Discoverable: %s\n",
-+ filter.discoverable ? "on" : "off");
-+ return bt_shell_noninteractive_quit(EXIT_SUCCESS);
-+ }
-+
-+ if (!strcmp(argv[1], "on"))
-+ filter.discoverable = true;
-+ else if (!strcmp(argv[1], "off"))
-+ filter.discoverable = false;
-+ else {
-+ bt_shell_printf("Invalid option: %s\n", argv[1]);
-+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
-+ }
-+
-+ filter.set = false;
-+}
-+
- static void filter_clear_uuids(void)
- {
- g_strfreev(filter.uuids);
-@@ -1348,6 +1416,11 @@ static void filter_clear_duplicate(void)
- filter.duplicate = false;
- }
-
-+static void filter_clear_discoverable(void)
-+{
-+ filter.discoverable = false;
-+}
-+
- struct clear_entry {
- const char *name;
- void (*clear) (void);
-@@ -1359,6 +1432,7 @@ static const struct clear_entry filter_clear[] = {
- { "pathloss", filter_clear_pathloss },
- { "transport", filter_clear_transport },
- { "duplicate-data", filter_clear_duplicate },
-+ { "discoverable", filter_clear_discoverable },
- {}
- };
-
-@@ -2468,7 +2542,11 @@ static const struct bt_shell_menu scan_menu = {
- { "duplicate-data", "[on/off]", cmd_scan_filter_duplicate_data,
- "Set/Get duplicate data filter",
- NULL },
-- { "clear", "[uuids/rssi/pathloss/transport/duplicate-data]",
-+ { "discoverable", "[on/off]", cmd_scan_filter_discoverable,
-+ "Set/Get discoverable filter",
-+ NULL },
-+ { "clear",
-+ "[uuids/rssi/pathloss/transport/duplicate-data/discoverable]",
- cmd_scan_filter_clear,
- "Clears discovery filter.",
- filter_clear_generator },
-@@ -2549,6 +2627,8 @@ static const struct bt_shell_menu main_menu = {
- { "discoverable", "<on/off>", cmd_discoverable,
- "Set controller discoverable mode",
- NULL },
-+ { "discoverable-timeout", "[value]", cmd_discoverable_timeout,
-+ "Set discoverable timeout", NULL },
- { "agent", "<on/off/capability>", cmd_agent,
- "Enable/disable agent with given capability",
- capability_generator},
-diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt
-index d14d0ca..4791af2 100644
---- a/doc/adapter-api.txt
-+++ b/doc/adapter-api.txt
-@@ -113,6 +113,12 @@ Methods void StartDiscovery()
- generated for either ManufacturerData and
- ServiceData everytime they are discovered.
-
-+ bool Discoverable (Default: false)
-+
-+ Make adapter discoverable while discovering,
-+ if the adapter is already discoverable this
-+ setting this filter won't do anything.
-+
- When discovery filter is set, Device objects will be
- created as new devices with matching criteria are
- discovered regardless of they are connectable or
-diff --git a/src/adapter.c b/src/adapter.c
-index af340fd..822bd34 100644
---- a/src/adapter.c
-+++ b/src/adapter.c
-@@ -157,6 +157,7 @@ struct discovery_filter {
- int16_t rssi;
- GSList *uuids;
- bool duplicate;
-+ bool discoverable;
- };
-
- struct watch_client {
-@@ -196,6 +197,7 @@ struct btd_adapter {
- char *name; /* controller device name */
- char *short_name; /* controller short name */
- uint32_t supported_settings; /* controller supported settings */
-+ uint32_t pending_settings; /* pending controller settings */
- uint32_t current_settings; /* current controller settings */
-
- char *path; /* adapter object path */
-@@ -213,6 +215,7 @@ struct btd_adapter {
-
- bool discovering; /* discovering property state */
- bool filtered_discovery; /* we are doing filtered discovery */
-+ bool filtered_discoverable; /* we are doing filtered discovery */
- bool no_scan_restart_delay; /* when this flag is set, restart scan
- * without delay */
- uint8_t discovery_type; /* current active discovery type */
-@@ -509,8 +512,10 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings)
- changed_mask = adapter->current_settings ^ settings;
-
- adapter->current_settings = settings;
-+ adapter->pending_settings &= ~changed_mask;
-
- DBG("Changed settings: 0x%08x", changed_mask);
-+ DBG("Pending settings: 0x%08x", adapter->pending_settings);
-
- if (changed_mask & MGMT_SETTING_POWERED) {
- g_dbus_emit_property_changed(dbus_conn, adapter->path,
-@@ -596,10 +601,31 @@ static bool set_mode(struct btd_adapter *adapter, uint16_t opcode,
- uint8_t mode)
- {
- struct mgmt_mode cp;
-+ uint32_t setting = 0;
-
- memset(&cp, 0, sizeof(cp));
- cp.val = mode;
-
-+ switch (mode) {
-+ case MGMT_OP_SET_POWERED:
-+ setting = MGMT_SETTING_POWERED;
-+ break;
-+ case MGMT_OP_SET_CONNECTABLE:
-+ setting = MGMT_SETTING_CONNECTABLE;
-+ break;
-+ case MGMT_OP_SET_FAST_CONNECTABLE:
-+ setting = MGMT_SETTING_FAST_CONNECTABLE;
-+ break;
-+ case MGMT_OP_SET_DISCOVERABLE:
-+ setting = MGMT_SETTING_DISCOVERABLE;
-+ break;
-+ case MGMT_OP_SET_BONDABLE:
-+ setting = MGMT_SETTING_DISCOVERABLE;
-+ break;
-+ }
-+
-+ adapter->pending_settings |= setting;
-+
- DBG("sending set mode command for index %u", adapter->dev_id);
-
- if (mgmt_send(adapter->mgmt, opcode,
-@@ -1818,7 +1844,17 @@ static void discovery_free(void *user_data)
- g_free(client);
- }
-
--static void discovery_remove(struct watch_client *client)
-+static bool set_filtered_discoverable(struct btd_adapter *adapter, bool enable)
-+{
-+ if (adapter->filtered_discoverable == enable)
-+ return true;
-+
-+ adapter->filtered_discoverable = enable;
-+
-+ return set_discoverable(adapter, enable, 0);
-+}
-+
-+static void discovery_remove(struct watch_client *client, bool exit)
- {
- struct btd_adapter *adapter = client->adapter;
-
-@@ -1830,7 +1866,27 @@ static void discovery_remove(struct watch_client *client)
- adapter->discovery_list = g_slist_remove(adapter->discovery_list,
- client);
-
-- discovery_free(client);
-+ if (adapter->filtered_discoverable &&
-+ client->discovery_filter->discoverable) {
-+ GSList *l;
-+
-+ for (l = adapter->discovery_list; l; l = g_slist_next(l)) {
-+ struct watch_client *client = l->data;
-+
-+ if (client->discovery_filter->discoverable)
-+ break;
-+ }
-+
-+ /* Disable filtered discoverable if there are no clients */
-+ if (!l)
-+ set_filtered_discoverable(adapter, false);
-+ }
-+
-+ if (!exit && client->discovery_filter)
-+ adapter->set_filter_list = g_slist_prepend(
-+ adapter->set_filter_list, client);
-+ else
-+ discovery_free(client);
-
- /*
- * If there are other client discoveries in progress, then leave
-@@ -1859,8 +1915,11 @@ static void stop_discovery_complete(uint8_t status, uint16_t length,
- goto done;
- }
-
-- if (client->msg)
-+ if (client->msg) {
- g_dbus_send_reply(dbus_conn, client->msg, DBUS_TYPE_INVALID);
-+ dbus_message_unref(client->msg);
-+ client->msg = NULL;
-+ }
-
- adapter->discovery_type = 0x00;
- adapter->discovery_enable = 0x00;
-@@ -1873,7 +1932,7 @@ static void stop_discovery_complete(uint8_t status, uint16_t length,
- trigger_passive_scanning(adapter);
-
- done:
-- discovery_remove(client);
-+ discovery_remove(client, false);
- }
-
- static int compare_sender(gconstpointer a, gconstpointer b)
-@@ -2094,14 +2153,14 @@ static int update_discovery_filter(struct btd_adapter *adapter)
- return -EINPROGRESS;
- }
-
--static int discovery_stop(struct watch_client *client)
-+static int discovery_stop(struct watch_client *client, bool exit)
- {
- struct btd_adapter *adapter = client->adapter;
- struct mgmt_cp_stop_discovery cp;
-
- /* Check if there are more client discovering */
- if (g_slist_next(adapter->discovery_list)) {
-- discovery_remove(client);
-+ discovery_remove(client, exit);
- update_discovery_filter(adapter);
- return 0;
- }
-@@ -2111,7 +2170,7 @@ static int discovery_stop(struct watch_client *client)
- * and so it is enough to send out the signal and just return.
- */
- if (adapter->discovery_enable == 0x00) {
-- discovery_remove(client);
-+ discovery_remove(client, exit);
- adapter->discovering = false;
- g_dbus_emit_property_changed(dbus_conn, adapter->path,
- ADAPTER_INTERFACE, "Discovering");
-@@ -2136,7 +2195,7 @@ static void discovery_disconnect(DBusConnection *conn, void *user_data)
-
- DBG("owner %s", client->owner);
-
-- discovery_stop(client);
-+ discovery_stop(client, true);
- }
-
- /*
-@@ -2200,6 +2259,15 @@ static DBusMessage *start_discovery(DBusConnection *conn,
- adapter->set_filter_list, client);
- adapter->discovery_list = g_slist_prepend(
- adapter->discovery_list, client);
-+
-+ /* Reset discoverable filter if already set */
-+ if (adapter->current_settings & MGMT_OP_SET_DISCOVERABLE)
-+ goto done;
-+
-+ /* Set discoverable if filter requires and it*/
-+ if (client->discovery_filter->discoverable)
-+ set_filtered_discoverable(adapter, true);
-+
- goto done;
- }
-
-@@ -2324,6 +2392,17 @@ static bool parse_duplicate_data(DBusMessageIter *value,
- return true;
- }
-
-+static bool parse_discoverable(DBusMessageIter *value,
-+ struct discovery_filter *filter)
-+{
-+ if (dbus_message_iter_get_arg_type(value) != DBUS_TYPE_BOOLEAN)
-+ return false;
-+
-+ dbus_message_iter_get_basic(value, &filter->discoverable);
-+
-+ return true;
-+}
-+
- struct filter_parser {
- const char *name;
- bool (*func)(DBusMessageIter *iter, struct discovery_filter *filter);
-@@ -2333,6 +2412,7 @@ struct filter_parser {
- { "Pathloss", parse_pathloss },
- { "Transport", parse_transport },
- { "DuplicateData", parse_duplicate_data },
-+ { "Discoverable", parse_discoverable },
- { }
- };
-
-@@ -2372,6 +2452,7 @@ static bool parse_discovery_filter_dict(struct btd_adapter *adapter,
- (*filter)->rssi = DISTANCE_VAL_INVALID;
- (*filter)->type = get_scan_type(adapter);
- (*filter)->duplicate = false;
-+ (*filter)->discoverable = false;
-
- dbus_message_iter_init(msg, &iter);
- if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY ||
-@@ -2417,8 +2498,10 @@ static bool parse_discovery_filter_dict(struct btd_adapter *adapter,
- goto invalid_args;
-
- DBG("filtered discovery params: transport: %d rssi: %d pathloss: %d "
-- " duplicate data: %s ", (*filter)->type, (*filter)->rssi,
-- (*filter)->pathloss, (*filter)->duplicate ? "true" : "false");
-+ " duplicate data: %s discoverable %s", (*filter)->type,
-+ (*filter)->rssi, (*filter)->pathloss,
-+ (*filter)->duplicate ? "true" : "false",
-+ (*filter)->discoverable ? "true" : "false");
-
- return true;
-
-@@ -2510,7 +2593,7 @@ static DBusMessage *stop_discovery(DBusConnection *conn,
- if (client->msg)
- return btd_error_busy(msg);
-
-- err = discovery_stop(client);
-+ err = discovery_stop(client, false);
- switch (err) {
- case 0:
- return dbus_message_new_method_return(msg);
-@@ -2739,13 +2822,15 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting,
- else
- current_enable = FALSE;
-
-- if (enable == current_enable) {
-+ if (enable == current_enable || adapter->pending_settings & setting) {
- g_dbus_pending_property_success(id);
- return;
- }
-
- mode = (enable == TRUE) ? 0x01 : 0x00;
-
-+ adapter->pending_settings |= setting;
-+
- switch (setting) {
- case MGMT_SETTING_POWERED:
- opcode = MGMT_OP_SET_POWERED;
-@@ -2798,7 +2883,7 @@ static void property_set_mode(struct btd_adapter *adapter, uint32_t setting,
- data->id = id;
-
- if (mgmt_send(adapter->mgmt, opcode, adapter->dev_id, len, param,
-- property_set_mode_complete, data, g_free) > 0)
-+ property_set_mode_complete, data, g_free) > 0)
- return;
-
- g_free(data);
-@@ -2875,6 +2960,7 @@ static void property_set_discoverable_timeout(
- GDBusPendingPropertySet id, void *user_data)
- {
- struct btd_adapter *adapter = user_data;
-+ bool enabled;
- dbus_uint32_t value;
-
- dbus_message_iter_get_basic(iter, &value);
-@@ -2888,8 +2974,19 @@ static void property_set_discoverable_timeout(
- g_dbus_emit_property_changed(dbus_conn, adapter->path,
- ADAPTER_INTERFACE, "DiscoverableTimeout");
-
-+ if (adapter->pending_settings & MGMT_SETTING_DISCOVERABLE) {
-+ if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE)
-+ enabled = false;
-+ else
-+ enabled = true;
-+ } else {
-+ if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE)
-+ enabled = true;
-+ else
-+ enabled = false;
-+ }
-
-- if (adapter->current_settings & MGMT_SETTING_DISCOVERABLE)
-+ if (enabled)
- set_discoverable(adapter, 0x01, adapter->discoverable_timeout);
- }
-
---
-2.7.4
-
diff --git a/meta/recipes-connectivity/bluez5/bluez5/gcc9-fixes.patch b/meta/recipes-connectivity/bluez5/bluez5/gcc9-fixes.patch
deleted file mode 100644
index ca678e601e..0000000000
--- a/meta/recipes-connectivity/bluez5/bluez5/gcc9-fixes.patch
+++ /dev/null
@@ -1,301 +0,0 @@
-Backported commit from upstream master branch (post 5.50 release), which
-resolves assertion failures in several unit tests.
-
-https://git.kernel.org/pub/scm/bluetooth/bluez.git/patch/?id=0be5246170
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/unit/test-avctp.c b/unit/test-avctp.c
-index 3bc3569..24de663 100644
---- a/unit/test-avctp.c
-+++ b/unit/test-avctp.c
-@@ -43,7 +43,7 @@
-
- struct test_pdu {
- bool valid;
-- const uint8_t *data;
-+ uint8_t *data;
- size_t size;
- };
-
-@@ -66,7 +66,7 @@ struct context {
- #define raw_pdu(args...) \
- { \
- .valid = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -91,6 +91,11 @@ static void test_debug(const char *str, void *user_data)
- static void test_free(gconstpointer user_data)
- {
- const struct test_data *data = user_data;
-+ struct test_pdu *pdu;
-+ int i;
-+
-+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
-+ g_free(pdu->data);
-
- g_free(data->test_name);
- g_free(data->pdu_list);
-diff --git a/unit/test-avdtp.c b/unit/test-avdtp.c
-index dd8aed7..e2c951a 100644
---- a/unit/test-avdtp.c
-+++ b/unit/test-avdtp.c
-@@ -47,7 +47,7 @@
- struct test_pdu {
- bool valid;
- bool fragmented;
-- const uint8_t *data;
-+ uint8_t *data;
- size_t size;
- };
-
-@@ -61,7 +61,7 @@ struct test_data {
- #define raw_pdu(args...) \
- { \
- .valid = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -69,7 +69,7 @@ struct test_data {
- { \
- .valid = true, \
- .fragmented = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -81,7 +81,7 @@ struct test_data {
- static struct test_data data; \
- data.test_name = g_strdup(name); \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
-- tester_add(name, &data, NULL, function, NULL); \
-+ tester_add(name, &data, NULL, function, NULL); \
- } while (0)
-
- struct context {
-@@ -109,6 +109,11 @@ static void test_debug(const char *str, void *user_data)
- static void test_free(gconstpointer user_data)
- {
- const struct test_data *data = user_data;
-+ struct test_pdu *pdu;
-+ int i;
-+
-+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
-+ g_free(pdu->data);
-
- g_free(data->test_name);
- g_free(data->pdu_list);
-diff --git a/unit/test-avrcp.c b/unit/test-avrcp.c
-index 01307e6..f1aa353 100644
---- a/unit/test-avrcp.c
-+++ b/unit/test-avrcp.c
-@@ -49,7 +49,7 @@ struct test_pdu {
- bool fragmented;
- bool continuing;
- bool browse;
-- const uint8_t *data;
-+ uint8_t *data;
- size_t size;
- };
-
-@@ -74,7 +74,7 @@ struct context {
- #define raw_pdu(args...) \
- { \
- .valid = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -82,7 +82,7 @@ struct context {
- { \
- .valid = true, \
- .browse = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -90,7 +90,7 @@ struct context {
- { \
- .valid = true, \
- .fragmented = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -98,7 +98,7 @@ struct context {
- { \
- .valid = true, \
- .continuing = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -123,6 +123,11 @@ static void test_debug(const char *str, void *user_data)
- static void test_free(gconstpointer user_data)
- {
- const struct test_data *data = user_data;
-+ struct test_pdu *pdu;
-+ int i;
-+
-+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
-+ g_free(pdu->data);
-
- g_free(data->test_name);
- g_free(data->pdu_list);
-diff --git a/unit/test-gatt.c b/unit/test-gatt.c
-index c7e28f8..d49f7a0 100644
---- a/unit/test-gatt.c
-+++ b/unit/test-gatt.c
-@@ -48,7 +48,7 @@
-
- struct test_pdu {
- bool valid;
-- const uint8_t *data;
-+ uint8_t *data;
- size_t size;
- };
-
-@@ -86,7 +86,7 @@ struct context {
- #define raw_pdu(args...) \
- { \
- .valid = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -306,6 +306,11 @@ static bt_uuid_t uuid_char_128 = {
- static void test_free(gconstpointer user_data)
- {
- const struct test_data *data = user_data;
-+ struct test_pdu *pdu;
-+ int i;
-+
-+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
-+ g_free(pdu->data);
-
- g_free(data->test_name);
- g_free(data->pdu_list);
-@@ -1911,6 +1916,8 @@ static void test_server(gconstpointer data)
- g_assert_cmpint(len, ==, pdu.size);
-
- util_hexdump('<', pdu.data, len, test_debug, "GATT: ");
-+
-+ g_free(pdu.data);
- }
-
- static void test_search_primary(gconstpointer data)
-diff --git a/unit/test-hfp.c b/unit/test-hfp.c
-index f2b9622..890eee6 100644
---- a/unit/test-hfp.c
-+++ b/unit/test-hfp.c
-@@ -43,7 +43,7 @@ struct context {
-
- struct test_pdu {
- bool valid;
-- const uint8_t *data;
-+ uint8_t *data;
- size_t size;
- enum hfp_gw_cmd_type type;
- bool fragmented;
-@@ -63,7 +63,7 @@ struct test_data {
- #define raw_pdu(args...) \
- { \
- .valid = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- }
-
-@@ -75,7 +75,7 @@ struct test_data {
- #define type_pdu(cmd_type, args...) \
- { \
- .valid = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- .type = cmd_type, \
- }
-@@ -83,7 +83,7 @@ struct test_data {
- #define frg_pdu(args...) \
- { \
- .valid = true, \
-- .data = data(args), \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
- .size = sizeof(data(args)), \
- .fragmented = true, \
- }
-@@ -119,6 +119,11 @@ struct test_data {
- static void test_free(gconstpointer user_data)
- {
- const struct test_data *data = user_data;
-+ struct test_pdu *pdu;
-+ int i;
-+
-+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
-+ g_free(pdu->data);
-
- g_free(data->test_name);
- g_free(data->pdu_list);
-diff --git a/unit/test-hog.c b/unit/test-hog.c
-index d117968..25bdb42 100644
---- a/unit/test-hog.c
-+++ b/unit/test-hog.c
-@@ -68,11 +68,11 @@ struct context {
-
- #define data(args...) ((const unsigned char[]) { args })
-
--#define raw_pdu(args...) \
--{ \
-- .valid = true, \
-- .data = data(args), \
-- .size = sizeof(data(args)),\
-+#define raw_pdu(args...) \
-+{ \
-+ .valid = true, \
-+ .data = g_memdup(data(args), sizeof(data(args))), \
-+ .size = sizeof(data(args)), \
- }
-
- #define false_pdu() \
-diff --git a/unit/test-sdp.c b/unit/test-sdp.c
-index ac921a9..c71ee1f 100644
---- a/unit/test-sdp.c
-+++ b/unit/test-sdp.c
-@@ -59,14 +59,14 @@ struct test_data {
- #define raw_pdu(args...) \
- { \
- .valid = true, \
-- .raw_data = raw_data(args), \
-+ .raw_data = g_memdup(raw_data(args), sizeof(raw_data(args))), \
- .raw_size = sizeof(raw_data(args)), \
- }
-
- #define raw_pdu_cont(cont, args...) \
- { \
- .valid = true, \
-- .raw_data = raw_data(args), \
-+ .raw_data = g_memdup(raw_data(args), sizeof(raw_data(args))), \
- .raw_size = sizeof(raw_data(args)), \
- .cont_len = cont, \
- }
-@@ -103,7 +103,7 @@ struct test_data_de {
- #define define_test_de_attr(name, input, exp) \
- do { \
- static struct test_data_de data; \
-- data.input_data = input; \
-+ data.input_data = g_memdup(input, sizeof(input)); \
- data.input_size = sizeof(input); \
- data.expected = exp; \
- tester_add("/sdp/DE/ATTR/" name, &data, NULL, \
diff --git a/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch b/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
deleted file mode 100644
index 3ee79d7047..0000000000
--- a/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From ed55b49a226ca3909f52416be2ae5ce1c5ca2cb2 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Fri, 22 Apr 2016 15:40:37 +0100
-Subject: [PATCH] Makefile.obexd: add missing mkdir in builtin.h generation
-
-In parallel out-of-tree builds it's possible that obexd/src/builtin.h is
-generated before the target directory has been implicitly created. Solve this by
-creating the directory before writing into it.
-
-Upstream-Status: Submitted
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- Makefile.obexd | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Makefile.obexd b/Makefile.obexd
-index 2e33cbc..c8286f0 100644
---- a/Makefile.obexd
-+++ b/Makefile.obexd
-@@ -105,2 +105,3 @@ obexd/src/plugin.$(OBJEXT): obexd/src/builtin.h
- obexd/src/builtin.h: obexd/src/genbuiltin $(obexd_builtin_sources)
-+ $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(srcdir)/obexd/src/genbuiltin $(obexd_builtin_modules) > $@
---
-2.8.0.rc3
-
diff --git a/meta/recipes-connectivity/bluez5/bluez5/run-ptest b/meta/recipes-connectivity/bluez5/bluez5/run-ptest
index 21df00c327..0335e68e48 100644
--- a/meta/recipes-connectivity/bluez5/bluez5/run-ptest
+++ b/meta/recipes-connectivity/bluez5/bluez5/run-ptest
@@ -6,7 +6,7 @@ failed=0
all=0
for f in test-*; do
- "./$f"
+ "./$f" -q
case "$?" in
0)
echo "PASS: $f"
diff --git a/meta/recipes-connectivity/bluez5/bluez5_5.50.bb b/meta/recipes-connectivity/bluez5/bluez5_5.54.bb
index 4e443e5fb0..260eee1402 100644
--- a/meta/recipes-connectivity/bluez5/bluez5_5.50.bb
+++ b/meta/recipes-connectivity/bluez5/bluez5_5.54.bb
@@ -1,7 +1,7 @@
require bluez5.inc
-SRC_URI[md5sum] = "8e35c67c81a55d3ad4c9f22280dae178"
-SRC_URI[sha256sum] = "5ffcaae18bbb6155f1591be8c24898dc12f062075a40b538b745bfd477481911"
+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 a56bd3751f..af986c4eab 100644
--- a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
+++ b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
@@ -13,14 +13,14 @@ 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 \
"
S = "${WORKDIR}/git"
-inherit autotools-brokensep gtk-icon-cache pkgconfig distro_features_check
+inherit autotools-brokensep gtk-icon-cache pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
RDEPENDS_${PN} = "connman"
diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc
index ee00479926..776bbfbff2 100644
--- a/meta/recipes-connectivity/connman/connman.inc
+++ b/meta/recipes-connectivity/connman/connman.inc
@@ -15,9 +15,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
inherit autotools pkgconfig systemd update-rc.d update-alternatives
-DEPENDS = "dbus glib-2.0 ppp readline"
-
-INC_PR = "r20"
+DEPENDS = "dbus glib-2.0 ppp"
EXTRA_OECONF += "\
ac_cv_path_WPASUPPLICANT=${sbindir}/wpa_supplicant \
@@ -27,13 +25,11 @@ EXTRA_OECONF += "\
--enable-ethernet \
--enable-tools \
--disable-polkit \
- --enable-client \
"
-PACKAGECONFIG ??= "wispr \
+PACKAGECONFIG ??= "wispr iptables client\
${@bb.utils.filter('DISTRO_FEATURES', '3g systemd wifi', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
- iptables \
"
# If you want ConnMan to support VPN, add following statement into
@@ -51,15 +47,17 @@ PACKAGECONFIG[l2tp] = "--enable-l2tp --with-l2tp=${sbindir}/xl2tpd,--disable-l2t
PACKAGECONFIG[pptp] = "--enable-pptp --with-pptp=${sbindir}/pptp,--disable-pptp,,pptp-linux"
# WISPr support for logging into hotspots, requires TLS
PACKAGECONFIG[wispr] = "--enable-wispr,--disable-wispr,gnutls,"
-PACKAGECONFIG[nftables] = "--with-firewall=nftables ,,libmnl libnftnl,,kernel-module-nf-tables-ipv4 kernel-module-nft-chain-nat-ipv4 kernel-module-nft-chain-route-ipv4 kernel-module-nft-meta kernel-module-nft-masq-ipv4 kernel-module-nft-nat"
+PACKAGECONFIG[nftables] = "--with-firewall=nftables ,,libmnl libnftnl,,kernel-module-nf-tables kernel-module-nft-chain-nat-ipv4 kernel-module-nft-chain-route-ipv4 kernel-module-nft-masq-ipv4 kernel-module-nft-nat"
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 ."
python __anonymous () {
- systemd_packages = "${PN}"
+ systemd_packages = "${PN} ${PN}-wait-online"
pkgconfig = d.getVar('PACKAGECONFIG')
if ('openvpn' or 'vpnc' or 'l2tp' or 'pptp') in pkgconfig.split():
systemd_packages += " ${PN}-vpn"
@@ -87,7 +85,6 @@ do_install_append() {
if [ -e ${B}/tools/wispr ]; then
install -m 0755 ${B}/tools/wispr ${D}${bindir}
fi
- install -m 0755 ${B}/client/connmanctl ${D}${bindir}
# We don't need to package an empty directory
rmdir --ignore-fail-on-non-empty ${D}${libdir}/connman/scripts
@@ -196,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 18bbaf8841..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"
-
-TARGET_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-Fix-a-NSUPDATE-compiling-issue.patch b/meta/recipes-connectivity/dhcp/dhcp/0001-Fix-a-NSUPDATE-compiling-issue.patch
deleted file mode 100644
index f12a112fcf..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0001-Fix-a-NSUPDATE-compiling-issue.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From a59cb98a473caa2afd64d7ae368480b6e9f91b3f Mon Sep 17 00:00:00 2001
-From: Ming Liu <liu.ming50@gmail.com>
-Date: Tue, 14 May 2019 11:07:15 +0200
-Subject: [PATCH] Fix a NSUPDATE compiling issue
-
-Upstream-Status: Pending [Patch sent to: https://gitlab.isc.org/isc-projects/dhcp/issues/16]
-
-A following error was observed when NSUPDATE is not defined:
-| omapip/isclib.c: In function 'dns_client_init':
-| omapip/isclib.c:356:18: error: 'dhcp_context_t {aka struct dhcp_context}' has no member named 'dnsclient'
-| if (dhcp_gbl_ctx.dnsclient == NULL) {
-| ^
-| omapip/isclib.c:363:24: error: 'dhcp_context_t {aka struct dhcp_context}' has no member named 'dnsclient'
-| &dhcp_gbl_ctx.dnsclient,
-| ^
-| omapip/isclib.c:364:24: error: 'dhcp_context_t {aka struct dhcp_context}' has no member named 'use_local4'
-| (dhcp_gbl_ctx.use_local4 ?
-| ^
-| omapip/isclib.c:365:25: error: 'dhcp_context_t {aka struct dhcp_context}' has no member named 'local4_sockaddr'
-| &dhcp_gbl_ctx.local4_sockaddr
-| ^
-| omapip/isclib.c:367:24: error: 'dhcp_context_t {aka struct dhcp_context}' has no member named 'use_local6'
-| (dhcp_gbl_ctx.use_local6 ?
-| ^
-| omapip/isclib.c:368:25: error: 'dhcp_context_t {aka struct dhcp_context}' has no member named 'local6_sockaddr'
-| &dhcp_gbl_ctx.local6_sockaddr
-
-Fix it by adding NSUPDATE conditional checking.
-
-Signed-off-by: Ming Liu <liu.ming50@gmail.com>
----
- includes/omapip/isclib.h | 2 ++
- omapip/isclib.c | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/includes/omapip/isclib.h b/includes/omapip/isclib.h
-index 538b927..6c20584 100644
---- a/includes/omapip/isclib.h
-+++ b/includes/omapip/isclib.h
-@@ -141,6 +141,8 @@ void isclib_cleanup(void);
- void dhcp_signal_handler(int signal);
- extern int shutdown_signal;
-
-+#if defined (NSUPDATE)
- isc_result_t dns_client_init();
-+#endif
-
- #endif /* ISCLIB_H */
-diff --git a/omapip/isclib.c b/omapip/isclib.c
-index db3b895..ce4b4a1 100644
---- a/omapip/isclib.c
-+++ b/omapip/isclib.c
-@@ -351,6 +351,7 @@ void dhcp_signal_handler(int signal) {
- }
- }
-
-+#if defined (NSUPDATE)
- isc_result_t dns_client_init() {
- isc_result_t result;
- if (dhcp_gbl_ctx.dnsclient == NULL) {
-@@ -387,3 +388,4 @@ isc_result_t dns_client_init() {
-
- return ISC_R_SUCCESS;
- }
-+#endif
---
-2.7.4
-
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-master-Added-includes-of-new-BIND9-compatibility-hea.patch b/meta/recipes-connectivity/dhcp/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-hea.patch
deleted file mode 100644
index 1bc1422475..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-hea.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 8194daabfd590f17825f0c61e9534bee5c99cc86 Mon Sep 17 00:00:00 2001
-From: Thomas Markwalder <tmark@isc.org>
-Date: Fri, 14 Sep 2018 13:41:41 -0400
-Subject: [master] Added includes of new BIND9 compatibility headers
-
- Merges in rt48072.
-
-Upstream-Status: Backport
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
-
-diff --git a/includes/omapip/isclib.h b/includes/omapip/isclib.h
-index 75a87ff6..538b927f 100644
---- a/includes/omapip/isclib.h
-+++ b/includes/omapip/isclib.h
-@@ -48,6 +48,9 @@
- #include <string.h>
- #include <netdb.h>
-
-+#include <isc/boolean.h>
-+#include <isc/int.h>
-+
- #include <isc/buffer.h>
- #include <isc/lex.h>
- #include <isc/lib.h>
-diff --git a/includes/omapip/result.h b/includes/omapip/result.h
-index 91243e1b..860298f6 100644
---- a/includes/omapip/result.h
-+++ b/includes/omapip/result.h
-@@ -26,6 +26,7 @@
- #ifndef DHCP_RESULT_H
- #define DHCP_RESULT_H 1
-
-+#include <isc/boolean.h>
- #include <isc/lang.h>
- #include <isc/resultclass.h>
- #include <isc/types.h>
-diff --git a/server/dhcpv6.c b/server/dhcpv6.c
-index a7110f98..cde4f617 100644
---- a/server/dhcpv6.c
-+++ b/server/dhcpv6.c
-@@ -1034,7 +1034,8 @@ void check_pool6_threshold(struct reply_state *reply,
- shared_name,
- inet_ntop(AF_INET6, &lease->addr,
- tmp_addr, sizeof(tmp_addr)),
-- used, count);
-+ (long long unsigned)(used),
-+ (long long unsigned)(count));
- }
- return;
- }
-@@ -1066,7 +1067,8 @@ void check_pool6_threshold(struct reply_state *reply,
- "address: %s; high threshold %d%% %llu/%llu.",
- shared_name,
- inet_ntop(AF_INET6, &lease->addr, tmp_addr, sizeof(tmp_addr)),
-- poolhigh, used, count);
-+ poolhigh, (long long unsigned)(used),
-+ (long long unsigned)(count));
-
- /* handle the low threshold now, if we don't
- * have one we default to 0. */
-@@ -1436,12 +1438,15 @@ pick_v6_address(struct reply_state *reply)
- log_debug("Unable to pick client address: "
- "no addresses available - shared network %s: "
- " 2^64-1 < total, %llu active, %llu abandoned",
-- shared_name, active - abandoned, abandoned);
-+ shared_name, (long long unsigned)(active - abandoned),
-+ (long long unsigned)(abandoned));
- } else {
- log_debug("Unable to pick client address: "
- "no addresses available - shared network %s: "
- "%llu total, %llu active, %llu abandoned",
-- shared_name, total, active - abandoned, abandoned);
-+ shared_name, (long long unsigned)(total),
-+ (long long unsigned)(active - abandoned),
-+ (long long unsigned)(abandoned));
- }
-
- return ISC_R_NORESOURCES;
-
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 b71c93dd6d..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch
+++ /dev/null
@@ -1,93 +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,4 +1,4 @@
--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.1.bb b/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb
deleted file mode 100644
index 275961a603..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb
+++ /dev/null
@@ -1,22 +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-master-Added-includes-of-new-BIND9-compatibility-hea.patch \
- file://0001-Fix-a-NSUPDATE-compiling-issue.patch \
-"
-
-SRC_URI[md5sum] = "18c7f4dcbb0a63df25098216d47b1ede"
-SRC_URI[sha256sum] = "2a22508922ab367b4af4664a0472dc220cc9603482cf3c16d9aff14f3a76b608"
-
-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.inc b/meta/recipes-connectivity/iproute2/iproute2.inc
index d72871767f..403d264308 100644
--- a/meta/recipes-connectivity/iproute2/iproute2.inc
+++ b/meta/recipes-connectivity/iproute2/iproute2.inc
@@ -9,17 +9,25 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
file://ip/ip.c;beginline=3;endline=8;md5=689d691d0410a4b64d3899f8d6e31817"
-DEPENDS = "flex-native bison-native iptables elfutils libcap"
+DEPENDS = "flex-native bison-native iptables libcap"
inherit update-alternatives bash-completion pkgconfig
CLEANBROKEN = "1"
-PACKAGECONFIG ??= "tipc"
+PACKAGECONFIG ??= "tipc elf devlink"
PACKAGECONFIG[tipc] = ",,libmnl,"
+PACKAGECONFIG[elf] = ",,elfutils,"
+PACKAGECONFIG[devlink] = ",,libmnl,"
-EXTRA_OEMAKE = "CC='${CC}' KERNEL_INCLUDE=${STAGING_INCDIR} DOCDIR=${docdir}/iproute2 SUBDIRS='lib tc ip bridge misc genl \
- ${@bb.utils.contains('PACKAGECONFIG', 'tipc', 'tipc', '', d)}' SBINDIR='${base_sbindir}' LIBDIR='${libdir}'"
+EXTRA_OEMAKE = "\
+ CC='${CC}' \
+ KERNEL_INCLUDE=${STAGING_INCDIR} \
+ DOCDIR=${docdir}/iproute2 \
+ SUBDIRS='lib tc ip bridge misc genl ${@bb.utils.filter('PACKAGECONFIG', 'devlink tipc', d)}' \
+ SBINDIR='${base_sbindir}' \
+ LIBDIR='${libdir}' \
+"
do_configure_append () {
sh configure ${STAGING_INCDIR}
@@ -38,14 +46,18 @@ do_install () {
# The .so files in iproute2-tc are modules, not traditional libraries
INSANE_SKIP_${PN}-tc = "dev-so"
-PACKAGES =+ "${PN}-tc \
- ${PN}-lnstat \
- ${PN}-ifstat \
- ${PN}-genl \
- ${PN}-rtacct \
- ${PN}-nstat \
- ${PN}-ss \
- ${@bb.utils.contains('PACKAGECONFIG', 'tipc', '${PN}-tipc', '', d)}"
+PACKAGES =+ "\
+ ${PN}-devlink \
+ ${PN}-genl \
+ ${PN}-ifstat \
+ ${PN}-lnstat \
+ ${PN}-nstat \
+ ${PN}-rtacct \
+ ${PN}-ss \
+ ${PN}-tc \
+ ${PN}-tipc \
+"
+
FILES_${PN}-tc = "${base_sbindir}/tc* \
${libdir}/tc/*.so"
FILES_${PN}-lnstat = "${base_sbindir}/lnstat \
@@ -57,6 +69,7 @@ FILES_${PN}-rtacct = "${base_sbindir}/rtacct"
FILES_${PN}-nstat = "${base_sbindir}/nstat"
FILES_${PN}-ss = "${base_sbindir}/ss"
FILES_${PN}-tipc = "${base_sbindir}/tipc"
+FILES_${PN}-devlink = "${base_sbindir}/devlink"
ALTERNATIVE_${PN} = "ip"
ALTERNATIVE_TARGET[ip] = "${base_sbindir}/ip.${BPN}"
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.2.0.bb b/meta/recipes-connectivity/iproute2/iproute2_5.8.0.bb
index 1728cd69a1..3a590f9122 100644
--- a/meta/recipes-connectivity/iproute2/iproute2_5.2.0.bb
+++ b/meta/recipes-connectivity/iproute2/iproute2_5.8.0.bb
@@ -2,10 +2,10 @@ 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] = "0cb2736e7bc2f56254a363d3d23703b7"
-SRC_URI[sha256sum] = "a5b95dec26353fc71dba9bb403e9343fad2a06bd69fb154a22a2aa2914f74da8"
+SRC_URI[sha256sum] = "cfcd1f890290f8c8afcc91d9444ad929b9252c16f9ab3f286c50dd3c59dc646e"
# CFLAGS are computed in Makefile and reference CCOPTS
#
diff --git a/meta/recipes-connectivity/iw/iw/separate-objdir.patch b/meta/recipes-connectivity/iw/iw/separate-objdir.patch
index eb01a5a14e..179fd90124 100644
--- a/meta/recipes-connectivity/iw/iw/separate-objdir.patch
+++ b/meta/recipes-connectivity/iw/iw/separate-objdir.patch
@@ -1,3 +1,6 @@
+From ff9f0a631c99fb6e2677c02bf572a5e69c70f5cf Mon Sep 17 00:00:00 2001
+From: Changhyeok Bae <changhyeok.bae@gmail.com>
+Date: Mon, 27 Jan 2020 22:48:03 +0100
Subject: [PATCH] Support separation of SRCDIR and OBJDIR
Typical use of VPATH to locate the sources.
@@ -11,12 +14,12 @@ Signed-off-by: Maxin B. John <maxin.john@intel.com>
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
-index 33aaf6a..9030796 100644
+index 90f2251..714cdb9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,9 @@
MAKEFLAGS += --no-print-directory
-
+
+SRCDIR ?= $(dir $(lastword $(MAKEFILE_LIST)))
+OBJDIR ?= $(PWD)
+VPATH = $(SRCDIR)
@@ -24,19 +27,24 @@ index 33aaf6a..9030796 100644
PREFIX ?= /usr
SBINDIR ?= $(PREFIX)/sbin
MANDIR ?= $(PREFIX)/share/man
-@@ -103,11 +107,11 @@ VERSION_OBJS := $(filter-out version.o, $(OBJS))
+@@ -92,7 +96,7 @@ all: $(ALL)
version.c: version.sh $(patsubst %.o,%.c,$(VERSION_OBJS)) nl80211.h iw.h Makefile \
$(wildcard .git/index .git/refs/tags)
@$(NQ) ' GEN ' $@
- $(Q)./version.sh $@
+ $(Q)cd $(SRCDIR) && ./version.sh $(OBJDIR)/$@
-
- %.o: %.c iw.h nl80211.h
+
+ nl80211-commands.inc: nl80211.h
+ @$(NQ) ' GEN ' $@
+@@ -100,7 +104,7 @@ nl80211-commands.inc: nl80211.h
+
+ %.o: %.c iw.h nl80211.h nl80211-commands.inc
@$(NQ) ' CC ' $@
- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+ $(Q)$(CC) -I$(SRCDIR) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
-
+
ifeq ($(IW_ANDROID_BUILD),)
iw: $(OBJS)
---
-2.20.1 (Apple Git-117)
+--
+2.23.0
+
diff --git a/meta/recipes-connectivity/iw/iw_5.3.bb b/meta/recipes-connectivity/iw/iw_5.8.bb
index f7f13f5a30..97ca66d66f 100644
--- a/meta/recipes-connectivity/iw/iw_5.3.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] = "6d4d1c0ee34f3a7bda0e6aafcd7aaf31"
-SRC_URI[sha256sum] = "175abbfce86348c0b70e778c13a94c0bfc9abc7a506d2bd608261583aeedf64a"
+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/libnss-mdns/libnss-mdns_0.10.bb b/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb
index 953505971a..5e4460045b 100644
--- a/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb
+++ b/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb
@@ -1,32 +1,24 @@
SUMMARY = "Name Service Switch module for Multicast DNS (zeroconf) name resolution"
-HOMEPAGE = "http://0pointer.de/lennart/projects/nss-mdns/"
+HOMEPAGE = "https://github.com/lathiat/nss-mdns"
SECTION = "libs"
LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
DEPENDS = "avahi"
-PR = "r7"
-SRC_URI = "http://0pointer.de/lennart/projects/nss-mdns/nss-mdns-${PV}.tar.gz \
+SRC_URI = "git://github.com/lathiat/nss-mdns \
"
-SRC_URI[md5sum] = "03938f17646efbb50aa70ba5f99f51d7"
-SRC_URI[sha256sum] = "1e683c2e7c3921814706d62fbbd3e9cbf493a75fa00255e0e715508d8134fa6d"
+SRCREV = "41c9c5e78f287ed4b41ac438c1873fa71bfa70ae"
-S = "${WORKDIR}/nss-mdns-${PV}"
+S = "${WORKDIR}/git"
-localstatedir = "/"
-
-inherit autotools
+inherit autotools pkgconfig
COMPATIBLE_HOST_libc-musl = 'null'
-EXTRA_OECONF = "--libdir=${base_libdir} --disable-lynx --enable-avahi"
-
-# suppress warning, but don't bother with autonamer
-LEAD_SONAME = "libnss_mdns.so"
-DEBIANNAME_${PN} = "libnss-mdns"
+EXTRA_OECONF = "--libdir=${base_libdir}"
RDEPENDS_${PN} = "avahi-daemon"
diff --git a/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb b/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb
index 318e2d769a..35bb5650b3 100644
--- a/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb
+++ b/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb
@@ -5,7 +5,7 @@ security monitoring and network debugging."
HOMEPAGE = "http://www.tcpdump.org/"
BUGTRACKER = "http://sourceforge.net/tracker/?group_id=53067&atid=469577"
SECTION = "libs/network"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453 \
file://pcap.h;beginline=1;endline=32;md5=39af3510e011f34b8872f120b1dc31d2"
DEPENDS = "flex-native bison-native"
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-Don-t-build-tools-with-CC_FOR_BUILD.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Don-t-build-tools-with-CC_FOR_BUILD.patch
deleted file mode 100644
index 23bc3eaf72..0000000000
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Don-t-build-tools-with-CC_FOR_BUILD.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 79019d976584c598f8d0a9d8de43c989946f974b Mon Sep 17 00:00:00 2001
-From: Pascal Bach <pascal.bach@siemens.com>
-Date: Wed, 13 Feb 2019 09:28:07 +0100
-Subject: [PATCH] Don't build tools with CC_FOR_BUILD
-
-The tools are intended for the target not for the host.
-
-Upstream-Status: Pending
-
-Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
----
- tools/locktest/Makefile.am | 1 -
- tools/rpcgen/Makefile.am | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/tools/locktest/Makefile.am b/tools/locktest/Makefile.am
-index 3156815..87d0bac 100644
---- a/tools/locktest/Makefile.am
-+++ b/tools/locktest/Makefile.am
-@@ -1,6 +1,5 @@
- ## Process this file with automake to produce Makefile.in
-
--CC=$(CC_FOR_BUILD)
- LIBTOOL = @LIBTOOL@ --tag=CC
-
- noinst_PROGRAMS = testlk
-diff --git a/tools/rpcgen/Makefile.am b/tools/rpcgen/Makefile.am
-index 8a9ec89..3e092c9 100644
---- a/tools/rpcgen/Makefile.am
-+++ b/tools/rpcgen/Makefile.am
-@@ -1,6 +1,5 @@
- ## Process this file with automake to produce Makefile.in
-
--CC=$(CC_FOR_BUILD)
- LIBTOOL = @LIBTOOL@ --tag=CC
-
- noinst_PROGRAMS = rpcgen
---
-2.11.0
-
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-include-order-between-config.h-and-stat.h.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-include-order-between-config.h-and-stat.h.patch
deleted file mode 100644
index 7b0f93535f..0000000000
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-include-order-between-config.h-and-stat.h.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-From 2fbc62e2a13fc22b6ae4910e295a2c10fb790486 Mon Sep 17 00:00:00 2001
-From: Zoltan Karcagi <zkr7432@gmail.com>
-Date: Mon, 12 Aug 2019 13:27:16 -0400
-Subject: [PATCH] Fix include order between config.h and stat.h
-
-At least on Arch linux ARM, the definition of struct stat in stat.h depends
-on __USE_FILE_OFFSET64. This symbol comes from config.h when defined,
-therefore config.h must always be included before stat.h. Fix all
-occurrences where the order is wrong by moving config.h to the top.
-
-This fixes the client side error "Stale file handle" when mounting from
-a server running Arch Linux ARM.
-
-Signed-off-by: Zoltan Karcagi <zkr7432@gmail.com>
-Signed-off-by: Steve Dickson <steved@redhat.com>
-
-Upstream-Status: Backport
-[http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=2fbc62e2a13fc22b6ae4910e295a2c10fb790486]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- support/misc/nfsd_path.c | 5 ++++-
- support/misc/xstat.c | 5 ++++-
- support/nfs/conffile.c | 8 +++++++-
- utils/blkmapd/device-discovery.c | 8 ++++----
- utils/idmapd/idmapd.c | 8 ++++----
- 5 files changed, 23 insertions(+), 11 deletions(-)
-
-diff --git a/support/misc/nfsd_path.c b/support/misc/nfsd_path.c
-index 84e4802..f078a66 100644
---- a/support/misc/nfsd_path.c
-+++ b/support/misc/nfsd_path.c
-@@ -1,3 +1,7 @@
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
- #include <errno.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -5,7 +9,6 @@
- #include <stdlib.h>
- #include <unistd.h>
-
--#include "config.h"
- #include "conffile.h"
- #include "xmalloc.h"
- #include "xlog.h"
-diff --git a/support/misc/xstat.c b/support/misc/xstat.c
-index fa04788..4c997ee 100644
---- a/support/misc/xstat.c
-+++ b/support/misc/xstat.c
-@@ -1,3 +1,7 @@
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
- #include <errno.h>
- #include <sys/types.h>
- #include <fcntl.h>
-@@ -5,7 +9,6 @@
- #include <sys/sysmacros.h>
- #include <unistd.h>
-
--#include "config.h"
- #include "xstat.h"
-
- #ifdef HAVE_FSTATAT
-diff --git a/support/nfs/conffile.c b/support/nfs/conffile.c
-index b6400be..6ba8a35 100644
---- a/support/nfs/conffile.c
-+++ b/support/nfs/conffile.c
-@@ -500,7 +500,7 @@ conf_readfile(const char *path)
-
- if ((stat (path, &sb) == 0) || (errno != ENOENT)) {
- char *new_conf_addr = NULL;
-- size_t sz = sb.st_size;
-+ off_t sz;
- int fd = open (path, O_RDONLY, 0);
-
- if (fd == -1) {
-@@ -517,6 +517,11 @@ conf_readfile(const char *path)
-
- /* only after we have the lock, check the file size ready to read it */
- sz = lseek(fd, 0, SEEK_END);
-+ if (sz < 0) {
-+ xlog_warn("conf_readfile: unable to determine file size: %s",
-+ strerror(errno));
-+ goto fail;
-+ }
- lseek(fd, 0, SEEK_SET);
-
- new_conf_addr = malloc(sz+1);
-@@ -2162,6 +2167,7 @@ conf_write(const char *filename, const char *section, const char *arg,
- ret = 0;
-
- cleanup:
-+ flush_outqueue(&inqueue, NULL);
- flush_outqueue(&outqueue, NULL);
-
- if (buff)
-diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
-index e811703..f5f9b10 100644
---- a/utils/blkmapd/device-discovery.c
-+++ b/utils/blkmapd/device-discovery.c
-@@ -26,6 +26,10 @@
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif /* HAVE_CONFIG_H */
-+
- #include <sys/sysmacros.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -51,10 +55,6 @@
- #include <errno.h>
- #include <libdevmapper.h>
-
--#ifdef HAVE_CONFIG_H
--#include "config.h"
--#endif /* HAVE_CONFIG_H */
--
- #include "device-discovery.h"
- #include "xcommon.h"
- #include "nfslib.h"
-diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
-index 62e37b8..267acea 100644
---- a/utils/idmapd/idmapd.c
-+++ b/utils/idmapd/idmapd.c
-@@ -34,6 +34,10 @@
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif /* HAVE_CONFIG_H */
-+
- #include <sys/types.h>
- #include <sys/time.h>
- #include <sys/inotify.h>
-@@ -62,10 +66,6 @@
- #include <libgen.h>
- #include <nfsidmap.h>
-
--#ifdef HAVE_CONFIG_H
--#include "config.h"
--#endif /* HAVE_CONFIG_H */
--
- #include "xlog.h"
- #include "conffile.h"
- #include "queue.h"
---
-2.7.4
-
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch
index fcb0e99b33..bd350144e3 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch
@@ -28,10 +28,10 @@ Rebase it.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
support/misc/Makefile.am | 2 +-
- support/misc/file.c | 111 ---------------------------------------------------------------------------------------------------------------
+ support/misc/file.c | 115 ---------------------------------------------------------------------------------------------------------------
support/misc/misc.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
support/nsm/Makefile.am | 2 +-
- 4 files changed, 113 insertions(+), 113 deletions(-)
+ 4 files changed, 113 insertions(+), 117 deletions(-)
diff --git a/support/misc/Makefile.am b/support/misc/Makefile.am
index f9993e3..8b0e9db 100644
@@ -48,10 +48,10 @@ index f9993e3..8b0e9db 100644
MAINTAINERCLEANFILES = Makefile.in
diff --git a/support/misc/file.c b/support/misc/file.c
deleted file mode 100644
-index e7c3819..0000000
+index 06f6bb2..0000000
--- a/support/misc/file.c
+++ /dev/null
-@@ -1,111 +0,0 @@
+@@ -1,115 +0,0 @@
-/*
- * Copyright 2009 Oracle. All rights reserved.
- * Copyright 2017 Red Hat, Inc. All rights reserved.
@@ -72,6 +72,10 @@ index e7c3819..0000000
- * along with nfs-utils. If not, see <http://www.gnu.org/licenses/>.
- */
-
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
+-
-#include <sys/stat.h>
-
-#include <string.h>
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/0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch
deleted file mode 100644
index d14f0789ff..0000000000
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 66471fbf7106917da7a1536b18a0a77d07479779 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <Mingli.Yu@windriver.com>
-Date: Mon, 17 Dec 2018 15:29:47 +0800
-Subject: [PATCH] configure.ac: Do not fatalize -Wmissing-prototypes
-
-There comes below error when run "make -C tests/nsm_client nsm_client"
-| nlm_sm_inter_svc.c:20:1: error: no previous prototype for 'nlm_sm_prog_3' [-Werror=missing-prototypes]
-
-It is because rpcgen doesn't generate -Wmissing-prototypes
-free code for nlm_sm_inter_svc.c with below logic
-in tests/nsm_client/Makefile.am
-[snip]
-GENFILES_SVC = nlm_sm_inter_svc.c
-[snip]
-$(GENFILES_SVC): %_svc.c: %.x $(RPCGEN)
- test -f $@ && rm -rf $@ || true
- $(RPCGEN) -m -o $@ $<
-
-So add the logic not to fatalize -Wmissing-prototypes.
-
-Upstream-Status: Submitted[https://marc.info/?l=linux-nfs&m=154503260323936&w=2]
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 50002b4..aebff01 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -582,7 +582,7 @@ my_am_cflags="\
- -Wall \
- -Wextra \
- $rpcgen_cflags \
-- -Werror=missing-prototypes \
-+ -Wmissing-prototypes \
- -Werror=missing-declarations \
- -Werror=format=2 \
- -Werror=undef \
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-format-string.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-format-string.patch
deleted file mode 100644
index 1d693e4142..0000000000
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-format-string.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-Clang comes up with more printf format warnings
-Correcting “format string is not a string literal†warning
-requires us to declare that parameter is a printf style
-format using the attribute flag
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: nfs-utils-2.3.3/support/include/xcommon.h
-===================================================================
---- nfs-utils-2.3.3.orig/support/include/xcommon.h
-+++ nfs-utils-2.3.3/support/include/xcommon.h
-@@ -27,7 +27,7 @@
-
- /* Functions in sundries.c that are used in mount.c and umount.c */
- char *canonicalize (const char *path);
--void nfs_error (const char *fmt, ...);
-+void nfs_error (const char *fmt, ...) __attribute__((__format__ (__printf__, 1, 2)));
- void *xmalloc (size_t size);
- void *xrealloc(void *p, size_t size);
- void xfree(void *);
-@@ -36,9 +36,9 @@ char *xstrndup (const char *s, int n);
- char *xstrconcat2 (const char *, const char *);
- char *xstrconcat3 (const char *, const char *, const char *);
- char *xstrconcat4 (const char *, const char *, const char *, const char *);
--void die (int errcode, const char *fmt, ...);
-+void die (int errcode, const char *fmt, ...) __attribute__((__format__ (__printf__, 2, 3)));
-
--extern void die(int err, const char *fmt, ...);
-+extern void die(int err, const char *fmt, ...) __attribute__((__format__ (__printf__, 2, 3)));
- extern void (*at_die)(void);
-
- /* exit status - bits below are ORed */
-Index: nfs-utils-2.3.3/support/include/xlog.h
-===================================================================
---- nfs-utils-2.3.3.orig/support/include/xlog.h
-+++ nfs-utils-2.3.3/support/include/xlog.h
-@@ -43,10 +43,10 @@ void xlog_config(int fac, int on);
- void xlog_sconfig(char *, int on);
- void xlog_from_conffile(char *);
- int xlog_enabled(int fac);
--void xlog(int fac, const char *fmt, ...);
--void xlog_warn(const char *fmt, ...);
--void xlog_err(const char *fmt, ...);
--void xlog_errno(int err, const char *fmt, ...);
--void xlog_backend(int fac, const char *fmt, va_list args);
-+void xlog(int fac, const char *fmt, ...) __attribute__((__format__ (__printf__, 2, 3)));
-+void xlog_warn(const char *fmt, ...) __attribute__((__format__ (__printf__, 1, 2)));
-+void xlog_err(const char *fmt, ...) __attribute__((__format__ (__printf__, 1, 2)));
-+void xlog_errno(int err, const char *fmt, ...) __attribute__((__format__ (__printf__, 2, 3)));
-+void xlog_backend(int fac, const char *fmt, va_list args) __attribute__((__format__ (__printf__, 2, 0)));
-
- #endif /* XLOG_H */
-Index: nfs-utils-2.3.3/support/nfs/xcommon.c
-===================================================================
---- nfs-utils-2.3.3.orig/support/nfs/xcommon.c
-+++ nfs-utils-2.3.3/support/nfs/xcommon.c
-@@ -93,7 +93,10 @@ nfs_error (const char *fmt, ...) {
-
- fmt2 = xstrconcat2 (fmt, "\n");
- va_start (args, fmt);
-+#pragma clang diagnostic push
-+#pragma clang diagnostic ignored "-Wformat-nonliteral"
- vfprintf (stderr, fmt2, args);
-+#pragma clang diagnostic pop
- va_end (args);
- free (fmt2);
- }
-Index: nfs-utils-2.3.3/utils/exportfs/exportfs.c
-===================================================================
---- nfs-utils-2.3.3.orig/utils/exportfs/exportfs.c
-+++ nfs-utils-2.3.3/utils/exportfs/exportfs.c
-@@ -644,6 +644,7 @@ out:
- return result;
- }
-
-+__attribute__((__format__ (__printf__, 2, 3)))
- static char
- dumpopt(char c, char *fmt, ...)
- {
-Index: nfs-utils-2.3.3/utils/statd/statd.c
-===================================================================
---- nfs-utils-2.3.3.orig/utils/statd/statd.c
-+++ nfs-utils-2.3.3/utils/statd/statd.c
-@@ -136,7 +136,7 @@ static void log_modes(void)
- strcat(buf, "TI-RPC ");
- #endif
-
-- xlog_warn(buf);
-+ xlog_warn("%s", buf);
- }
-
- /*
-Index: nfs-utils-2.3.3/support/nfs/svc_create.c
-===================================================================
---- nfs-utils-2.3.3.orig/support/nfs/svc_create.c
-+++ nfs-utils-2.3.3/support/nfs/svc_create.c
-@@ -184,7 +184,7 @@ svc_create_sock(const struct sockaddr *s
- type = SOCK_STREAM;
- break;
- default:
-- xlog(D_GENERAL, "%s: Unrecognized bind address semantics: %u",
-+ xlog(D_GENERAL, "%s: Unrecognized bind address semantics: %lu",
- __func__, nconf->nc_semantics);
- return -1;
- }
-Index: nfs-utils-2.3.3/support/nsm/rpc.c
-===================================================================
---- nfs-utils-2.3.3.orig/support/nsm/rpc.c
-+++ nfs-utils-2.3.3/support/nsm/rpc.c
-@@ -182,7 +182,7 @@ nsm_xmit_getport(const int sock, const s
- uint32_t xid;
- XDR xdr;
-
-- xlog(D_CALL, "Sending PMAP_GETPORT for %u, %u, udp", program, version);
-+ xlog(D_CALL, "Sending PMAP_GETPORT for %lu, %lu, udp", program, version);
-
- nsm_init_xdrmem(msgbuf, NSM_MAXMSGSIZE, &xdr);
- xid = nsm_init_rpc_header(PMAPPROG, PMAPVERS,
-Index: nfs-utils-2.3.3/utils/mountd/cache.c
-===================================================================
---- nfs-utils-2.3.3.orig/utils/mountd/cache.c
-+++ nfs-utils-2.3.3/utils/mountd/cache.c
-@@ -968,8 +968,7 @@ lookup_export(char *dom, char *path, str
- } else if (found_type == i && found->m_warned == 0) {
- xlog(L_WARNING, "%s exported to both %s and %s, "
- "arbitrarily choosing options from first",
-- path, found->m_client->m_hostname, exp->m_client->m_hostname,
-- dom);
-+ path, found->m_client->m_hostname, exp->m_client->m_hostname);
- found->m_warned = 1;
- }
- }
-Index: nfs-utils-2.3.3/utils/mountd/mountd.c
-===================================================================
---- nfs-utils-2.3.3.orig/utils/mountd/mountd.c
-+++ nfs-utils-2.3.3/utils/mountd/mountd.c
-@@ -213,7 +213,7 @@ static void
- sig_hup (int sig)
- {
- /* don't exit on SIGHUP */
-- xlog (L_NOTICE, "Received SIGHUP... Ignoring.\n", sig);
-+ xlog (L_NOTICE, "Received SIGHUP(%d)... Ignoring.\n", sig);
- return;
- }
-
-Index: nfs-utils-2.3.3/utils/statd/rmtcall.c
-===================================================================
---- nfs-utils-2.3.3.orig/utils/statd/rmtcall.c
-+++ nfs-utils-2.3.3/utils/statd/rmtcall.c
-@@ -247,7 +247,7 @@ process_reply(FD_SET_TYPE *rfds)
- xlog_warn("%s: service %d not registered on localhost",
- __func__, NL_MY_PROG(lp));
- } else {
-- xlog(D_GENERAL, "%s: Callback to %s (for %d) succeeded",
-+ xlog(D_GENERAL, "%s: Callback to %s (for %s) succeeded",
- __func__, NL_MY_NAME(lp), NL_MON_NAME(lp));
- }
- nlist_free(&notify, lp);
-Index: nfs-utils-2.3.3/utils/statd/svc_run.c
-===================================================================
---- nfs-utils-2.3.3.orig/utils/statd/svc_run.c
-+++ nfs-utils-2.3.3/utils/statd/svc_run.c
-@@ -53,6 +53,7 @@
-
- #include <errno.h>
- #include <time.h>
-+#include <inttypes.h>
- #include "statd.h"
- #include "notlist.h"
-
-@@ -104,8 +105,8 @@ my_svc_run(int sockfd)
-
- tv.tv_sec = NL_WHEN(notify) - now;
- tv.tv_usec = 0;
-- xlog(D_GENERAL, "Waiting for reply... (timeo %d)",
-- tv.tv_sec);
-+ xlog(D_GENERAL, "Waiting for reply... (timeo %jd)",
-+ (intmax_t)tv.tv_sec);
- selret = select(FD_SETSIZE, &readfds,
- (void *) 0, (void *) 0, &tv);
- } else {
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-warnings.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-warnings.patch
new file mode 100644
index 0000000000..20400fef67
--- /dev/null
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-warnings.patch
@@ -0,0 +1,61 @@
+Detect warning options during configure
+
+Certain options maybe compiler specific therefore its better
+to detect them before use.
+
+nfs_error copies the format string and appends newline to it
+but compiler can forget that it was format string since its not
+same fmt string that was passed. Ignore the warning
+
+Wdiscarded-qualifiers is gcc specific and this is no longer needed
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -599,7 +599,6 @@ my_am_cflags="\
+ -Werror=parentheses \
+ -Werror=aggregate-return \
+ -Werror=unused-result \
+- -Wno-cast-function-type \
+ -fno-strict-aliasing \
+ "
+
+@@ -619,9 +618,10 @@ CHECK_CCSUPPORT([-Werror=format-overflow
+ CHECK_CCSUPPORT([-Werror=int-conversion], [flg2])
+ CHECK_CCSUPPORT([-Werror=incompatible-pointer-types], [flg3])
+ CHECK_CCSUPPORT([-Werror=misleading-indentation], [flg4])
++CHECK_CCSUPPORT([-Wno-cast-function-type], [flg5])
+ AX_GCC_FUNC_ATTRIBUTE([format])
+
+-AC_SUBST([AM_CFLAGS], ["$my_am_cflags $flg1 $flg2 $flg3 $flg4"])
++AC_SUBST([AM_CFLAGS], ["$my_am_cflags $flg1 $flg2 $flg3 $flg4 $flg5"])
+
+ # Make sure that $ACLOCAL_FLAGS are used during a rebuild
+ AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
+--- a/support/nfs/xcommon.c
++++ b/support/nfs/xcommon.c
+@@ -98,7 +98,10 @@ nfs_error (const char *fmt, ...) {
+
+ fmt2 = xstrconcat2 (fmt, "\n");
+ va_start (args, fmt);
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+ vfprintf (stderr, fmt2, args);
++#pragma GCC diagnostic pop
+ va_end (args);
+ free (fmt2);
+ }
+--- a/utils/mount/stropts.c
++++ b/utils/mount/stropts.c
+@@ -1094,9 +1094,7 @@ static int nfsmount_fg(struct nfsmount_i
+ if (nfs_try_mount(mi))
+ return EX_SUCCESS;
+
+-#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
+ if (errno == EBUSY && is_mountpoint(mi->node)) {
+-#pragma GCC diagnostic warning "-Wdiscarded-qualifiers"
+ /*
+ * EBUSY can happen when mounting a filesystem that
+ * is already mounted or when the context= are
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/nfs-utils-musl-res_querydomain.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch
deleted file mode 100644
index 921f5edc82..0000000000
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From caa19231196d73541445728e6813c8fa70345acb Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Tue, 26 Jun 2018 15:59:00 +0800
-Subject: [PATCH] nfs-utils: 2.1.1 -> 2.3.1
-
-Fixed:
-configure: error: res_querydomain needed
-
-Upstream-Status: Pending [https://github.com/alpinelinux/aports/blob/master/main/nfs-utils/musl-configure_ac.patch]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
----
- configure.ac | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 50002b4..dcadb23 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -582,10 +582,10 @@ my_am_cflags="\
- -Wall \
- -Wextra \
- $rpcgen_cflags \
-- -Werror=missing-prototypes \
-- -Werror=missing-declarations \
-+ -Wmissing-prototypes \
-+ -Wmissing-declarations \
- -Werror=format=2 \
-- -Werror=undef \
-+ -Wundef \
- -Werror=missing-include-dirs \
- -Werror=strict-aliasing=2 \
- -Werror=init-self \
-@@ -614,10 +614,9 @@ AC_DEFUN([CHECK_CCSUPPORT], [
-
- CHECK_CCSUPPORT([-Werror=format-overflow=2], [flg1])
- CHECK_CCSUPPORT([-Werror=int-conversion], [flg2])
--CHECK_CCSUPPORT([-Werror=incompatible-pointer-types], [flg3])
- CHECK_CCSUPPORT([-Werror=misleading-indentation], [flg4])
-
--AC_SUBST([AM_CFLAGS], ["$my_am_cflags $flg1 $flg2 $flg3 $flg4"])
-+AC_SUBST([AM_CFLAGS], ["$my_am_cflags $flg1 $flg2 $flg4"])
-
- # Make sure that $ACLOCAL_FLAGS are used during a rebuild
- AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
index d5e9c38a9c..0f5747cc6d 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
@@ -107,7 +107,7 @@ stop_nfsd(){
#FIXME: need to create the /var/lib/nfs/... directories
case "$1" in
start)
- exportfs -r
+ test -r /etc/exports && exportfs -r
start_nfsd "$NFS_SERVERS"
start_mountd
test -r /etc/exports && exportfs -a;;
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb
index 7e80354e4e..b8ad23a0d8 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84"
# util-linux for libblkid
DEPENDS = "libcap libevent util-linux sqlite3 libtirpc"
-RDEPENDS_${PN} = "${PN}-client bash"
+RDEPENDS_${PN} = "${PN}-client"
RRECOMMENDS_${PN} = "kernel-module-nfsd"
inherit useradd
@@ -28,17 +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://clang-format-string.patch \
file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \
- file://0001-Don-t-build-tools-with-CC_FOR_BUILD.patch \
- file://0001-Fix-include-order-between-config.h-and-stat.h.patch \
-"
-SRC_URI_append_libc-glibc = " file://0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch"
-SRC_URI_append_libc-musl = " file://nfs-utils-musl-res_querydomain.patch"
-
-SRC_URI[md5sum] = "161efe469ec1b06f1c750bd87f8ba6dd"
-SRC_URI[sha256sum] = "85274ada94479b1beba9f8eeffd19f477c53a6710b9998d1192c807854087736"
+ file://clang-warnings.patch \
+ "
+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.
@@ -63,10 +56,9 @@ EXTRA_OECONF = "--with-statduser=rpcuser \
--disable-gss \
--disable-nfsdcltrack \
--with-statdpath=/var/lib/nfs/statd \
+ --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \
"
-CFLAGS += "-Wno-error=format-overflow"
-
PACKAGECONFIG ??= "tcp-wrappers \
${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
"
@@ -74,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"
@@ -98,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
@@ -134,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
@@ -146,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/ofono/ofono_1.30.bb b/meta/recipes-connectivity/ofono/ofono_1.30.bb
deleted file mode 100644
index c916cb1b22..0000000000
--- a/meta/recipes-connectivity/ofono/ofono_1.30.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require ofono.inc
-
-SRC_URI = "\
- ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
- file://ofono \
- file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
-"
-SRC_URI[md5sum] = "2b1ce11a4db1f4b5c8cd96eb7e96ba0c"
-SRC_URI[sha256sum] = "8079735efc5d7f33be9e792e791f2f7ff75c31ce67d477b994673e32319eec5c"
diff --git a/meta/recipes-connectivity/ofono/ofono.inc b/meta/recipes-connectivity/ofono/ofono_1.31.bb
index bdbb0b5bc6..7d0976ad7f 100644
--- a/meta/recipes-connectivity/ofono/ofono.inc
+++ b/meta/recipes-connectivity/ofono/ofono_1.31.bb
@@ -1,28 +1,35 @@
-HOMEPAGE = "http://www.ofono.org"
-SUMMARY = "open source telephony"
+SUMMARY = "open source telephony"
DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux. oFono supports speaking to telephony devices through specific drivers, or with generic AT commands."
-LICENSE = "GPLv2"
+HOMEPAGE = "http://www.ofono.org"
+BUGTRACKER = "https://01.org/jira/browse/OF"
+LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee"
+DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ell"
-inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
+SRC_URI = "\
+ ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
+ file://ofono \
+ file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
+"
+SRC_URI[md5sum] = "1c26340e3c6ed132cc812595081bb3dc"
+SRC_URI[sha256sum] = "a15c5d28096c10eb30e47a68b6dc2e7c4a5a99d7f4cfedf0b69624f33d859e9b"
-DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ell"
+inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
INITSCRIPT_NAME = "ofono"
INITSCRIPT_PARAMS = "defaults 22"
+SYSTEMD_SERVICE_${PN} = "ofono.service"
PACKAGECONFIG ??= "\
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
- "
+"
PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir="
PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, bluez5"
EXTRA_OECONF += "--enable-test --enable-external-ell"
-SYSTEMD_SERVICE_${PN} = "ofono.service"
-
do_install_append() {
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
@@ -30,10 +37,14 @@ do_install_append() {
PACKAGES =+ "${PN}-tests"
-RDEPENDS_${PN} += "dbus"
-RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info"
-
FILES_${PN} += "${systemd_unitdir}"
FILES_${PN}-tests = "${libdir}/${BPN}/test"
-RDEPENDS_${PN}-tests = "python3-core python3-dbus"
-RDEPENDS_${PN}-tests += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)}"
+
+RDEPENDS_${PN} += "dbus"
+RDEPENDS_${PN}-tests = "\
+ python3-core \
+ python3-dbus \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)} \
+"
+
+RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info"
diff --git a/meta/recipes-connectivity/openssh/openssh/run-ptest b/meta/recipes-connectivity/openssh/openssh/run-ptest
index daf62cca5b..ae03e929b2 100755
--- a/meta/recipes-connectivity/openssh/openssh/run-ptest
+++ b/meta/recipes-connectivity/openssh/openssh/run-ptest
@@ -1,6 +1,7 @@
#!/bin/sh
export TEST_SHELL=sh
+export SKIP_UNIT=1
cd regress
sed -i "/\t\tagent-ptrace /d" Makefile
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.0p1.bb b/meta/recipes-connectivity/openssh/openssh_8.3p1.bb
index 01eaecd4ec..e007328704 100644
--- a/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
+++ b/meta/recipes-connectivity/openssh/openssh_8.3p1.bb
@@ -6,7 +6,7 @@ and for executing commands on a remote machine."
HOMEPAGE = "http://www.openssh.com/"
SECTION = "console/network"
LICENSE = "BSD & ISC & MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=429658c6612f3a9b1293782366ab29d8"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=18d9e5a8b3dd1790d73502f50426d4d3"
DEPENDS = "zlib openssl virtual/crypt"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
@@ -25,12 +25,11 @@ 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] = "bf050f002fe510e1daecd39044e1122d"
-SRC_URI[sha256sum] = "bd943879e69498e8031eb6b7f44d08cdc37d59a7ab689aa0b437320c3481fd68"
+SRC_URI[sha256sum] = "f2befbe0472fe7eb75d23340eb17531cb6b3aac24075e2066b41f814e12387b2"
PAM_SRC_URI = "file://sshd"
-inherit useradd update-rc.d update-alternatives systemd
+inherit manpages useradd update-rc.d update-alternatives systemd
USERADD_PACKAGES = "${PN}-sshd"
USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd"
@@ -43,6 +42,15 @@ SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket"
inherit autotools-brokensep ptest
+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
@@ -144,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/reproducible.patch b/meta/recipes-connectivity/openssl/openssl/reproducible.patch
new file mode 100644
index 0000000000..a24260c95d
--- /dev/null
+++ b/meta/recipes-connectivity/openssl/openssl/reproducible.patch
@@ -0,0 +1,32 @@
+The value for perl_archname can vary depending on the host, e.g.
+x86_64-linux-gnu-thread-multi or x86_64-linux-thread-multi which
+makes the ptest package non-reproducible. Its unused other than
+these references so drop it.
+
+RP 2020/2/6
+
+Upstream-Status: Pending
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: openssl-1.1.1d/Configure
+===================================================================
+--- openssl-1.1.1d.orig/Configure
++++ openssl-1.1.1d/Configure
+@@ -286,7 +286,7 @@ if (defined env($local_config_envname))
+ # Save away perl command information
+ $config{perl_cmd} = $^X;
+ $config{perl_version} = $Config{version};
+-$config{perl_archname} = $Config{archname};
++#$config{perl_archname} = $Config{archname};
+
+ $config{prefix}="";
+ $config{openssldir}="";
+@@ -2517,7 +2517,7 @@ _____
+ @{$config{perlargv}}), "\n";
+ print "\nPerl information:\n\n";
+ print ' ',$config{perl_cmd},"\n";
+- print ' ',$config{perl_version},' for ',$config{perl_archname},"\n";
++ print ' ',$config{perl_version},"\n";
+ }
+ if ($dump || $options) {
+ my $longest = 0;
diff --git a/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb b/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb
index 072f727e0b..815955837b 100644
--- a/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb
+++ b/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb
@@ -16,14 +16,14 @@ 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://reproducible.patch \
"
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"
@@ -32,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}"
@@ -101,6 +101,9 @@ do_configure () {
linux-powerpc64)
target=linux-ppc64
;;
+ linux-powerpc64le)
+ target=linux-ppc64le
+ ;;
linux-riscv32)
target=linux-generic32
;;
@@ -118,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
}
@@ -148,7 +151,7 @@ do_install_append_class-native () {
OPENSSL_CONF=${libdir}/ssl-1.1/openssl.cnf \
SSL_CERT_DIR=${libdir}/ssl-1.1/certs \
SSL_CERT_FILE=${libdir}/ssl-1.1/cert.pem \
- OPENSSL_ENGINES=${libdir}/ssl-1.1/engines
+ OPENSSL_ENGINES=${libdir}/engines-1.1
}
do_install_append_class-nativesdk () {
@@ -188,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/*"
@@ -199,6 +204,12 @@ 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"
+
+# Only affects OpenSSL >= 1.1.1 in combination with Apache < 2.4.37
+# Apache in meta-webserver is already recent enough
+CVE_CHECK_WHITELIST += "CVE-2019-0190"
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-pppd-Fix-bounds-check-in-EAP-code.patch b/meta/recipes-connectivity/ppp/ppp/0001-pppd-Fix-bounds-check-in-EAP-code.patch
new file mode 100644
index 0000000000..b7ba7ba643
--- /dev/null
+++ b/meta/recipes-connectivity/ppp/ppp/0001-pppd-Fix-bounds-check-in-EAP-code.patch
@@ -0,0 +1,47 @@
+From 8d7970b8f3db727fe798b65f3377fe6787575426 Mon Sep 17 00:00:00 2001
+From: Paul Mackerras <paulus@ozlabs.org>
+Date: Mon, 3 Feb 2020 15:53:28 +1100
+Subject: [PATCH] pppd: Fix bounds check in EAP code
+
+Given that we have just checked vallen < len, it can never be the case
+that vallen >= len + sizeof(rhostname). This fixes the check so we
+actually avoid overflowing the rhostname array.
+
+Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
+Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
+
+Upstream-Status: Backport
+[https://github.com/paulusmack/ppp/commit/8d7970b8f3db727fe798b65f3377fe6787575426]
+
+CVE: CVE-2020-8597
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ pppd/eap.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pppd/eap.c b/pppd/eap.c
+index 94407f5..1b93db0 100644
+--- a/pppd/eap.c
++++ b/pppd/eap.c
+@@ -1420,7 +1420,7 @@ int len;
+ }
+
+ /* Not so likely to happen. */
+- if (vallen >= len + sizeof (rhostname)) {
++ if (len - vallen >= sizeof (rhostname)) {
+ dbglog("EAP: trimming really long peer name down");
+ BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
+ rhostname[sizeof (rhostname) - 1] = '\0';
+@@ -1846,7 +1846,7 @@ int len;
+ }
+
+ /* Not so likely to happen. */
+- if (vallen >= len + sizeof (rhostname)) {
++ if (len - vallen >= sizeof (rhostname)) {
+ dbglog("EAP: trimming really long peer name down");
+ BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
+ rhostname[sizeof (rhostname) - 1] = '\0';
+--
+2.17.1
+
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 644cde4562..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,19 +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.79.bb b/meta/recipes-connectivity/resolvconf/resolvconf_1.83.bb
index 8550177288..f0ffc82241 100644
--- a/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb
+++ b/meta/recipes-connectivity/resolvconf/resolvconf_1.83.bb
@@ -11,13 +11,14 @@ AUTHOR = "Thomas Hood"
HOMEPAGE = "http://packages.debian.org/resolvconf"
RDEPENDS_${PN} = "bash"
-SRC_URI = "http://snapshot.debian.org/archive/debian/20160520T044340Z/pool/main/r/${BPN}/${BPN}_1.79.tar.xz \
+SRC_URI = "git://salsa.debian.org/debian/resolvconf.git;protocol=https \
file://fix-path-for-busybox.patch \
file://99_resolvconf \
"
-SRC_URI[md5sum] = "aab2382020fc518f06a06e924c56d300"
-SRC_URI[sha256sum] = "8e2843cd4162b706f0481b3c281657728cbc2822e50a64fff79b79bd8aa870a0"
+SRCREV = "d001dd2b7ce4c854eaa29e46b9640ab66c6e70bb"
+
+S = "${WORKDIR}/git"
# 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
diff --git a/meta/recipes-connectivity/socat/socat_1.7.3.3.bb b/meta/recipes-connectivity/socat/socat_1.7.3.4.bb
index 067f7c6444..9b0d4071ac 100644
--- a/meta/recipes-connectivity/socat/socat_1.7.3.3.bb
+++ b/meta/recipes-connectivity/socat/socat_1.7.3.4.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://www.dest-unreach.org/socat/"
SECTION = "console/network"
-DEPENDS = "openssl readline"
+DEPENDS = "openssl"
LICENSE = "GPL-2.0-with-OpenSSL-exception"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
@@ -14,8 +14,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2 \
"
-SRC_URI[md5sum] = "b2a032a47b8b89a18485697fa975154f"
-SRC_URI[sha256sum] = "0dd63ffe498168a4aac41d307594c5076ff307aa0ac04b141f8f1cec6594d04a"
+SRC_URI[md5sum] = "3cca4f8cd9d2d1caabd9cc099451bac9"
+SRC_URI[sha256sum] = "972374ca86f65498e23e3259c2ee1b8f9dbeb04d12c2a78c0c9b5d1cb97dfdfc"
inherit autotools
@@ -39,9 +39,12 @@ TERMBITS_SHIFTS_powerpc64 = "sc_cv_sys_crdly_shift=12 \
sc_cv_sys_tabdly_shift=10 \
sc_cv_sys_csize_shift=8"
-PACKAGECONFIG_class-target ??= "tcp-wrappers"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG_class-target ??= "tcp-wrappers readline"
+PACKAGECONFIG ??= "readline"
PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
+PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
+
+CFLAGS += "-fcommon"
do_install_prepend () {
mkdir -p ${D}${bindir}
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-AP-Silently-ignore-management-frame-from-unexpected-.patch b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch
new file mode 100644
index 0000000000..7b0713cf6d
--- /dev/null
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch
@@ -0,0 +1,82 @@
+hostapd before 2.10 and wpa_supplicant before 2.10 allow an incorrect indication
+of disconnection in certain situations because source address validation is
+mishandled. This is a denial of service that should have been prevented by PMF
+(aka management frame protection). The attacker must send a crafted 802.11 frame
+from a location that is within the 802.11 communications range.
+
+CVE: CVE-2019-16275
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From 8c07fa9eda13e835f3f968b2e1c9a8be3a851ff9 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Thu, 29 Aug 2019 11:52:04 +0300
+Subject: [PATCH] AP: Silently ignore management frame from unexpected source
+ address
+
+Do not process any received Management frames with unexpected/invalid SA
+so that we do not add any state for unexpected STA addresses or end up
+sending out frames to unexpected destination. This prevents unexpected
+sequences where an unprotected frame might end up causing the AP to send
+out a response to another device and that other device processing the
+unexpected response.
+
+In particular, this prevents some potential denial of service cases
+where the unexpected response frame from the AP might result in a
+connected station dropping its association.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/ap/drv_callbacks.c | 13 +++++++++++++
+ src/ap/ieee802_11.c | 12 ++++++++++++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c
+index 31587685fe3b..34ca379edc3d 100644
+--- a/src/ap/drv_callbacks.c
++++ b/src/ap/drv_callbacks.c
+@@ -131,6 +131,19 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
+ "hostapd_notif_assoc: Skip event with no address");
+ return -1;
+ }
++
++ if (is_multicast_ether_addr(addr) ||
++ is_zero_ether_addr(addr) ||
++ os_memcmp(addr, hapd->own_addr, ETH_ALEN) == 0) {
++ /* Do not process any frames with unexpected/invalid SA so that
++ * we do not add any state for unexpected STA addresses or end
++ * up sending out frames to unexpected destination. */
++ wpa_printf(MSG_DEBUG, "%s: Invalid SA=" MACSTR
++ " in received indication - ignore this indication silently",
++ __func__, MAC2STR(addr));
++ return 0;
++ }
++
+ random_add_randomness(addr, ETH_ALEN);
+
+ hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211,
+diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
+index c85a28db44b7..e7065372e158 100644
+--- a/src/ap/ieee802_11.c
++++ b/src/ap/ieee802_11.c
+@@ -4626,6 +4626,18 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len,
+ fc = le_to_host16(mgmt->frame_control);
+ stype = WLAN_FC_GET_STYPE(fc);
+
++ if (is_multicast_ether_addr(mgmt->sa) ||
++ is_zero_ether_addr(mgmt->sa) ||
++ os_memcmp(mgmt->sa, hapd->own_addr, ETH_ALEN) == 0) {
++ /* Do not process any frames with unexpected/invalid SA so that
++ * we do not add any state for unexpected STA addresses or end
++ * up sending out frames to unexpected destination. */
++ wpa_printf(MSG_DEBUG, "MGMT: Invalid SA=" MACSTR
++ " in received frame - ignore this frame silently",
++ MAC2STR(mgmt->sa));
++ return 0;
++ }
++
+ if (stype == WLAN_FC_STYPE_BEACON) {
+ handle_beacon(hapd, mgmt, len, fi);
+ return 1;
+--
+2.20.1
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 c16978cfe8..7cc03fef7d 100644
--- a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
@@ -2,7 +2,7 @@ SUMMARY = "Client for Wi-Fi Protected Access (WPA)"
HOMEPAGE = "http://w1.fi/wpa_supplicant/"
BUGTRACKER = "http://w1.fi/security/"
SECTION = "network"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=279b4f5abb9c153c285221855ddb78cc \
file://README;beginline=1;endline=56;md5=e7d3dbb01f75f0b9799e192731d1e1ff \
file://wpa_supplicant/wpa_supplicant.c;beginline=1;endline=12;md5=0a8b56d3543498b742b9c0e94cc2d18b"
@@ -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,6 +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-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"
@@ -36,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-files/base-files/fstab b/meta/recipes-core/base-files/base-files/fstab
index d79a01602f..70e400f567 100644
--- a/meta/recipes-core/base-files/base-files/fstab
+++ b/meta/recipes-core/base-files/base-files/fstab
@@ -2,7 +2,7 @@
/dev/root / auto defaults 1 1
proc /proc proc defaults 0 0
-devpts /dev/pts devpts mode=0620,gid=5 0 0
+devpts /dev/pts devpts mode=0620,ptmxmode=0666,gid=5 0 0
tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0
tmpfs /var/volatile tmpfs defaults 0 0
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 d08fa8d3d9..45aaa2b41c 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -1,13 +1,13 @@
SUMMARY = "Tiny versions of many common UNIX utilities in a single small executable"
DESCRIPTION = "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system."
-HOMEPAGE = "http://www.busybox.net"
+HOMEPAGE = "https://www.busybox.net"
BUGTRACKER = "https://bugs.busybox.net/"
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
@@ -354,7 +344,9 @@ PTEST_BINDIR = "1"
do_install_ptest () {
cp -r ${B}/testsuite ${D}${PTEST_PATH}/
- cp ${B}/.config ${D}${PTEST_PATH}/
+ # These access the internet which is not guaranteed to work on machines running the tests
+ rm -rf ${D}${PTEST_PATH}/testsuite/wget
+ sort ${B}/.config > ${D}${PTEST_PATH}/.config
ln -s /bin/busybox ${D}${PTEST_PATH}/busybox
}
@@ -431,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
@@ -451,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-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/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.0.bb b/meta/recipes-core/busybox/busybox_1.32.0.bb
index 34b1f2cc91..8e23b0d4a2 100644
--- a/meta/recipes-core/busybox/busybox_1.31.0.bb
+++ b/meta/recipes-core/busybox/busybox_1.32.0.bb
@@ -1,6 +1,6 @@
require busybox.inc
-SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
+SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://busybox-udhcpc-no_deconfig.patch \
file://find-touchscreen.sh \
file://busybox-cron \
@@ -42,8 +42,12 @@ SRC_URI = "http://www.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-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] = "cdba5d4458f944ceec5cdcf7c4914b69"
-SRC_URI[tarball.sha256sum] = "0e4925392fd9f3743cc517e031b68b012b24a63b0cf6c1ff03cce7bb3846cc99"
+SRC_URI[tarball.md5sum] = "9576986f1a960da471d03b72a62f13c7"
+SRC_URI[tarball.sha256sum] = "c35d87f1d04b2b153d33c275c2632e40d388a88f19a9e71727e0bbbff51fe689"
diff --git a/meta/recipes-core/busybox/files/inittab b/meta/recipes-core/busybox/files/inittab
index 2bc831c7c6..e8ec2ab68e 100644
--- a/meta/recipes-core/busybox/files/inittab
+++ b/meta/recipes-core/busybox/files/inittab
@@ -8,11 +8,17 @@
::sysinit:/bin/mkdir -p /dev/pts
::sysinit:/bin/mount -t devpts devpts /dev/pts
::sysinit:/bin/mount -a
-
+::sysinit:/sbin/swapon -a
+null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
+null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
+null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
+null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
+# set hostname
+null::sysinit:/bin/busybox hostname -F /etc/hostname
::sysinit:/etc/init.d/rcS
# Stuff to do before rebooting
-::ctrlaltdel:/sbin/reboot
+#::ctrlaltdel:/sbin/reboot
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
@@ -20,5 +26,3 @@
# Stuff to do when restarting the init process
::restart:/sbin/init
-# set hostname
-null::sysinit:/bin/busybox hostname -F /etc/hostname
diff --git a/meta/recipes-core/busybox/files/run-ptest b/meta/recipes-core/busybox/files/run-ptest
index b19e5b5343..76873c9de2 100644
--- a/meta/recipes-core/busybox/files/run-ptest
+++ b/meta/recipes-core/busybox/files/run-ptest
@@ -6,4 +6,4 @@ export PATH=$bindir/bin:$PATH
export SKIP_KNOWN_BUGS=1
cd testsuite || exit 1
-./runtest -v | sed -r 's/^(SKIPPED|UNTESTED):/SKIP:/'
+LANG=C.UTF-8 ./runtest -v | sed -r 's/^(SKIPPED|UNTESTED):/SKIP:/'
diff --git a/meta/recipes-core/busybox/files/simple.script b/meta/recipes-core/busybox/files/simple.script
index 6ed0293525..013440574d 100644
--- a/meta/recipes-core/busybox/files/simple.script
+++ b/meta/recipes-core/busybox/files/simple.script
@@ -28,7 +28,7 @@ case "$1" in
fi
if ! root_is_nfs ; then
if [ $have_bin_ip -eq 1 ]; then
- /SBIN_DIR/ip addr flush dev $interface
+ /SBIN_DIR/ip -4 addr flush dev $interface
/SBIN_DIR/ip link set dev $interface up
else
/SBIN_DIR/ifconfig $interface 0.0.0.0
@@ -59,7 +59,7 @@ case "$1" in
metric=10
for i in $router ; do
if [ $have_bin_ip -eq 1 ]; then
- /SBIN_DIR/ip route add default via $i metric $metric
+ /SBIN_DIR/ip route add default via $i metric $metric dev $interface
else
/SBIN_DIR/route add default gw $i dev $interface metric $metric 2>/dev/null
fi
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Cover-the-else-with-__GLIBC__.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Cover-the-else-with-__GLIBC__.patch
deleted file mode 100644
index ace4bf0a76..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Cover-the-else-with-__GLIBC__.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From b6a59b05f1fa514c6b387c9544bd63b1bfcf2eed Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Jan 2016 05:38:29 +0000
-Subject: [PATCH] Cover the else with __GLIBC__
-
-Fixes build errors on musl/x86
-
-| In file included from
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/sysroots/qemux86/usr/include/asm/termios.h:1:0,
-| from
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/sysroots/qemux86/usr/include/linux/termios.h:5,
-| from
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/work/i586-oe-linux-musl/console-tools/0.3.2-r8/console-tools-0.3.2/vttools/resizecons.c:86:
-|
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/sysroots/qemux86/usr/include/asm-generic/termios.h:14:8:
-error: redefinition of 'struct winsize'
-| struct winsize {
-| ^
-| In file included from
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/sysroots/qemux86/usr/include/sys/ioctl.h:7:0,
-| from
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/work/i586-oe-linux-musl/console-tools/0.3.2-r8/console-tools-0.3.2/vttools/resizecons.c:81:
-|
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/sysroots/qemux86/usr/include/bits/ioctl.h:90:8:
-note: originally defined here
-| struct winsize {
-| ^
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- vttools/resizecons.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/vttools/resizecons.c b/vttools/resizecons.c
-index f0a7055..e8753b1 100644
---- a/vttools/resizecons.c
-+++ b/vttools/resizecons.c
-@@ -81,7 +81,7 @@
- #include <sys/ioctl.h>
- #if (__GNU_LIBRARY__ >= 6)
- # include <sys/perm.h>
--#else
-+#elif defined __GLIBC__
- # include <linux/types.h>
- # include <linux/termios.h>
- #endif
---
-2.7.0
-
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Fix-format-security-compilation-error.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Fix-format-security-compilation-error.patch
deleted file mode 100644
index 6e72ec665b..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Fix-format-security-compilation-error.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Subject: Fix 'format-security' compilation error.
-
-Upstream-Status: Pending
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- kbdtools/kbd_mode.c | 6 +++---
- kbdtools/setmetamode.c | 2 +-
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/kbdtools/kbd_mode.c b/kbdtools/kbd_mode.c
-index 02dca38..8dbcd39 100644
---- a/kbdtools/kbd_mode.c
-+++ b/kbdtools/kbd_mode.c
-@@ -120,7 +120,7 @@ int main(int argc, char *argv[])
- /* report mode */
- if (ioctl(fd, KDGKBMODE, &mode))
- {
-- fprintf(stderr, progname);
-+ fprintf(stderr, "%s", progname);
- perror(_(": error reading keyboard mode\n"));
- exit(1);
- }
-@@ -151,7 +151,7 @@ int main(int argc, char *argv[])
- kbd_rep.period = rate;
- if (ioctl(fd, KDKBDREP, &kbd_rep))
- {
-- fprintf(stderr, progname);
-+ fprintf(stderr, "%s", progname);
- perror(_(": error setting keyboard repeat mode\n"));
- exit(1);
- }
-@@ -160,7 +160,7 @@ int main(int argc, char *argv[])
-
- if (ioctl(fd, KDSKBMODE, mode))
- {
-- fprintf(stderr, progname);
-+ fprintf(stderr, "%s", progname);
- perror(_(": error setting keyboard mode\n"));
- exit(1);
- }
-diff --git a/kbdtools/setmetamode.c b/kbdtools/setmetamode.c
-index 5bed945..0ba7676 100644
---- a/kbdtools/setmetamode.c
-+++ b/kbdtools/setmetamode.c
-@@ -42,7 +42,7 @@ void report(int meta)
- default:
- s = N_("Strange mode for Meta key?\n");
- }
-- printf(_(s));
-+ printf("%s", _(s));
- }
-
- struct meta
---
-2.8.3
-
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/0001-kbdtools-Include-sys-types.h-for-u_char-and-u_short-.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/0001-kbdtools-Include-sys-types.h-for-u_char-and-u_short-.patch
deleted file mode 100644
index 64b5b044dd..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/0001-kbdtools-Include-sys-types.h-for-u_char-and-u_short-.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 0fd5dda51d68e1ec2a87e27b5ed0dff3503b4681 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Dec 2015 08:12:38 +0000
-Subject: [PATCH] kbdtools: Include sys/types.h for u_char and u_short
- definition
-
-on musl this gets exposed since sys/types.h is not
-included via some other indirect inclusion as is the case with glibc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- kbdtools/dumpkeys.c | 1 +
- kbdtools/loadkeys.y | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/kbdtools/dumpkeys.c b/kbdtools/dumpkeys.c
-index 6159d49..c19fb21 100644
---- a/kbdtools/dumpkeys.c
-+++ b/kbdtools/dumpkeys.c
-@@ -26,6 +26,7 @@
- #include <errno.h>
- #include <sysexits.h>
- #include <sys/ioctl.h>
-+#include <sys/types.h>
- #include <linux/types.h>
- #include <linux/kd.h>
- #include <linux/keyboard.h>
-diff --git a/kbdtools/loadkeys.y b/kbdtools/loadkeys.y
-index b6a8e01..4468f77 100644
---- a/kbdtools/loadkeys.y
-+++ b/kbdtools/loadkeys.y
-@@ -71,6 +71,7 @@
- #include <linux/kd.h>
- #include <linux/keyboard.h>
- #include <sys/ioctl.h>
-+#include <sys/types.h>
- #include <ctype.h>
- #include <sysexits.h>
- #include <signal.h>
---
-2.6.4
-
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/Makevars b/meta/recipes-core/console-tools/console-tools-0.3.2/Makevars
deleted file mode 100644
index 32692ab4b9..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/Makevars
+++ /dev/null
@@ -1,41 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
-# package. (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.) Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright. The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Free Software Foundation, Inc.
-
-# This is the email address or URL to which the translators shall report
-# bugs in the untranslated strings:
-# - Strings which are not entire sentences, see the maintainer guidelines
-# in the GNU gettext documentation, section 'Preparing Strings'.
-# - Strings which use unclear terms or require additional context to be
-# understood.
-# - Strings which make invalid assumptions about notation of date, time or
-# money.
-# - Pluralisation problems.
-# - Incorrect English spelling.
-# - Incorrect formatting.
-# It can be your email address, or a mailing list address where translators
-# can write to without being subscribed, or the URL of a web page through
-# which the translators can contact you.
-MSGID_BUGS_ADDRESS =
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used. It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch
deleted file mode 100644
index c287014767..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- console-tools-0.3.2/contrib/codepage.c~codepage
-+++ console-tools-0.3.2/contrib/codepage.c
-@@ -229,7 +229,7 @@
- return 0;
-
- fprintf(stderr, "\
--Warning: CP format is a hack!\n
-+Warning: CP format is a hack!\n\
- The files produced may or may not be usable!\n");
-
- sprintf(outfile, "%d.cp", CPEntryHeader.codepage);
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch
deleted file mode 100644
index c93f511950..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Upstream-Status: Pending
-
---- console-tools-0.3.2/kbdtools/showkey.c~compile 1999-08-25 17:20:08.000000000 -0400
-+++ console-tools-0.3.2/kbdtools/showkey.c 2004-05-09 03:03:23.000000000 -0400
-@@ -264,7 +264,6 @@
- break;
- case cmd_keymap:
- printf(")\n");
-- default:
- }
- }
-
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch
deleted file mode 100644
index 15c100c908..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Upstream-Status: Pending
-
---- console-tools-0.3.2/configure.in~configure
-+++ console-tools-0.3.2/configure.in
-@@ -2,13 +2,14 @@
- dnl Process this file with autoconf to produce a configure script.
-
- # Initialize
--AC_INIT(kbdtools/loadkeys.y)
-+AC_INIT
-+AC_CONFIG_SRCDIR([kbdtools/loadkeys.y])
-
- define(ct_unicodedata_default,/usr/share/unidata/UnicodeData-2.txt)
- ct_localdatadir_default=/usr/local/share # iff --enable-localdatadir without specific dir
-
- #AC_CONFIG_AUX_DIR(autoconf)
--AC_CANONICAL_SYSTEM
-+AC_CANONICAL_TARGET([])
- AM_INIT_AUTOMAKE(console-tools, 0.3.2)
-
- # Defaults
-@@ -25,7 +26,6 @@
- # i18n stuff
- ALL_LINGUAS="cs de ru ga fr"
- AM_GNU_GETTEXT
--AC_OUTPUT_COMMANDS([sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
-
- AC_DEFINE_UNQUOTED(LOCALEDIR, "/usr/share/locale")
-
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/fix-libconsole-linking.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/fix-libconsole-linking.patch
deleted file mode 100644
index be61eb846b..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/fix-libconsole-linking.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Fix the following error detected with i586-pokymllib32-linux-gcc (the
-multilib x86-64 lib32 compiler):
- ../lib/ctutils/.libs/libctutils.so: undefined reference to `get_kernel_sfm'
- collect2: error: ld returned 1 exit status
-
-It seems that libctutils.so (the library that uses get_kernel_sfm) must
-be stated before libconsole.so (the library that exports the function) when
-using multilib gcc
-
-Upstream-Status: Pending
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: console-tools-0.3.2/fontfiletools/Makefile.am
-===================================================================
---- console-tools-0.3.2.orig/fontfiletools/Makefile.am
-+++ console-tools-0.3.2/fontfiletools/Makefile.am
-@@ -10,5 +10,5 @@ EXTRA_DIST = fonts2virfont.c virfont.h
-
- # libconsole is needed by ctutils
- LDADD = ../lib/ctlocal/libctlocal.a ../lib/cfont/libcfont.la \
-- ../lib/console/libconsole.la \
-- ../lib/ctutils/libctutils.la ../lib/generic/libctgeneric.la
-+ ../lib/ctutils/libctutils.la \
-+ ../lib/console/libconsole.la ../lib/generic/libctgeneric.la
-Index: console-tools-0.3.2/vttools/Makefile.am
-===================================================================
---- console-tools-0.3.2.orig/vttools/Makefile.am
-+++ console-tools-0.3.2/vttools/Makefile.am
-@@ -7,9 +7,9 @@ bin_PROGRAMS = chvt deallocvt writevt fg
- vcstime vt-is-UTF8 openvt @RESIZECONS@
- EXTRA_PROGRAMS = resizecons
-
--LDADD = ../lib/ctlocal/libctlocal.a ../lib/console/libconsole.la \
-+LDADD = ../lib/ctlocal/libctlocal.a ../lib/ctutils/libctutils.la \
- ../lib/cfont/libcfont.la \
-- ../lib/ctutils/libctutils.la ../lib/generic/libctgeneric.la
-+ ../lib/console/libconsole.la ../lib/generic/libctgeneric.la
-
- vcstime_LDADD = ../lib/ctlocal/libctlocal.a
- screendump_LDADD = ../lib/ctlocal/libctlocal.a
-Index: console-tools-0.3.2/kbdtools/Makefile.am
-===================================================================
---- console-tools-0.3.2.orig/kbdtools/Makefile.am
-+++ console-tools-0.3.2/kbdtools/Makefile.am
-@@ -15,9 +15,9 @@ EXTRA_PROGRAMS = getkeycodes setkeycodes
- loadkeys_SOURCES = loadkeys.y analyze.l
-
- YFLAGS = -d
--LDADD = ../lib/ctlocal/libctlocal.a ../lib/console/libconsole.la \
-+LDADD = ../lib/ctlocal/libctlocal.a ../lib/ctutils/libctutils.la \
- ../lib/cfont/libcfont.la \
-- ../lib/ctutils/libctutils.la ../lib/generic/libctgeneric.la
-+ ../lib/console/libconsole.la ../lib/generic/libctgeneric.la
-
- loadkeys_LDADD = $(LDADD) @LEXLIB@
-
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch
deleted file mode 100644
index f370be8592..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-Patch from Matthias Goebl <oe@m.goebl.net>
-Added via OE bugtracker: bug #478
-
-Upstream-Status: Pending
-
---- console-tools-0.3.2/kbdtools/kbd_mode.c.orig
-+++ console-tools-0.3.2/kbdtools/kbd_mode.c
-@@ -29,11 +29,16 @@
- OPT("-u --unicode ", _("UTF-8 mode (UNICODE)"));
- OPT("-s --scancode ", _("scancode mode (RAW)"));
- OPT(" --mode={8bit,keycode,unicode,scancode} ", _("set mode"));
-+ OPT("-r --rate=RATE ", _("set repeat rate (default: 33)"));
-+ OPT("-d --delay=DELAY ", _("set repeat delay (default: 250)"));
-
- OPT("-h --help ", HELPDESC);
- OPT("-V --version ", VERSIONDESC);
- }
-
-+int rate=-1;
-+int delay=-1;
-+
- static int parse_cmdline (int argc, char *argv[])
- {
- int mode = -1;
-@@ -46,11 +51,13 @@
- { "mode" , required_argument, NULL, 'm' },
- { "scancode" , no_argument, NULL, 's' },
- { "unicode" , no_argument, NULL, 'u' },
-+ { "rate" , required_argument, NULL, 'r' },
-+ { "delay" , required_argument, NULL, 'd' },
- { NULL, 0, NULL, 0 }
- };
- int c;
-
-- while ( (c = getopt_long (argc, argv, "Vhaksu", long_opts, NULL)) != EOF)
-+ while ( (c = getopt_long (argc, argv, "Vhaksur:d:", long_opts, NULL)) != EOF)
- switch (c) {
- case 'h':
- usage ();
-@@ -58,6 +65,14 @@
- case 'V':
- version ();
- exit(0);
-+ case 'r':
-+ rate = atoi(optarg);
-+ mode = -2;
-+ break;
-+ case 'd':
-+ delay = atoi(optarg);
-+ mode = -2;
-+ break;
- case 'a':
- mode = K_XLATE;
- break;
-@@ -129,6 +144,20 @@
- exit(0);
- }
-
-+ if ( rate != -1 || delay != -1 )
-+ {
-+ struct kbd_repeat kbd_rep;
-+ kbd_rep.delay = delay;
-+ kbd_rep.period = rate;
-+ if (ioctl(fd, KDKBDREP, &kbd_rep))
-+ {
-+ fprintf(stderr, progname);
-+ perror(_(": error setting keyboard repeat mode\n"));
-+ exit(1);
-+ }
-+ if(mode==-2) exit(0);
-+ }
-+
- if (ioctl(fd, KDSKBMODE, mode))
- {
- fprintf(stderr, progname);
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/lcmessage.m4 b/meta/recipes-core/console-tools/console-tools-0.3.2/lcmessage.m4
deleted file mode 100644
index 18d47a94f7..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/lcmessage.m4
+++ /dev/null
@@ -1,24 +0,0 @@
-# Check whether LC_MESSAGES is available in <locale.h>.
-# Ulrich Drepper <drepper@cygnus.com>, 1995.
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License or the GNU Library General Public License but which still want
-# to provide support for the GNU gettext functionality.
-# Please note that the actual code of the GNU gettext library is covered
-# by the GNU Library General Public License, and the rest of the GNU
-# gettext package package is covered by the GNU General Public License.
-# They are *not* in the public domain.
-
-# serial 2
-
-AC_DEFUN([AM_LC_MESSAGES],
- [if test $ac_cv_header_locale_h = yes; then
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES, 1,
- [Define if your <locale.h> file defines LC_MESSAGES.])
- fi
- fi])
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/no-dep-on-libfl.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/no-dep-on-libfl.patch
deleted file mode 100644
index a6735a53ff..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/no-dep-on-libfl.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-No reason to link with libfl since 'loadkeys' implements
-its own yywrap()/yylex() functions.
-
-Upstream-Status: Pending
-Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
-
-Index: console-tools-0.3.2/kbdtools/Makefile.am
-===================================================================
---- console-tools-0.3.2.orig/kbdtools/Makefile.am
-+++ console-tools-0.3.2/kbdtools/Makefile.am
-@@ -19,8 +19,6 @@ LDADD = ../lib/ctlocal/libctlocal.a ../l
- ../lib/cfont/libcfont.la \
- ../lib/console/libconsole.la ../lib/generic/libctgeneric.la
-
--loadkeys_LDADD = $(LDADD) @LEXLIB@
--
- bin_SCRIPTS = mk_modmap
-
- noinst_HEADERS = loadkeys.h
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/nodocs.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/nodocs.patch
deleted file mode 100644
index 2ed609219c..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/nodocs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-The docs need tools we don't have to build so disable them.
-
-Also remove intl since the Makefile doesn't work with 3.82 and we
-don't want to build libintl anyway.
-
-Upstream-Status: Inappropriate [configuration]
-RP 2012/10/17
-
-Index: console-tools-0.3.2/Makefile.am
-===================================================================
---- console-tools-0.3.2.orig/Makefile.am 1999-04-15 01:33:24.000000000 +0000
-+++ console-tools-0.3.2/Makefile.am 2012-10-17 11:48:14.107069145 +0000
-@@ -1,7 +1,7 @@
- # -*- makefile -*-
- AUTOMAKE_OPTIONS = foreign
-
--SUBDIRS = lib fontfiletools vttools kbdtools screenfonttools contrib doc \
-- compat include examples po intl
-+SUBDIRS = lib fontfiletools vttools kbdtools screenfonttools contrib \
-+ compat include examples po
-
- EXTRA_DIST = BUGS RELEASE CREDITS COPYING.kbd local-scripts/* debian/* *.lsm
diff --git a/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch b/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch
deleted file mode 100644
index 0c95068a36..0000000000
--- a/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Fixing the locale issues isn't enough, console-tools also does a couple of
-other pretty stupid things (like FILE *f; f->_fileno instead of fileno(f)),
-
-Upstream-Status: Pending
-
---- console-tools-0.3.2/lib/cfont/fontstruct.c.ark 2005-05-22 19:12:38.000000000 +0000
-+++ console-tools-0.3.2/lib/cfont/fontstruct.c 2005-05-22 19:13:23.000000000 +0000
-@@ -50,8 +50,7 @@
- * get filesize
- */
-
-- /* FIXME: should not use _fileno ! */
-- if (fstat(fontfile->_fileno, &stbuf) == -1)
-+ if (fstat(fileno(fontfile), &stbuf) == -1)
- goto rsf_return_error;
-
- if (S_ISREG(stbuf.st_mode))
-@@ -211,8 +210,7 @@
- * get filesize
- */
-
-- /* FIXME: should not use _fileno ! */
-- if (fstat(fontfile->_fileno, &stbuf) == -1)
-+ if (fstat(fileno(fontfile), &stbuf) == -1)
- goto rfg_return_error;
-
- if (S_ISREG(stbuf.st_mode))
---- console-tools-0.3.2/lib/console/acm.c.ark 2005-05-22 19:17:15.000000000 +0000
-+++ console-tools-0.3.2/lib/console/acm.c 2005-05-22 19:17:23.000000000 +0000
-@@ -30,7 +30,7 @@
- lct_boolean parse_failed = False;
- lct_boolean is_unicode;
-
-- if (fstat(fp->_fileno, &stbuf))
-+ if (fstat(fileno(fp), &stbuf))
- perror(_("Cannot stat ACM file")), exit(1);
-
- /* first try a wg15-charmap (glibc) file format */
---- console-tools-0.3.2/include/lct/local.h.ark 2005-05-22 19:08:54.000000000 +0000
-+++ console-tools-0.3.2/include/lct/local.h 2005-05-22 19:09:12.000000000 +0000
-@@ -8,7 +8,7 @@
- #include <locale.h>
-
-
--#ifdef HAVE_LOCALE_H
-+#if defined(HAVE_LOCALE_H) && defined(HAVE_LIBINTL_H)
- # include <libintl.h>
- # define _(String) gettext (String)
- # ifdef gettext_noop
diff --git a/meta/recipes-core/console-tools/console-tools_0.3.2.bb b/meta/recipes-core/console-tools/console-tools_0.3.2.bb
deleted file mode 100644
index ba44fbe60f..0000000000
--- a/meta/recipes-core/console-tools/console-tools_0.3.2.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "Allows you to set-up and manipulate the Linux console"
-DESCRIPTION = "Provides tools that enable the set-up and manipulation of the linux console and console-font files."
-SECTION = "base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.kbd;md5=9b2d91511d3d80d4d20ac6e6b0137fe9"
-DEPENDS = "flex-native bison-native"
-PR = "r8"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/lct/console-tools-${PV}.tar.gz \
- file://codepage.patch \
- file://configure.patch \
- file://compile.patch \
- file://kbdrate.patch \
- file://uclibc-fileno.patch \
- file://nodocs.patch \
- file://fix-libconsole-linking.patch \
- file://no-dep-on-libfl.patch \
- file://0001-kbdtools-Include-sys-types.h-for-u_char-and-u_short-.patch \
- file://0001-Cover-the-else-with-__GLIBC__.patch \
- file://0001-Fix-format-security-compilation-error.patch \
- file://lcmessage.m4 \
- file://Makevars"
-
-SRC_URI[md5sum] = "bf21564fc38b3af853ef724babddbacd"
-SRC_URI[sha256sum] = "eea6b441672dacd251079fc85ed322e196282e0e66c16303ec64c3a2b1c126c2"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/lct/files/console-tools-devel/"
-UPSTREAM_CHECK_REGEX = "/console-tools-devel/(?P<pver>(\d\d?\.)+\d\d?)/"
-
-inherit autotools gettext update-alternatives
-
-CFLAGS_append_aarch64 = " -D_USE_TERMIOS "
-
-ASNEEDED = ""
-
-do_configure_prepend () {
- mkdir -p ${S}/m4
- cp ${WORKDIR}/lcmessage.m4 ${S}/m4/
- rm -f ${S}/acinclude.m4
- cp ${WORKDIR}/Makevars ${S}/po/
-}
-
-ALTERNATIVE_PRIORITY = "30"
-
-bindir_progs = "chvt deallocvt fgconsole openvt"
-ALTERNATIVE_${PN} = "${bindir_progs}"
-
-RDEPENDS_${PN} = "bash"
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 4a74f619af..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}"
@@ -49,7 +50,7 @@ bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname
env expand expr factor fmt fold groups head hostid id install \
join link logname md5sum mkfifo nl nohup nproc od paste pathchk \
pinky pr printf ptx readlink realpath runcon seq sha1sum sha224sum sha256sum \
- sha384sum sha512sum shred shuf sort split stdbuf sum tac tail tee test timeout \
+ sha384sum sha512sum shred shuf sort split sum tac tail tee test timeout \
tr truncate tsort tty unexpand uniq unlink uptime users vdir wc who whoami yes"
# hostname gets a special treatment and is not included in this
@@ -58,6 +59,21 @@ base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill l
sbindir_progs= "chroot"
+# 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 += "${@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
# be an "Argument list too long" error when it is built in a long/deep
@@ -139,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-glib_0.110.bb b/meta/recipes-core/dbus/dbus-glib_0.110.bb
index 9afbc2b6a1..0b45805cf4 100644
--- a/meta/recipes-core/dbus/dbus-glib_0.110.bb
+++ b/meta/recipes-core/dbus/dbus-glib_0.110.bb
@@ -1,7 +1,7 @@
SUMMARY = "High level language (GLib) binding for D-Bus"
DESCRIPTION = "GLib bindings for the D-Bus message bus that integrate \
the D-Bus library with the GLib thread abstraction and main loop."
-HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
+HOMEPAGE = "https://www.freedesktop.org/Software/dbus"
LICENSE = "AFL-2.1 | GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=cf5b3a2f7083750d504333114e738656 \
file://dbus/dbus-glib.h;beginline=7;endline=21;md5=7755c9d7abccd5dbd25a6a974538bb3c"
@@ -10,7 +10,7 @@ SECTION = "base"
DEPENDS = "expat glib-2.0 virtual/libintl dbus-glib-native dbus"
DEPENDS_class-native = "glib-2.0-native dbus-native"
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
+SRC_URI = "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
file://no-examples.patch \
file://test-install-makefile.patch \
"
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/dbus-1.init b/meta/recipes-core/dbus/dbus/dbus-1.init
index 42c86297c3..90e167e572 100644
--- a/meta/recipes-core/dbus/dbus/dbus-1.init
+++ b/meta/recipes-core/dbus/dbus/dbus-1.init
@@ -21,8 +21,8 @@
DAEMON=@bindir@/dbus-daemon
NAME=dbus
-DAEMONUSER=messagebus # must match /etc/dbus-1/system.conf
-PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf
+DAEMONUSER=messagebus # must match /usr/share/dbus-1/system.conf
+PIDFILE=/var/run/dbus/pid # must match /usr/share/dbus-1/system.conf
UUIDDIR=/var/lib/dbus
DESC="system message bus"
EVENTDIR=/etc/dbus-1/event.d
diff --git a/meta/recipes-core/dbus/dbus/run-ptest b/meta/recipes-core/dbus/dbus/run-ptest
index 48535e13da..d3eec08235 100755
--- a/meta/recipes-core/dbus/dbus/run-ptest
+++ b/meta/recipes-core/dbus/dbus/run-ptest
@@ -19,10 +19,12 @@ files=`ls test/test-*`
for i in $files
do
#these programs are used by testcase test-bus, don't run here
+ #additionally, test-names needs to be run under X
if [ $i = "test/test-service" ] \
|| [ $i = "test/test-shell-service" ] \
|| [ $i = "test/test-segfault" ] \
- || [ $i = "test/test-bus" ]
+ || [ $i = "test/test-bus" ] \
+ || [ $i = "test/test-names" ]
then
continue
fi
diff --git a/meta/recipes-core/dbus/dbus_1.12.16.bb b/meta/recipes-core/dbus/dbus_1.12.20.bb
index 05716608b0..cf6f7dc0ef 100644
--- a/meta/recipes-core/dbus/dbus_1.12.16.bb
+++ b/meta/recipes-core/dbus/dbus_1.12.20.bb
@@ -1,10 +1,10 @@
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 = "http://dbus.freedesktop.org"
+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 = "http://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 ."
@@ -32,7 +23,6 @@ python __anonymous() {
}
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r netdev"
USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
--no-create-home --shell /bin/false \
--user-group messagebus"
@@ -92,26 +82,8 @@ pkg_postinst_dbus() {
fi
}
-EXTRA_OECONF = "--disable-tests \
- --disable-xml-docs \
- --disable-doxygen-docs \
- --disable-libaudit \
- --enable-largefile \
- "
-
-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.22.bb b/meta/recipes-core/ell/ell_0.33.bb
index b3942fc30e..2fa05104fb 100644
--- a/meta/recipes-core/ell/ell_0.22.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] = "a4e7d74404f11e71775b89f53a8f1c33"
-SRC_URI[sha256sum] = "3c1d6d997e17dfcbe4ebcd1331d9a7be5c64f2f0a0813bc223790e570d8da2e3"
+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.8.bb b/meta/recipes-core/expat/expat_2.2.9.bb
index 0ea2edc122..f477f99baf 100644
--- a/meta/recipes-core/expat/expat_2.2.8.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] = "00858041acfea5757af55e6ee6b86231"
-SRC_URI[sha256sum] = "9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102"
+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.19.8.1/add-with-bisonlocaledir.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/add-with-bisonlocaledir.patch
deleted file mode 100644
index 35a131067a..0000000000
--- a/meta/recipes-core/gettext/gettext-0.19.8.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.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch
deleted file mode 100644
index 6af1604198..0000000000
--- a/meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From e546de65a333789e83f5485757967cee29ee3681 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>
----
- gettext-tools/gnulib-lib/libcroco/cr-statement.c | 10 +++++-----
- gettext-tools/gnulib-lib/libxml/timsort.h | 2 +-
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/gettext-tools/gnulib-lib/libcroco/cr-statement.c b/gettext-tools/gnulib-lib/libcroco/cr-statement.c
-index 617520f..100104b 100644
---- a/gettext-tools/gnulib-lib/libcroco/cr-statement.c
-+++ b/gettext-tools/gnulib-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/gettext-tools/gnulib-lib/libxml/timsort.h b/gettext-tools/gnulib-lib/libxml/timsort.h
-index 795f272..443918a 100644
---- a/gettext-tools/gnulib-lib/libxml/timsort.h
-+++ b/gettext-tools/gnulib-lib/libxml/timsort.h
-@@ -323,7 +323,7 @@ static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size)
- SORT_TYPE *tempstore = (SORT_TYPE *)realloc(store->storage, new_size * sizeof(SORT_TYPE));
- if (tempstore == NULL)
- {
-- fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size);
-+ fprintf(stderr, "Error allocating temporary storage for tim sort: need %zu bytes", sizeof(SORT_TYPE) * new_size);
- exit(1);
- }
- store->storage = tempstore;
---
-2.10.2
-
diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/fix-CVE-2018-18751.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/fix-CVE-2018-18751.patch
deleted file mode 100644
index 6dfe200d65..0000000000
--- a/meta/recipes-core/gettext/gettext-0.19.8.1/fix-CVE-2018-18751.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-Upstream-Status: Backport [https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commit;h=dce3a16]
-CVE: CVE-2018-18751
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-From dce3a16e5e9368245735e29bf498dcd5e3e474a4 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno <ueno@gnu.org>
-Date: Thu, 15 Sep 2016 13:57:24 +0200
-Subject: [PATCH] xgettext: Fix crash with *.po file input
-
-When xgettext was given two *.po files with the same msgid_plural, it
-crashed with double-free. Problem reported by Davlet Panech in:
-http://lists.gnu.org/archive/html/bug-gettext/2016-09/msg00001.html
-* gettext-tools/src/po-gram-gen.y: Don't free msgid_pluralform after
-calling do_callback_message, assuming that it takes ownership.
-* gettext-tools/src/read-catalog.c (default_add_message): Free
-msgid_plural after calling message_alloc.
-* gettext-tools/tests/xgettext-po-2: New file.
-* gettext-tools/tests/Makefile.am (TESTS): Add new test.
----
- gettext-tools/src/po-gram-gen.y | 13 ++++-----
- gettext-tools/src/read-catalog.c | 2 ++
- gettext-tools/tests/Makefile.am | 2 +-
- gettext-tools/tests/xgettext-po-2 | 55 +++++++++++++++++++++++++++++++++++++++
- 4 files changed, 63 insertions(+), 9 deletions(-)
- create mode 100755 gettext-tools/tests/xgettext-po-2
-
-diff --git a/gettext-tools/src/po-gram-gen.y b/gettext-tools/src/po-gram-gen.y
-index becf5e6..4428e77 100644
---- a/gettext-tools/src/po-gram-gen.y
-+++ b/gettext-tools/src/po-gram-gen.y
-@@ -221,14 +221,11 @@ message
- check_obsolete ($1, $3);
- check_obsolete ($1, $4);
- if (!$1.obsolete || pass_obsolete_entries)
-- {
-- do_callback_message ($1.ctxt, string2, &$1.pos, $3.string,
-- $4.rhs.msgstr, $4.rhs.msgstr_len, &$4.pos,
-- $1.prev_ctxt,
-- $1.prev_id, $1.prev_id_plural,
-- $1.obsolete);
-- free ($3.string);
-- }
-+ do_callback_message ($1.ctxt, string2, &$1.pos, $3.string,
-+ $4.rhs.msgstr, $4.rhs.msgstr_len, &$4.pos,
-+ $1.prev_ctxt,
-+ $1.prev_id, $1.prev_id_plural,
-+ $1.obsolete);
- else
- {
- free_message_intro ($1);
-diff --git a/gettext-tools/src/read-catalog.c b/gettext-tools/src/read-catalog.c
-index 571d18e..6af6d20 100644
---- a/gettext-tools/src/read-catalog.c
-+++ b/gettext-tools/src/read-catalog.c
-@@ -397,6 +397,8 @@ default_add_message (default_catalog_reader_ty *this,
- appropriate. */
- mp = message_alloc (msgctxt, msgid, msgid_plural, msgstr, msgstr_len,
- msgstr_pos);
-+ if (msgid_plural != NULL)
-+ free (msgid_plural);
- mp->prev_msgctxt = prev_msgctxt;
- mp->prev_msgid = prev_msgid;
- mp->prev_msgid_plural = prev_msgid_plural;
-diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am
-index 23b09b1..0dfb4d8 100644
---- a/gettext-tools/tests/Makefile.am
-+++ b/gettext-tools/tests/Makefile.am
-@@ -95,7 +95,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
- xgettext-perl-1 xgettext-perl-2 xgettext-perl-3 xgettext-perl-4 \
- xgettext-perl-5 xgettext-perl-6 xgettext-perl-7 xgettext-perl-8 \
- xgettext-php-1 xgettext-php-2 xgettext-php-3 xgettext-php-4 \
-- xgettext-po-1 \
-+ xgettext-po-1 xgettext-po-2 \
- xgettext-properties-1 \
- xgettext-python-1 xgettext-python-2 xgettext-python-3 \
- xgettext-python-4 \
-diff --git a/gettext-tools/tests/xgettext-po-2 b/gettext-tools/tests/xgettext-po-2
-new file mode 100755
-index 0000000..c4bd9d0
---- /dev/null
-+++ b/gettext-tools/tests/xgettext-po-2
-@@ -0,0 +1,55 @@
-+#! /bin/sh
-+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
-+
-+# Test PO extractors with multiple input files.
-+
-+cat <<EOF > xg-po-2-1.po
-+msgid "first msgid"
-+msgid_plural "first msgid (plural)"
-+msgstr[0] ""
-+msgstr[1] ""
-+
-+msgid "second msgid"
-+msgid_plural "second msgid (plural)"
-+msgstr[0] ""
-+msgstr[1] ""
-+EOF
-+
-+cat <<EOF > xg-po-2-2.po
-+msgid "third msgid"
-+msgid_plural "third msgid (plural)"
-+msgstr[0] ""
-+msgstr[1] ""
-+
-+msgid "second msgid"
-+msgid_plural "second msgid (plural)"
-+msgstr[0] ""
-+msgstr[1] ""
-+EOF
-+
-+: ${XGETTEXT=xgettext}
-+${XGETTEXT} --omit-header xg-po-2-1.po xg-po-2-2.po -o xg-po-2.tmp.po || Exit 1
-+LC_ALL=C tr -d '\r' < xg-po-2.tmp.po > xg-po-2.po || Exit 1
-+
-+cat <<EOF > xg-po-2.ok
-+msgid "first msgid"
-+msgid_plural "first msgid (plural)"
-+msgstr[0] ""
-+msgstr[1] ""
-+
-+msgid "second msgid"
-+msgid_plural "second msgid (plural)"
-+msgstr[0] ""
-+msgstr[1] ""
-+
-+msgid "third msgid"
-+msgid_plural "third msgid (plural)"
-+msgstr[0] ""
-+msgstr[1] ""
-+EOF
-+
-+: ${DIFF=diff}
-+${DIFF} xg-po-2.ok xg-po-2.po
-+result=$?
-+
-+exit $result
---
-1.9.1
-
diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch
deleted file mode 100644
index c8e2c94af0..0000000000
--- a/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-instal libgettextlib.a before removing it
-
-In a multiple job build, Makefile can simultaneously
-be installing and removing libgettextlib.a. We serialize
-the operations.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <jslater@windriver.com>
-
---- a/gettext-tools/gnulib-lib/Makefile.am
-+++ b/gettext-tools/gnulib-lib/Makefile.am
-@@ -57,6 +57,10 @@ endif
- # Rules generated and collected by gnulib-tool.
- include Makefile.gnulib
-
-+# defined in Makefile.gnulib but missing this dependency
-+#
-+install-exec-clean: install-libLTLIBRARIES
-+
- # Which classes to export from the shared library.
- MOOPPFLAGS += --dllexport=styled_ostream
-
diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch b/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch
deleted file mode 100644
index 6156a153f7..0000000000
--- a/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch
+++ /dev/null
@@ -1,321 +0,0 @@
-For reasons which I just can't fathom gnulib doesn't use the expected tools to
-find libraries but badly reinvents the wheel. This will trivially lead to host
-contamination (explicit searches of /usr/lib) or incorrect RPATHs (bad
-canonicalisation resulting in relative paths).
-
-Simply delete all the crazy, and replace with a single call to pkg-config.
-
-Upstream-Status: Inappropriate (upstream still refuse to consider pkg-config)
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/gnulib-local/m4/libcroco.m4 b/gnulib-local/m4/libcroco.m4
-index f79ea82f1..1f67274db 100644
---- a/gettext-tools/gnulib-m4/libcroco.m4
-+++ b/gettext-tools/gnulib-m4/libcroco.m4
-@@ -8,6 +8,7 @@ dnl From Bruno Haible.
-
- AC_DEFUN([gl_LIBCROCO],
- [
-+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
- dnl libcroco depends on libglib.
- AC_REQUIRE([gl_LIBGLIB])
-
-@@ -23,65 +24,10 @@ AC_DEFUN([gl_LIBCROCO],
- LTLIBCROCO=
- INCCROCO=
- if test "$gl_cv_libcroco_use_included" != yes; then
-- dnl Figure out whether we can use a preinstalled libcroco-0.6, or have to
-- dnl use the included one.
-- AC_CACHE_VAL([gl_cv_libcroco], [
-- gl_cv_libcroco=no
-- gl_cv_LIBCROCO=
-- gl_cv_LTLIBCROCO=
-- gl_cv_INCCROCO=
-- gl_save_LIBS="$LIBS"
-- dnl Search for libcroco and define LIBCROCO_0_6, LTLIBCROCO_0_6 and
-- dnl INCCROCO_0_6 accordingly.
-- dnl Don't use croco-0.6-config nor pkg-config, since it doesn't work when
-- dnl cross-compiling or when the C compiler in use is different from the
-- dnl one that built the library.
-- AC_LIB_LINKFLAGS_BODY([croco-0.6], [glib-2.0])
-- LIBS="$gl_save_LIBS $LIBCROCO_0_6"
-- AC_TRY_LINK([#include <libcroco-config.h>],
-- [const char *version = LIBCROCO_VERSION; return !version;],
-- [gl_cv_libcroco=yes
-- gl_cv_LIBCROCO="$LIBCROCO_0_6"
-- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
-- ])
-- if test "$gl_cv_libcroco" != yes; then
-- gl_save_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS $INCCROCO_0_6"
-- AC_TRY_LINK([#include <libcroco-config.h>],
-- [const char *version = LIBCROCO_VERSION; return !version;],
-- [gl_cv_libcroco=yes
-- gl_cv_LIBCROCO="$LIBCROCO_0_6"
-- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
-- gl_cv_INCCROCO="$INCCROCO_0_6"
-- ])
-- if test "$gl_cv_libcroco" != yes; then
-- dnl Often the include files are installed in
-- dnl /usr/include/libcroco-0.6/libcroco.
-- AC_TRY_LINK([#include <libcroco-0.6/libcroco/libcroco-config.h>],
-- [const char *version = LIBCROCO_VERSION; return !version;],
-- [gl_ABSOLUTE_HEADER([libcroco-0.6/libcroco/libcroco-config.h])
-- libcroco_include_dir=`echo "$gl_cv_absolute_libcroco_0_6_libcroco_libcroco_config_h" | sed -e 's,.libcroco-config\.h$,,'`
-- if test -d "$libcroco_include_dir"; then
-- gl_cv_libcroco=yes
-- gl_cv_LIBCROCO="$LIBCROCO_0_6"
-- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
-- gl_cv_INCCROCO="-I$libcroco_include_dir"
-- fi
-- ])
-- fi
-- CPPFLAGS="$gl_save_CPPFLAGS"
-- fi
-- LIBS="$gl_save_LIBS"
-- ])
-- AC_MSG_CHECKING([for libcroco])
-- AC_MSG_RESULT([$gl_cv_libcroco])
-- if test $gl_cv_libcroco = yes; then
-- LIBCROCO="$gl_cv_LIBCROCO"
-- LTLIBCROCO="$gl_cv_LTLIBCROCO"
-- INCCROCO="$gl_cv_INCCROCO"
-- else
-- gl_cv_libcroco_use_included=yes
-- fi
-+ PKG_CHECK_MODULES([CROCO], [libcroco-0.6])
-+ LIBCROCO=$CROCO_LIBS
-+ LTLIBCROCO=$CROCO_LIBS
-+ INCCROCO=$CROCO_CFLAGS
- fi
- AC_SUBST([LIBCROCO])
- AC_SUBST([LTLIBCROCO])
-diff --git a/gnulib-local/m4/libglib.m4 b/gnulib-local/m4/libglib.m4
-index 42e55e6fd..ab25a5b22 100644
---- a/gettext-tools/gnulib-m4/libglib.m4
-+++ b/gettext-tools/gnulib-m4/libglib.m4
-@@ -8,6 +8,7 @@ dnl From Bruno Haible.
-
- AC_DEFUN([gl_LIBGLIB],
- [
-+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
- AC_MSG_CHECKING([whether included glib is requested])
- AC_ARG_WITH([included-glib],
- [ --with-included-glib use the glib2 included here],
-@@ -20,76 +21,10 @@ AC_DEFUN([gl_LIBGLIB],
- LTLIBGLIB=
- INCGLIB=
- if test "$gl_cv_libglib_use_included" != yes; then
-- dnl Figure out whether we can use a preinstalled libglib-2.0, or have to use
-- dnl the included one.
-- AC_CACHE_VAL([gl_cv_libglib], [
-- gl_cv_libglib=no
-- gl_cv_LIBGLIB=
-- gl_cv_LTLIBGLIB=
-- gl_cv_INCGLIB=
-- gl_save_LIBS="$LIBS"
-- dnl Search for libglib2 and define LIBGLIB_2_0, LTLIBGLIB_2_0 and
-- dnl INCGLIB_2_0 accordingly.
-- dnl Don't use glib-config nor pkg-config, since it doesn't work when
-- dnl cross-compiling or when the C compiler in use is different from the
-- dnl one that built the library.
-- AC_LIB_LINKFLAGS_BODY([glib-2.0])
-- LIBS="$gl_save_LIBS $LIBGLIB_2_0"
-- AC_TRY_LINK([#include <glib.h>
--#ifndef G_BEGIN_DECLS
--error this glib.h includes a glibconfig.h from a glib version 1.x
--#endif
--],
-- [g_string_new ("foo");],
-- [gl_cv_libglib=yes
-- gl_cv_LIBGLIB="$LIBGLIB_2_0"
-- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
-- ])
-- if test "$gl_cv_libglib" != yes; then
-- gl_save_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS $INCGLIB_2_0"
-- AC_TRY_LINK([#include <glib.h>
--#ifndef G_BEGIN_DECLS
--error this glib.h includes a glibconfig.h from a glib version 1.x
--#endif
--],
-- [g_string_new ("foo");],
-- [gl_cv_libglib=yes
-- gl_cv_LIBGLIB="$LIBGLIB_2_0"
-- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
-- gl_cv_INCGLIB="$INCGLIB_2_0"
-- ])
-- if test "$gl_cv_libglib" != yes; then
-- dnl Often the include files are installed in /usr/include/glib-2.0
-- dnl and /usr/lib/glib-2.0/include.
-- if test -n "$LIBGLIB_2_0_PREFIX"; then
-- CPPFLAGS="$gl_save_CPPFLAGS -I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include"
-- AC_TRY_LINK([#include <glib.h>
--#ifndef G_BEGIN_DECLS
--error this glib.h includes a glibconfig.h from a glib version 1.x
--#endif
--],
-- [g_string_new ("foo");],
-- [gl_cv_libglib=yes
-- gl_cv_LIBGLIB="$LIBGLIB_2_0"
-- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
-- gl_cv_INCGLIB="-I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include"
-- ])
-- fi
-- fi
-- CPPFLAGS="$gl_save_CPPFLAGS"
-- fi
-- LIBS="$gl_save_LIBS"
-- ])
-- AC_MSG_CHECKING([for glib])
-- AC_MSG_RESULT([$gl_cv_libglib])
-- if test $gl_cv_libglib = yes; then
-- LIBGLIB="$gl_cv_LIBGLIB"
-- LTLIBGLIB="$gl_cv_LTLIBGLIB"
-- INCGLIB="$gl_cv_INCGLIB"
-- else
-- gl_cv_libglib_use_included=yes
-- fi
-+ PKG_CHECK_MODULES([GLIB], [glib-2.0])
-+ LIBGLIB="$GLIB_LIBS"
-+ LTLIBGLIB="$GLIB_LIBS"
-+ INCGLIB="$GLIB_CFLAGS"
- fi
- AC_SUBST([LIBGLIB])
- AC_SUBST([LTLIBGLIB])
-diff --git a/gnulib-local/m4/libxml.m4 b/gnulib-local/m4/libxml.m4
-index 480c700d2..cb39309d5 100644
---- a/gettext-tools/gnulib-m4/libxml.m4
-+++ b/gettext-tools/gnulib-m4/libxml.m4
-@@ -8,6 +8,7 @@ dnl From Bruno Haible.
-
- AC_DEFUN([gl_LIBXML],
- [
-+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
- AC_REQUIRE([AM_ICONV_LINK])
-
- AC_MSG_CHECKING([whether included libxml is requested])
-@@ -22,100 +22,10 @@ AC_DEFUN([gl_LIBXML],
- LTLIBXML=
- INCXML=
- if test "$gl_cv_libxml_use_included" != yes; then
-- dnl Figure out whether we can use a preinstalled libxml2, or have to use
-- dnl the included one.
-- AC_CACHE_VAL([gl_cv_libxml], [
-- gl_cv_libxml=no
-- gl_cv_LIBXML=
-- gl_cv_LTLIBXML=
-- gl_cv_INCXML=
-- gl_save_LIBS="$LIBS"
-- LIBS="$LIBS $LIBICONV"
-- dnl Search for libxml2 and define LIBXML2, LTLIBXML2 and INCXML2
-- dnl accordingly.
-- dnl Don't use xml2-config nor pkg-config, since it doesn't work when
-- dnl cross-compiling or when the C compiler in use is different from the
-- dnl one that built the library.
-- dnl Use a test program that tries to invoke xmlFree. On Cygwin 1.7.x,
-- dnl libxml2 is built in such a way that uses of xmlFree work fine with
-- dnl -Wl,--enable-auto-import but lead to a link error with
-- dnl -Wl,--disable-auto-import.
-- AC_LIB_LINKFLAGS_BODY([xml2])
-- LIBS="$gl_save_LIBS $LIBXML2 $LIBICONV"
-- AC_TRY_LINK([#include <libxml/xmlversion.h>
-- #include <libxml/xmlmemory.h>
-- #include <libxml/xpath.h>
-- ],
-- [xmlCheckVersion (0);
-- xmlFree ((void *) 0);
-- xmlXPathSetContextNode ((void *)0, (void *)0);
-- ],
-- [gl_cv_libxml=yes
-- gl_cv_LIBXML="$LIBXML2 $LIBICONV"
-- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
-- ])
-- if test "$gl_cv_libxml" != yes; then
-- gl_save_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS $INCXML2"
-- AC_TRY_LINK([#include <libxml/xmlversion.h>
-- #include <libxml/xmlmemory.h>
-- #include <libxml/xpath.h>
-- ],
-- [xmlCheckVersion (0);
-- xmlFree ((void *) 0);
-- xmlXPathSetContextNode ((void *)0, (void *)0);
-- ],
-- [gl_cv_libxml=yes
-- gl_cv_LIBXML="$LIBXML2 $LIBICONV"
-- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
-- gl_cv_INCXML="$INCXML2"
-- ])
-- if test "$gl_cv_libxml" != yes; then
-- dnl Often the include files are installed in /usr/include/libxml2.
-- dnl In libxml2-2.5, <libxml/xmlversion.h> is self-contained.
-- dnl In libxml2-2.6, it includes <libxml/xmlexports.h> which is
-- dnl self-contained.
-- libxml2_include_dir=
-- AC_TRY_CPP([#include <libxml2/libxml/xmlexports.h>],
-- [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlexports.h])
-- libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlexports_h" | sed -e 's,.libxml.xmlexports\.h$,,'`
-- ])
-- if test -z "$libxml2_include_dir"; then
-- AC_TRY_CPP([#include <libxml2/libxml/xmlversion.h>],
-- [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlversion.h])
-- libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlversion_h" | sed -e 's,.libxml.xmlversion\.h$,,'`
-- ])
-- fi
-- if test -n "$libxml2_include_dir" && test -d "$libxml2_include_dir"; then
-- CPPFLAGS="$gl_save_CPPFLAGS -I$libxml2_include_dir"
-- AC_TRY_LINK([#include <libxml/xmlversion.h>
-- #include <libxml/xmlmemory.h>
-- #include <libxml/xpath.h>
-- ],
-- [xmlCheckVersion (0);
-- xmlFree ((void *) 0);
-- xmlXPathSetContextNode ((void *)0, (void *)0);
-- ],
-- [gl_cv_libxml=yes
-- gl_cv_LIBXML="$LIBXML2 $LIBICONV"
-- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
-- gl_cv_INCXML="-I$libxml2_include_dir"
-- ])
-- fi
-- fi
-- CPPFLAGS="$gl_save_CPPFLAGS"
-- fi
-- LIBS="$gl_save_LIBS"
-- ])
-- AC_MSG_CHECKING([for libxml])
-- AC_MSG_RESULT([$gl_cv_libxml])
-- if test $gl_cv_libxml = yes; then
-- LIBXML="$gl_cv_LIBXML"
-- LTLIBXML="$gl_cv_LTLIBXML"
-- INCXML="$gl_cv_INCXML"
-- else
-- gl_cv_libxml_use_included=yes
-- fi
-+ PKG_CHECK_MODULES([XML], [libxml-2.0])
-+ LIBXML=$XML_LIBS
-+ LTLIBXML=$XML_LIBS
-+ INCXML=$XML_CFLAGS
- fi
- AC_SUBST([LIBXML])
- AC_SUBST([LTLIBXML])
-diff --git a/gnulib-local/lib/term-styled-ostream.oo.c b/gnulib-local/lib/term-styled-ostream.oo.c
-index 81a407467..218565329 100644
---- a/gettext-tools/gnulib-lib/term-styled-ostream.oo.c
-+++ b/gettext-tools/gnulib-lib/term-styled-ostream.oo.c
-@@ -25,4 +25,4 @@
--#include <cr-om-parser.h>
--#include <cr-sel-eng.h>
--#include <cr-style.h>
--#include <cr-rgb.h>
-+#include <libcroco/cr-om-parser.h>
-+#include <libcroco/cr-sel-eng.h>
-+#include <libcroco/cr-style.h>
-+#include <libcroco/cr-rgb.h>
-@@ -31 +31 @@
--# include <cr-fonts.h>
-+# include <libcroco/cr-fonts.h>
-@@ -33 +33 @@
--#include <cr-string.h>
-+#include <libcroco/cr-string.h>
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.21/0001-tests-autopoint-3-unset-MAKEFLAGS.patch b/meta/recipes-core/gettext/gettext-0.21/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
new file mode 100644
index 0000000000..b0bc6b97a6
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.21/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
@@ -0,0 +1,26 @@
+From 38b256e5aa7dfeb42acffd89565e53a2c0bab3e3 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 7 Jan 2020 16:44:38 +0100
+Subject: [PATCH] tests/autopoint-3: unset MAKEFLAGS
+
+This is needed when running ptests, as the MAKEFLAGS value (set up by run-ptest)
+is messing up the test.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gettext-tools/tests/autopoint-3 | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/gettext-tools/tests/autopoint-3 b/gettext-tools/tests/autopoint-3
+index e13552b..55188df 100755
+--- a/gettext-tools/tests/autopoint-3
++++ b/gettext-tools/tests/autopoint-3
+@@ -126,6 +126,7 @@ test $? = 0 || { cat autopoint.err; Exit 1; }
+ ${CONFIG_SHELL} ./configure >/dev/null 2>autpoint.err
+ test $? = 0 || { cat autopoint.err; Exit 1; }
+
++unset MAKEFLAGS
+ ${MAKE} >/dev/null 2>autopoint.err
+ test $? = 0 || { cat autopoint.err; Exit 1; }
+
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.21/parallel.patch b/meta/recipes-core/gettext/gettext-0.21/parallel.patch
new file mode 100644
index 0000000000..d96a376b7d
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.21/parallel.patch
@@ -0,0 +1,32 @@
+From 4a2a0a93b469093b60ffd0bec55d33d1e03d4713 Mon Sep 17 00:00:00 2001
+From: Joe Slater <jslater@windriver.com>
+Date: Thu, 7 Jun 2012 16:37:01 -0700
+Subject: [PATCH] instal libgettextlib.a before removing it
+
+In a multiple job build, Makefile can simultaneously
+be installing and removing libgettextlib.a. We serialize
+the operations.
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <jslater@windriver.com>
+
+---
+ gettext-tools/gnulib-lib/Makefile.am | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/gettext-tools/gnulib-lib/Makefile.am b/gettext-tools/gnulib-lib/Makefile.am
+index 2126699..d2dd7e4 100644
+--- a/gettext-tools/gnulib-lib/Makefile.am
++++ b/gettext-tools/gnulib-lib/Makefile.am
+@@ -58,6 +58,10 @@ endif
+ # Rules generated and collected by gnulib-tool.
+ include Makefile.gnulib
+
++# defined in Makefile.gnulib but missing this dependency
++#
++install-exec-clean: install-libLTLIBRARIES
++
+ # OS/2 does not support a DLL name longer than 8 characters.
+ if OS2
+ libgettextlib_la_LDFLAGS += -os2dllname gtlib
diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/run-ptest b/meta/recipes-core/gettext/gettext-0.21/run-ptest
index f17f3c87a7..f17f3c87a7 100644
--- a/meta/recipes-core/gettext/gettext-0.19.8.1/run-ptest
+++ b/meta/recipes-core/gettext/gettext-0.21/run-ptest
diff --git a/meta/recipes-core/gettext/gettext-0.19.8.1/serial-tests-config.patch b/meta/recipes-core/gettext/gettext-0.21/serial-tests-config.patch
index 31ff9138a9..93f7c03334 100644
--- a/meta/recipes-core/gettext/gettext-0.19.8.1/serial-tests-config.patch
+++ b/meta/recipes-core/gettext/gettext-0.21/serial-tests-config.patch
@@ -1,4 +1,4 @@
-From c4b1f3a0c7b7c40b343be9b95deb84e0485643be Mon Sep 17 00:00:00 2001
+From ed64a5724ef7d6eb4e9a876f817ea266a536e195 Mon Sep 17 00:00:00 2001
From: "Hongjun.Yang" <hongjun.yang@windriver.com>
Date: Thu, 28 Jul 2016 12:36:15 +0800
Subject: [PATCH] fix for ptest
@@ -8,6 +8,7 @@ Add serial-tests support, ptest need it
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
---
configure.ac | 2 +-
gettext-runtime/configure.ac | 2 +-
@@ -15,24 +16,24 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 5e996fa..880581f 100644
+index 38db6fd..f019ae0 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -23,7 +23,7 @@ AC_INIT([gettext],
- [bug-gnu-gettext@gnu.org])
+@@ -22,7 +22,7 @@ AC_INIT([gettext],
+ [bug-gettext@gnu.org])
AC_CONFIG_SRCDIR([gettext-tools/src/msgfmt.c])
AC_CONFIG_AUX_DIR([build-aux])
--AM_INIT_AUTOMAKE([1.13 silent-rules parallel-tests dist-xz dist-lzip])
-+AM_INIT_AUTOMAKE([1.13 silent-rules serial-tests dist-xz dist-lzip])
+-AM_INIT_AUTOMAKE([1.13 silent-rules parallel-tests tar-ustar])
++AM_INIT_AUTOMAKE([1.13 silent-rules serial-tests tar-ustar])
dnl Override automake's tar command used for creating distributions.
- am__tar='${AMTAR} chof - --owner=root --group=root "$$tardir"'
+ am__tar='${AMTAR} chf - --format=ustar --owner=root --group=root "$$tardir"'
diff --git a/gettext-runtime/configure.ac b/gettext-runtime/configure.ac
-index e9299b6..d4f5528 100644
+index de203e7..138a07f 100644
--- a/gettext-runtime/configure.ac
+++ b/gettext-runtime/configure.ac
@@ -22,7 +22,7 @@ AC_INIT([gettext-runtime],
- [bug-gnu-gettext@gnu.org])
+ [bug-gettext@gnu.org])
AC_CONFIG_SRCDIR([intl/dcigettext.c])
AC_CONFIG_AUX_DIR([../build-aux])
-AM_INIT_AUTOMAKE([1.11.1 silent-rules parallel-tests])
@@ -41,11 +42,11 @@ index e9299b6..d4f5528 100644
dnl Installation directories.
diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac
-index 920eeb6..c507434 100644
+index cf1dd73..b544d6d 100644
--- a/gettext-tools/configure.ac
+++ b/gettext-tools/configure.ac
@@ -22,7 +22,7 @@ AC_INIT([gettext-tools],
- [bug-gnu-gettext@gnu.org])
+ [bug-gettext@gnu.org])
AC_CONFIG_SRCDIR([src/msgfmt.c])
AC_CONFIG_AUX_DIR([../build-aux])
-AM_INIT_AUTOMAKE([1.11.1 silent-rules parallel-tests])
@@ -53,6 +54,3 @@ index 920eeb6..c507434 100644
AC_CONFIG_HEADERS([config.h])
dnl Installation directories.
---
-2.1.4
-
diff --git a/meta/recipes-core/gettext/gettext-0.21/use-pkgconfig.patch b/meta/recipes-core/gettext/gettext-0.21/use-pkgconfig.patch
new file mode 100644
index 0000000000..fc77feb270
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.21/use-pkgconfig.patch
@@ -0,0 +1,699 @@
+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
+
+For reasons which I just can't fathom gnulib doesn't use the expected tools to
+find libraries but badly reinvents the wheel. This will trivially lead to host
+contamination (explicit searches of /usr/lib) or incorrect RPATHs (bad
+canonicalisation resulting in relative paths).
+
+Simply delete all the crazy, and replace with a single call to pkg-config.
+
+Upstream-Status: Inappropriate [upstream still refuse to consider pkg-config]
+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 +--
+ libtextstyle/gnulib-local/m4/libcroco.m4 | 99 +++--------------
+ libtextstyle/gnulib-local/m4/libglib.m4 | 100 +++---------------
+ libtextstyle/gnulib-m4/libcroco.m4 | 99 +++--------------
+ 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 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)
+ dnl forces the use of the included or an external libxml.
+ AC_DEFUN([gl_LIBXML],
+ [
++ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ AC_REQUIRE([AM_ICONV_LINK])
+
+ ifelse([$1], , [
+@@ -30,100 +31,10 @@ AC_DEFUN([gl_LIBXML],
+ INCXML=
+ ifelse([$1], [yes], , [
+ if test "$gl_cv_libxml_use_included" != yes; then
+- dnl Figure out whether we can use a preinstalled libxml2, or have to use
+- dnl the included one.
+- AC_CACHE_VAL([gl_cv_libxml], [
+- gl_cv_libxml=no
+- gl_cv_LIBXML=
+- gl_cv_LTLIBXML=
+- gl_cv_INCXML=
+- gl_save_LIBS="$LIBS"
+- LIBS="$LIBS $LIBICONV"
+- dnl Search for libxml2 and define LIBXML2, LTLIBXML2 and INCXML2
+- dnl accordingly.
+- dnl Don't use xml2-config nor pkg-config, since it doesn't work when
+- dnl cross-compiling or when the C compiler in use is different from the
+- dnl one that built the library.
+- dnl Use a test program that tries to invoke xmlFree. On Cygwin 1.7.x,
+- dnl libxml2 is built in such a way that uses of xmlFree work fine with
+- dnl -Wl,--enable-auto-import but lead to a link error with
+- dnl -Wl,--disable-auto-import.
+- AC_LIB_LINKFLAGS_BODY([xml2])
+- LIBS="$gl_save_LIBS $LIBXML2 $LIBICONV"
+- AC_TRY_LINK([#include <libxml/xmlversion.h>
+- #include <libxml/xmlmemory.h>
+- #include <libxml/xpath.h>
+- ],
+- [xmlCheckVersion (0);
+- xmlFree ((void *) 0);
+- xmlXPathSetContextNode ((void *)0, (void *)0);
+- ],
+- [gl_cv_libxml=yes
+- gl_cv_LIBXML="$LIBXML2 $LIBICONV"
+- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
+- ])
+- if test "$gl_cv_libxml" != yes; then
+- gl_save_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS $INCXML2"
+- AC_TRY_LINK([#include <libxml/xmlversion.h>
+- #include <libxml/xmlmemory.h>
+- #include <libxml/xpath.h>
+- ],
+- [xmlCheckVersion (0);
+- xmlFree ((void *) 0);
+- xmlXPathSetContextNode ((void *)0, (void *)0);
+- ],
+- [gl_cv_libxml=yes
+- gl_cv_LIBXML="$LIBXML2 $LIBICONV"
+- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
+- gl_cv_INCXML="$INCXML2"
+- ])
+- if test "$gl_cv_libxml" != yes; then
+- dnl Often the include files are installed in /usr/include/libxml2.
+- dnl In libxml2-2.5, <libxml/xmlversion.h> is self-contained.
+- dnl In libxml2-2.6, it includes <libxml/xmlexports.h> which is
+- dnl self-contained.
+- libxml2_include_dir=
+- AC_TRY_CPP([#include <libxml2/libxml/xmlexports.h>],
+- [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlexports.h])
+- libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlexports_h" | sed -e 's,.libxml.xmlexports\.h$,,'`
+- ])
+- if test -z "$libxml2_include_dir"; then
+- AC_TRY_CPP([#include <libxml2/libxml/xmlversion.h>],
+- [gl_ABSOLUTE_HEADER([libxml2/libxml/xmlversion.h])
+- libxml2_include_dir=`echo "$gl_cv_absolute_libxml2_libxml_xmlversion_h" | sed -e 's,.libxml.xmlversion\.h$,,'`
+- ])
+- fi
+- if test -n "$libxml2_include_dir" && test -d "$libxml2_include_dir"; then
+- CPPFLAGS="$gl_save_CPPFLAGS -I$libxml2_include_dir"
+- AC_TRY_LINK([#include <libxml/xmlversion.h>
+- #include <libxml/xmlmemory.h>
+- #include <libxml/xpath.h>
+- ],
+- [xmlCheckVersion (0);
+- xmlFree ((void *) 0);
+- xmlXPathSetContextNode ((void *)0, (void *)0);
+- ],
+- [gl_cv_libxml=yes
+- gl_cv_LIBXML="$LIBXML2 $LIBICONV"
+- gl_cv_LTLIBXML="$LTLIBXML2 $LTLIBICONV"
+- gl_cv_INCXML="-I$libxml2_include_dir"
+- ])
+- fi
+- fi
+- CPPFLAGS="$gl_save_CPPFLAGS"
+- fi
+- LIBS="$gl_save_LIBS"
+- ])
+- AC_MSG_CHECKING([for libxml])
+- AC_MSG_RESULT([$gl_cv_libxml])
+- if test $gl_cv_libxml = yes; then
+- LIBXML="$gl_cv_LIBXML"
+- LTLIBXML="$gl_cv_LTLIBXML"
+- INCXML="$gl_cv_INCXML"
+- else
+- gl_cv_libxml_use_included=yes
+- fi
++ PKG_CHECK_MODULES([XML], [libxml-2.0])
++ LIBXML=$XML_LIBS
++ LTLIBXML=$XML_LIBS
++ INCXML=$XML_CFLAGS
+ fi
+ ])
+ 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 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 @@
+
+ #include <stdlib.h>
+
+-#include <cr-om-parser.h>
+-#include <cr-sel-eng.h>
+-#include <cr-style.h>
+-#include <cr-rgb.h>
++#include <libcroco/cr-om-parser.h>
++#include <libcroco/cr-sel-eng.h>
++#include <libcroco/cr-style.h>
++#include <libcroco/cr-rgb.h>
+ /* <cr-fonts.h> has a broken double-inclusion guard in libcroco-0.6.1. */
+ #ifndef __CR_FONTS_H__
+-# include <cr-fonts.h>
++# include <libcroco/cr-fonts.h>
+ #endif
+-#include <cr-string.h>
++#include <libcroco/cr-string.h>
+
+ #include "term-ostream.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
++++ b/libtextstyle/gnulib-local/m4/libcroco.m4
+@@ -1,99 +1,34 @@
+-# libcroco.m4 serial 3
+-dnl Copyright (C) 2006-2007, 2019 Free Software Foundation, Inc.
++# libcroco.m4 serial 2 (gettext-0.17)
++dnl Copyright (C) 2006, 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.
+
+ dnl From Bruno Haible.
+
+-dnl gl_LIBCROCO
+-dnl gives the user the option to decide whether to use the included or
+-dnl an external libcroco.
+-dnl gl_LIBCROCO(FORCE-INCLUDED)
+-dnl forces the use of the included or an external libcroco.
+ AC_DEFUN([gl_LIBCROCO],
+ [
+- ifelse([$1], [yes], , [
+- dnl libcroco depends on libglib.
+- AC_REQUIRE([gl_LIBGLIB])
+- ])
++ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
++ dnl libcroco depends on libglib.
++ AC_REQUIRE([gl_LIBGLIB])
+
+- ifelse([$1], , [
+- AC_MSG_CHECKING([whether included libcroco is requested])
+- AC_ARG_WITH([included-libcroco],
+- [ --with-included-libcroco use the libcroco included here],
+- [gl_cv_libcroco_force_included=$withval],
+- [gl_cv_libcroco_force_included=no])
+- AC_MSG_RESULT([$gl_cv_libcroco_force_included])
+- ], [gl_cv_libcroco_force_included=$1])
++ AC_MSG_CHECKING([whether included libcroco is requested])
++ AC_ARG_WITH([included-libcroco],
++ [ --with-included-libcroco use the libcroco included here],
++ [gl_cv_libcroco_force_included=$withval],
++ [gl_cv_libcroco_force_included=no])
++ AC_MSG_RESULT([$gl_cv_libcroco_force_included])
+
+ gl_cv_libcroco_use_included="$gl_cv_libcroco_force_included"
+ LIBCROCO=
+ LTLIBCROCO=
+ INCCROCO=
+- ifelse([$1], [yes], , [
+- if test "$gl_cv_libcroco_use_included" != yes; then
+- dnl Figure out whether we can use a preinstalled libcroco-0.6, or have to
+- dnl use the included one.
+- AC_CACHE_VAL([gl_cv_libcroco], [
+- gl_cv_libcroco=no
+- gl_cv_LIBCROCO=
+- gl_cv_LTLIBCROCO=
+- gl_cv_INCCROCO=
+- gl_save_LIBS="$LIBS"
+- dnl Search for libcroco and define LIBCROCO_0_6, LTLIBCROCO_0_6 and
+- dnl INCCROCO_0_6 accordingly.
+- dnl Don't use croco-0.6-config nor pkg-config, since it doesn't work when
+- dnl cross-compiling or when the C compiler in use is different from the
+- dnl one that built the library.
+- AC_LIB_LINKFLAGS_BODY([croco-0.6], [glib-2.0])
+- LIBS="$gl_save_LIBS $LIBCROCO_0_6"
+- AC_TRY_LINK([#include <libcroco-config.h>],
+- [const char *version = LIBCROCO_VERSION; return !version;],
+- [gl_cv_libcroco=yes
+- gl_cv_LIBCROCO="$LIBCROCO_0_6"
+- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
+- ])
+- if test "$gl_cv_libcroco" != yes; then
+- gl_save_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS $INCCROCO_0_6"
+- AC_TRY_LINK([#include <libcroco-config.h>],
+- [const char *version = LIBCROCO_VERSION; return !version;],
+- [gl_cv_libcroco=yes
+- gl_cv_LIBCROCO="$LIBCROCO_0_6"
+- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
+- gl_cv_INCCROCO="$INCCROCO_0_6"
+- ])
+- if test "$gl_cv_libcroco" != yes; then
+- dnl Often the include files are installed in
+- dnl /usr/include/libcroco-0.6/libcroco.
+- AC_TRY_LINK([#include <libcroco-0.6/libcroco/libcroco-config.h>],
+- [const char *version = LIBCROCO_VERSION; return !version;],
+- [gl_ABSOLUTE_HEADER([libcroco-0.6/libcroco/libcroco-config.h])
+- libcroco_include_dir=`echo "$gl_cv_absolute_libcroco_0_6_libcroco_libcroco_config_h" | sed -e 's,.libcroco-config\.h$,,'`
+- if test -d "$libcroco_include_dir"; then
+- gl_cv_libcroco=yes
+- gl_cv_LIBCROCO="$LIBCROCO_0_6"
+- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
+- gl_cv_INCCROCO="-I$libcroco_include_dir"
+- fi
+- ])
+- fi
+- CPPFLAGS="$gl_save_CPPFLAGS"
+- fi
+- LIBS="$gl_save_LIBS"
+- ])
+- AC_MSG_CHECKING([for libcroco])
+- AC_MSG_RESULT([$gl_cv_libcroco])
+- if test $gl_cv_libcroco = yes; then
+- LIBCROCO="$gl_cv_LIBCROCO"
+- LTLIBCROCO="$gl_cv_LTLIBCROCO"
+- INCCROCO="$gl_cv_INCCROCO"
+- else
+- gl_cv_libcroco_use_included=yes
+- fi
+- fi
+- ])
++ if test "$gl_cv_libcroco_use_included" != yes; then
++ PKG_CHECK_MODULES([CROCO], [libcroco-0.6])
++ LIBCROCO=$CROCO_LIBS
++ LTLIBCROCO=$CROCO_LIBS
++ INCCROCO=$CROCO_CFLAGS
++ fi
+ AC_SUBST([LIBCROCO])
+ AC_SUBST([LTLIBCROCO])
+ AC_SUBST([INCCROCO])
+diff --git a/libtextstyle/gnulib-local/m4/libglib.m4 b/libtextstyle/gnulib-local/m4/libglib.m4
+index 5853772..767fba2 100644
+--- a/libtextstyle/gnulib-local/m4/libglib.m4
++++ b/libtextstyle/gnulib-local/m4/libglib.m4
+@@ -6,100 +6,26 @@ dnl with or without modifications, as long as this notice is preserved.
+
+ dnl From Bruno Haible.
+
+-dnl gl_LIBGLIB
+-dnl gives the user the option to decide whether to use the included or
+-dnl an external libglib.
+-dnl gl_LIBGLIB(FORCE-INCLUDED)
+-dnl forces the use of the included or an external libglib.
+ AC_DEFUN([gl_LIBGLIB],
+ [
+- ifelse([$1], , [
+- AC_MSG_CHECKING([whether included glib is requested])
+- AC_ARG_WITH([included-glib],
+- [ --with-included-glib use the glib2 included here],
+- [gl_cv_libglib_force_included=$withval],
+- [gl_cv_libglib_force_included=no])
+- AC_MSG_RESULT([$gl_cv_libglib_force_included])
+- ], [gl_cv_libglib_force_included=$1])
++ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
++ AC_MSG_CHECKING([whether included glib is requested])
++ AC_ARG_WITH([included-glib],
++ [ --with-included-glib use the glib2 included here],
++ [gl_cv_libglib_force_included=$withval],
++ [gl_cv_libglib_force_included=no])
++ AC_MSG_RESULT([$gl_cv_libglib_force_included])
+
+ gl_cv_libglib_use_included="$gl_cv_libglib_force_included"
+ LIBGLIB=
+ LTLIBGLIB=
+ INCGLIB=
+- ifelse([$1], [yes], , [
+- if test "$gl_cv_libglib_use_included" != yes; then
+- dnl Figure out whether we can use a preinstalled libglib-2.0, or have to use
+- dnl the included one.
+- AC_CACHE_VAL([gl_cv_libglib], [
+- gl_cv_libglib=no
+- gl_cv_LIBGLIB=
+- gl_cv_LTLIBGLIB=
+- gl_cv_INCGLIB=
+- gl_save_LIBS="$LIBS"
+- dnl Search for libglib2 and define LIBGLIB_2_0, LTLIBGLIB_2_0 and
+- dnl INCGLIB_2_0 accordingly.
+- dnl Don't use glib-config nor pkg-config, since it doesn't work when
+- dnl cross-compiling or when the C compiler in use is different from the
+- dnl one that built the library.
+- AC_LIB_LINKFLAGS_BODY([glib-2.0])
+- LIBS="$gl_save_LIBS $LIBGLIB_2_0"
+- AC_TRY_LINK([#include <glib.h>
+-#ifndef G_BEGIN_DECLS
+-error this glib.h includes a glibconfig.h from a glib version 1.x
+-#endif
+-],
+- [g_string_new ("foo");],
+- [gl_cv_libglib=yes
+- gl_cv_LIBGLIB="$LIBGLIB_2_0"
+- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
+- ])
+- if test "$gl_cv_libglib" != yes; then
+- gl_save_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS $INCGLIB_2_0"
+- AC_TRY_LINK([#include <glib.h>
+-#ifndef G_BEGIN_DECLS
+-error this glib.h includes a glibconfig.h from a glib version 1.x
+-#endif
+-],
+- [g_string_new ("foo");],
+- [gl_cv_libglib=yes
+- gl_cv_LIBGLIB="$LIBGLIB_2_0"
+- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
+- gl_cv_INCGLIB="$INCGLIB_2_0"
+- ])
+- if test "$gl_cv_libglib" != yes; then
+- dnl Often the include files are installed in /usr/include/glib-2.0
+- dnl and /usr/lib/glib-2.0/include.
+- if test -n "$LIBGLIB_2_0_PREFIX"; then
+- CPPFLAGS="$gl_save_CPPFLAGS -I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include"
+- AC_TRY_LINK([#include <glib.h>
+-#ifndef G_BEGIN_DECLS
+-error this glib.h includes a glibconfig.h from a glib version 1.x
+-#endif
+-],
+- [g_string_new ("foo");],
+- [gl_cv_libglib=yes
+- gl_cv_LIBGLIB="$LIBGLIB_2_0"
+- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
+- gl_cv_INCGLIB="-I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include"
+- ])
+- fi
+- fi
+- CPPFLAGS="$gl_save_CPPFLAGS"
+- fi
+- LIBS="$gl_save_LIBS"
+- ])
+- AC_MSG_CHECKING([for glib])
+- AC_MSG_RESULT([$gl_cv_libglib])
+- if test $gl_cv_libglib = yes; then
+- LIBGLIB="$gl_cv_LIBGLIB"
+- LTLIBGLIB="$gl_cv_LTLIBGLIB"
+- INCGLIB="$gl_cv_INCGLIB"
+- else
+- gl_cv_libglib_use_included=yes
+- fi
+- fi
+- ])
++ if test "$gl_cv_libglib_use_included" != yes; then
++ PKG_CHECK_MODULES([GLIB], [glib-2.0])
++ LIBGLIB="$GLIB_LIBS"
++ LTLIBGLIB="$GLIB_LIBS"
++ INCGLIB="$GLIB_CFLAGS"
++ fi
+ AC_SUBST([LIBGLIB])
+ AC_SUBST([LTLIBGLIB])
+ AC_SUBST([INCGLIB])
+diff --git a/libtextstyle/gnulib-m4/libcroco.m4 b/libtextstyle/gnulib-m4/libcroco.m4
+index bc53cc6..10b2455 100644
+--- a/libtextstyle/gnulib-m4/libcroco.m4
++++ b/libtextstyle/gnulib-m4/libcroco.m4
+@@ -1,99 +1,34 @@
+-# libcroco.m4 serial 3
+-dnl Copyright (C) 2006-2007, 2019 Free Software Foundation, Inc.
++# libcroco.m4 serial 2 (gettext-0.17)
++dnl Copyright (C) 2006, 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.
+
+ dnl From Bruno Haible.
+
+-dnl gl_LIBCROCO
+-dnl gives the user the option to decide whether to use the included or
+-dnl an external libcroco.
+-dnl gl_LIBCROCO(FORCE-INCLUDED)
+-dnl forces the use of the included or an external libcroco.
+ AC_DEFUN([gl_LIBCROCO],
+ [
+- ifelse([$1], [yes], , [
+- dnl libcroco depends on libglib.
+- AC_REQUIRE([gl_LIBGLIB])
+- ])
++ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
++ dnl libcroco depends on libglib.
++ AC_REQUIRE([gl_LIBGLIB])
+
+- ifelse([$1], , [
+- AC_MSG_CHECKING([whether included libcroco is requested])
+- AC_ARG_WITH([included-libcroco],
+- [ --with-included-libcroco use the libcroco included here],
+- [gl_cv_libcroco_force_included=$withval],
+- [gl_cv_libcroco_force_included=no])
+- AC_MSG_RESULT([$gl_cv_libcroco_force_included])
+- ], [gl_cv_libcroco_force_included=$1])
++ AC_MSG_CHECKING([whether included libcroco is requested])
++ AC_ARG_WITH([included-libcroco],
++ [ --with-included-libcroco use the libcroco included here],
++ [gl_cv_libcroco_force_included=$withval],
++ [gl_cv_libcroco_force_included=no])
++ AC_MSG_RESULT([$gl_cv_libcroco_force_included])
+
+ gl_cv_libcroco_use_included="$gl_cv_libcroco_force_included"
+ LIBCROCO=
+ LTLIBCROCO=
+ INCCROCO=
+- ifelse([$1], [yes], , [
+- if test "$gl_cv_libcroco_use_included" != yes; then
+- dnl Figure out whether we can use a preinstalled libcroco-0.6, or have to
+- dnl use the included one.
+- AC_CACHE_VAL([gl_cv_libcroco], [
+- gl_cv_libcroco=no
+- gl_cv_LIBCROCO=
+- gl_cv_LTLIBCROCO=
+- gl_cv_INCCROCO=
+- gl_save_LIBS="$LIBS"
+- dnl Search for libcroco and define LIBCROCO_0_6, LTLIBCROCO_0_6 and
+- dnl INCCROCO_0_6 accordingly.
+- dnl Don't use croco-0.6-config nor pkg-config, since it doesn't work when
+- dnl cross-compiling or when the C compiler in use is different from the
+- dnl one that built the library.
+- AC_LIB_LINKFLAGS_BODY([croco-0.6], [glib-2.0])
+- LIBS="$gl_save_LIBS $LIBCROCO_0_6"
+- AC_TRY_LINK([#include <libcroco-config.h>],
+- [const char *version = LIBCROCO_VERSION; return !version;],
+- [gl_cv_libcroco=yes
+- gl_cv_LIBCROCO="$LIBCROCO_0_6"
+- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
+- ])
+- if test "$gl_cv_libcroco" != yes; then
+- gl_save_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS $INCCROCO_0_6"
+- AC_TRY_LINK([#include <libcroco-config.h>],
+- [const char *version = LIBCROCO_VERSION; return !version;],
+- [gl_cv_libcroco=yes
+- gl_cv_LIBCROCO="$LIBCROCO_0_6"
+- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
+- gl_cv_INCCROCO="$INCCROCO_0_6"
+- ])
+- if test "$gl_cv_libcroco" != yes; then
+- dnl Often the include files are installed in
+- dnl /usr/include/libcroco-0.6/libcroco.
+- AC_TRY_LINK([#include <libcroco-0.6/libcroco/libcroco-config.h>],
+- [const char *version = LIBCROCO_VERSION; return !version;],
+- [gl_ABSOLUTE_HEADER([libcroco-0.6/libcroco/libcroco-config.h])
+- libcroco_include_dir=`echo "$gl_cv_absolute_libcroco_0_6_libcroco_libcroco_config_h" | sed -e 's,.libcroco-config\.h$,,'`
+- if test -d "$libcroco_include_dir"; then
+- gl_cv_libcroco=yes
+- gl_cv_LIBCROCO="$LIBCROCO_0_6"
+- gl_cv_LTLIBCROCO="$LTLIBCROCO_0_6"
+- gl_cv_INCCROCO="-I$libcroco_include_dir"
+- fi
+- ])
+- fi
+- CPPFLAGS="$gl_save_CPPFLAGS"
+- fi
+- LIBS="$gl_save_LIBS"
+- ])
+- AC_MSG_CHECKING([for libcroco])
+- AC_MSG_RESULT([$gl_cv_libcroco])
+- if test $gl_cv_libcroco = yes; then
+- LIBCROCO="$gl_cv_LIBCROCO"
+- LTLIBCROCO="$gl_cv_LTLIBCROCO"
+- INCCROCO="$gl_cv_INCCROCO"
+- else
+- gl_cv_libcroco_use_included=yes
+- fi
+- fi
+- ])
++ if test "$gl_cv_libcroco_use_included" != yes; then
++ PKG_CHECK_MODULES([CROCO], [libcroco-0.6])
++ LIBCROCO=$CROCO_LIBS
++ LTLIBCROCO=$CROCO_LIBS
++ INCCROCO=$CROCO_CFLAGS
++ fi
+ AC_SUBST([LIBCROCO])
+ AC_SUBST([LTLIBCROCO])
+ AC_SUBST([INCCROCO])
+diff --git a/libtextstyle/gnulib-m4/libglib.m4 b/libtextstyle/gnulib-m4/libglib.m4
+index 5853772..767fba2 100644
+--- a/libtextstyle/gnulib-m4/libglib.m4
++++ b/libtextstyle/gnulib-m4/libglib.m4
+@@ -6,100 +6,26 @@ dnl with or without modifications, as long as this notice is preserved.
+
+ dnl From Bruno Haible.
+
+-dnl gl_LIBGLIB
+-dnl gives the user the option to decide whether to use the included or
+-dnl an external libglib.
+-dnl gl_LIBGLIB(FORCE-INCLUDED)
+-dnl forces the use of the included or an external libglib.
+ AC_DEFUN([gl_LIBGLIB],
+ [
+- ifelse([$1], , [
+- AC_MSG_CHECKING([whether included glib is requested])
+- AC_ARG_WITH([included-glib],
+- [ --with-included-glib use the glib2 included here],
+- [gl_cv_libglib_force_included=$withval],
+- [gl_cv_libglib_force_included=no])
+- AC_MSG_RESULT([$gl_cv_libglib_force_included])
+- ], [gl_cv_libglib_force_included=$1])
++ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
++ AC_MSG_CHECKING([whether included glib is requested])
++ AC_ARG_WITH([included-glib],
++ [ --with-included-glib use the glib2 included here],
++ [gl_cv_libglib_force_included=$withval],
++ [gl_cv_libglib_force_included=no])
++ AC_MSG_RESULT([$gl_cv_libglib_force_included])
+
+ gl_cv_libglib_use_included="$gl_cv_libglib_force_included"
+ LIBGLIB=
+ LTLIBGLIB=
+ INCGLIB=
+- ifelse([$1], [yes], , [
+- if test "$gl_cv_libglib_use_included" != yes; then
+- dnl Figure out whether we can use a preinstalled libglib-2.0, or have to use
+- dnl the included one.
+- AC_CACHE_VAL([gl_cv_libglib], [
+- gl_cv_libglib=no
+- gl_cv_LIBGLIB=
+- gl_cv_LTLIBGLIB=
+- gl_cv_INCGLIB=
+- gl_save_LIBS="$LIBS"
+- dnl Search for libglib2 and define LIBGLIB_2_0, LTLIBGLIB_2_0 and
+- dnl INCGLIB_2_0 accordingly.
+- dnl Don't use glib-config nor pkg-config, since it doesn't work when
+- dnl cross-compiling or when the C compiler in use is different from the
+- dnl one that built the library.
+- AC_LIB_LINKFLAGS_BODY([glib-2.0])
+- LIBS="$gl_save_LIBS $LIBGLIB_2_0"
+- AC_TRY_LINK([#include <glib.h>
+-#ifndef G_BEGIN_DECLS
+-error this glib.h includes a glibconfig.h from a glib version 1.x
+-#endif
+-],
+- [g_string_new ("foo");],
+- [gl_cv_libglib=yes
+- gl_cv_LIBGLIB="$LIBGLIB_2_0"
+- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
+- ])
+- if test "$gl_cv_libglib" != yes; then
+- gl_save_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS $INCGLIB_2_0"
+- AC_TRY_LINK([#include <glib.h>
+-#ifndef G_BEGIN_DECLS
+-error this glib.h includes a glibconfig.h from a glib version 1.x
+-#endif
+-],
+- [g_string_new ("foo");],
+- [gl_cv_libglib=yes
+- gl_cv_LIBGLIB="$LIBGLIB_2_0"
+- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
+- gl_cv_INCGLIB="$INCGLIB_2_0"
+- ])
+- if test "$gl_cv_libglib" != yes; then
+- dnl Often the include files are installed in /usr/include/glib-2.0
+- dnl and /usr/lib/glib-2.0/include.
+- if test -n "$LIBGLIB_2_0_PREFIX"; then
+- CPPFLAGS="$gl_save_CPPFLAGS -I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include"
+- AC_TRY_LINK([#include <glib.h>
+-#ifndef G_BEGIN_DECLS
+-error this glib.h includes a glibconfig.h from a glib version 1.x
+-#endif
+-],
+- [g_string_new ("foo");],
+- [gl_cv_libglib=yes
+- gl_cv_LIBGLIB="$LIBGLIB_2_0"
+- gl_cv_LTLIBGLIB="$LTLIBGLIB_2_0"
+- gl_cv_INCGLIB="-I$LIBGLIB_2_0_PREFIX/include/glib-2.0 -I$LIBGLIB_2_0_PREFIX/$acl_libdirstem/glib-2.0/include"
+- ])
+- fi
+- fi
+- CPPFLAGS="$gl_save_CPPFLAGS"
+- fi
+- LIBS="$gl_save_LIBS"
+- ])
+- AC_MSG_CHECKING([for glib])
+- AC_MSG_RESULT([$gl_cv_libglib])
+- if test $gl_cv_libglib = yes; then
+- LIBGLIB="$gl_cv_LIBGLIB"
+- LTLIBGLIB="$gl_cv_LTLIBGLIB"
+- INCGLIB="$gl_cv_INCGLIB"
+- else
+- gl_cv_libglib_use_included=yes
+- fi
+- fi
+- ])
++ if test "$gl_cv_libglib_use_included" != yes; then
++ PKG_CHECK_MODULES([GLIB], [glib-2.0])
++ LIBGLIB="$GLIB_LIBS"
++ LTLIBGLIB="$GLIB_LIBS"
++ INCGLIB="$GLIB_CFLAGS"
++ fi
+ AC_SUBST([LIBGLIB])
+ AC_SUBST([LTLIBGLIB])
+ AC_SUBST([INCGLIB])
+diff --git a/libtextstyle/lib/term-styled-ostream.c b/libtextstyle/lib/term-styled-ostream.c
+index 5484800..16793fa 100644
+--- a/libtextstyle/lib/term-styled-ostream.c
++++ b/libtextstyle/lib/term-styled-ostream.c
+@@ -28,15 +28,15 @@
+
+ #include <stdlib.h>
+
+-#include <cr-om-parser.h>
+-#include <cr-sel-eng.h>
+-#include <cr-style.h>
+-#include <cr-rgb.h>
++#include <libcroco/cr-om-parser.h>
++#include <libcroco/cr-sel-eng.h>
++#include <libcroco/cr-style.h>
++#include <libcroco/cr-rgb.h>
+ /* <cr-fonts.h> has a broken double-inclusion guard in libcroco-0.6.1. */
+ #ifndef __CR_FONTS_H__
+-# include <cr-fonts.h>
++# include <libcroco/cr-fonts.h>
+ #endif
+-#include <cr-string.h>
++#include <libcroco/cr-string.h>
+
+ #include "term-ostream.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 2ff978f..5ffb17a 100644
+--- a/libtextstyle/lib/term-styled-ostream.oo.c
++++ b/libtextstyle/lib/term-styled-ostream.oo.c
+@@ -22,15 +22,15 @@
+
+ #include <stdlib.h>
+
+-#include <cr-om-parser.h>
+-#include <cr-sel-eng.h>
+-#include <cr-style.h>
+-#include <cr-rgb.h>
++#include <libcroco/cr-om-parser.h>
++#include <libcroco/cr-sel-eng.h>
++#include <libcroco/cr-style.h>
++#include <libcroco/cr-rgb.h>
+ /* <cr-fonts.h> has a broken double-inclusion guard in libcroco-0.6.1. */
+ #ifndef __CR_FONTS_H__
+-# include <cr-fonts.h>
++# include <libcroco/cr-fonts.h>
+ #endif
+-#include <cr-string.h>
++#include <libcroco/cr-string.h>
+
+ #include "term-ostream.h"
+ #include "mem-hash-map.h"
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch b/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch
deleted file mode 100644
index 29ef2a5a63..0000000000
--- a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-[PATCH] Disable the test to convert euc-jp
-
-Remove the test "Test against HP-UX 11.11 bug:
-No converter from EUC-JP to UTF-8 is provided"
-since we don't support HP-UX and if the euc-jp is not
-installed on the host, the dependence will be built without
-iconv support and will cause guile-native building fail.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- iconv.m4 | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/iconv.m4 b/iconv.m4
-index 4e37363..35f54bd 100644
---- a/iconv.m4
-+++ b/iconv.m4
-@@ -165,6 +165,7 @@ AC_DEFUN([AM_ICONV_LINK],
- }
- }
- #endif
-+#if 0
- /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
- provided. */
- if (/* Try standardized names. */
-@@ -176,6 +177,7 @@ AC_DEFUN([AM_ICONV_LINK],
- /* Try HP-UX names. */
- && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
- result |= 16;
-+#endif
- return result;
- ]])],
- [am_cv_func_iconv_works=yes], ,
---
-2.0.1
-
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz b/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz
deleted file mode 100644
index 9b2d1f561d..0000000000
--- a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz
+++ /dev/null
Binary files differ
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING b/meta/recipes-core/gettext/gettext-minimal-0.21/COPYING
index 3671ab6985..3671ab6985 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/COPYING
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in b/meta/recipes-core/gettext/gettext-minimal-0.21/Makefile.in.in
index 38c293d2ed..6b25f0d916 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/Makefile.in.in
@@ -1,13 +1,14 @@
# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# 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.19.8
-GETTEXT_MACRO_VERSION = 0.19
+# Origin: gettext-0.21
+GETTEXT_MACRO_VERSION = 0.20
PACKAGE = @PACKAGE@
VERSION = @VERSION@
@@ -52,16 +53,13 @@ GMSGFMT_ = @GMSGFMT@
GMSGFMT_no = @GMSGFMT@
GMSGFMT_yes = @GMSGFMT_015@
GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
-MSGFMT_ = @MSGFMT@
-MSGFMT_no = @MSGFMT@
-MSGFMT_yes = @MSGFMT_015@
-MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
XGETTEXT_ = @XGETTEXT@
XGETTEXT_no = @XGETTEXT@
XGETTEXT_yes = @XGETTEXT_015@
XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
-MSGMERGE = msgmerge
+MSGMERGE = @MSGMERGE@
MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
MSGINIT = msginit
MSGCONV = msgconv
MSGFILTER = msgfilter
@@ -92,27 +90,44 @@ DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
# Makevars gets inserted here. (Don't remove this line!)
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+all: all-@USE_NLS@
-.po.mo:
- @echo "$(MSGFMT) -c -o $@ $<"; \
- $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+.SUFFIXES:
+.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update
+
+# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs.
+# The GNU Coding Standards say in
+# <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>:
+# "GNU distributions usually contain some files which are not source files
+# ... . Since these files normally appear in the source directory, they
+# should always appear in the source directory, not in the build directory.
+# So Makefile rules to update them should put the updated files in the
+# source directory."
+# Therefore we put these files in the source directory, not the build directory.
+
+# During .po -> .gmo conversion, take into account the most recent changes to
+# 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.
+$(GMOFILES): $(srcdir)/$(DOMAIN).pot
.po.gmo:
@lang=`echo $* | sed -e 's,.*/,,'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+ 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"; \
+ cd $(srcdir) && \
+ rm -f $${lang}.gmo && \
+ $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \
+ $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \
+ mv t-$${lang}.gmo $${lang}.gmo && \
+ rm -f $${lang}.1po
.sin.sed:
sed -e '/^#/d' $< > t-$@
mv t-$@ $@
-all: all-@USE_NLS@
-
-all-yes: stamp-po
+all-yes: $(srcdir)/stamp-po
all-no:
# Ensure that the gettext macros and this Makefile.in.in are in sync.
@@ -126,24 +141,24 @@ CHECK_MACRO_VERSION = \
# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
# we don't want to bother translators with empty POT files). We assume that
# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
-# In this case, stamp-po is a nop (i.e. a phony target).
-
-# stamp-po is a timestamp denoting the last time at which the CATALOGS have
-# been loosely updated. Its purpose is that when a developer or translator
-# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
-# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
-# invocations of "make" will do nothing. This timestamp would not be necessary
-# if updating the $(CATALOGS) would always touch them; however, the rule for
-# $(POFILES) has been designed to not touch files that don't need to be
-# changed.
-stamp-po: $(srcdir)/$(DOMAIN).pot
+# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target).
+
+# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS
+# have been loosely updated. Its purpose is that when a developer or translator
+# checks out the package from a version control system, and the $(DOMAIN).pot
+# file is not under version control, "make" will update the $(DOMAIN).pot and
+# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This
+# timestamp would not be necessary if updating the $(CATALOGS) would always
+# touch them; however, the rule for $(POFILES) has been designed to not touch
+# files that don't need to be changed.
+$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot
@$(CHECK_MACRO_VERSION)
test ! -f $(srcdir)/$(DOMAIN).pot || \
test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
@test ! -f $(srcdir)/$(DOMAIN).pot || { \
- echo "touch stamp-po" && \
- echo timestamp > stamp-poT && \
- mv stamp-poT stamp-po; \
+ echo "touch $(srcdir)/stamp-po" && \
+ echo timestamp > $(srcdir)/stamp-poT && \
+ mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \
}
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
@@ -159,11 +174,9 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
package_gnu="$(PACKAGE_GNU)"; \
test -n "$$package_gnu" || { \
if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
- LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \
- -size -10000000c -exec grep 'GNU @PACKAGE@' \
- /dev/null '{}' ';' 2>/dev/null; \
+ LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \
else \
- LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
+ LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
fi; \
} | grep -v 'libtool:' >/dev/null; then \
package_gnu=yes; \
@@ -184,26 +197,29 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --add-comments=TRANSLATORS: \
--files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \
--msgid-bugs-address="$$msgid_bugs_address" \
+ $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
;; \
*) \
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --add-comments=TRANSLATORS: \
--files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \
--package-name="$${package_prefix}@PACKAGE@" \
--package-version='@VERSION@' \
--msgid-bugs-address="$$msgid_bugs_address" \
+ $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
;; \
esac
test ! -f $(DOMAIN).po || { \
if test -f $(srcdir)/$(DOMAIN).pot-header; then \
sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \
- cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po; \
- rm -f $(DOMAIN).1po; \
+ cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \
+ rm -f $(DOMAIN).1po \
+ || exit 1; \
fi; \
if test -f $(srcdir)/$(DOMAIN).pot; then \
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
@@ -228,17 +244,19 @@ $(srcdir)/$(DOMAIN).pot:
# This target rebuilds a PO file if $(DOMAIN).pot has changed.
# Note that a PO file is not touched if it doesn't need to be changed.
$(POFILES): $(POFILESDEPS)
+ @test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
if test -f "$(srcdir)/$${lang}.po"; then \
- test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \
cd $(srcdir) \
- && { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+ 0.1[6-7] | 0.1[6-7].*) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \
*) \
- $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \
esac; \
}; \
else \
@@ -373,34 +391,41 @@ check: all
info dvi ps pdf html tags TAGS ctags CTAGS ID:
+install-dvi install-ps install-pdf install-html:
+
mostlyclean:
rm -f remove-potcdate.sed
- rm -f stamp-poT
+ rm -f $(srcdir)/stamp-poT
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
rm -fr *.o
clean: mostlyclean
distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
+ rm -f Makefile Makefile.in POTFILES
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
- rm -f stamp-po $(GMOFILES)
+ rm -f $(srcdir)/$(DOMAIN).pot $(srcdir)/stamp-po $(GMOFILES)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir:
test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS)
@$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
-dist2: stamp-po $(DISTFILES)
- dists="$(DISTFILES)"; \
+dist2: $(srcdir)/stamp-po $(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"; \
@@ -439,13 +464,15 @@ update-po: Makefile
tmpdir=`pwd`; \
echo "$$lang:"; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
cd $(srcdir); \
if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
$(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ 0.1[6-7] | 0.1[6-7].*) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
*) \
- $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
esac; \
}; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/gettext.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/gettext.m4
new file mode 100644
index 0000000000..4f25a27d93
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/gettext.m4
@@ -0,0 +1,386 @@
+# 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 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 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.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL must be one of 'external', 'use-libtool'.
+dnl INTLSYMBOL should be 'external' for packages other than GNU gettext, and
+dnl 'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'.
+dnl If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl depending on --{enable,disable}-{shared,static} and on the presence of
+dnl AM-DISABLE-SHARED).
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl implementations (in libc or libintl) without the ngettext() function
+dnl will be ignored. If NEEDSYMBOL is specified and is
+dnl 'need-formatstring-macros', then GNU gettext implementations that don't
+dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries. If empty,
+dnl the value '$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl and used.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl Catalog format: none
+dnl Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+ dnl Argument checking.
+ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [use-libtool], ,
+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])
+ ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
+ [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.
+])])
+ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+ define([gt_included_intl],
+ ifelse([$1], [external], [no], [yes]))
+ gt_NEEDS_INIT
+ AM_GNU_GETTEXT_NEED([$2])
+
+ AC_REQUIRE([AM_PO_SUBDIRS])dnl
+ ifelse(gt_included_intl, yes, [
+ AC_REQUIRE([AM_INTL_SUBDIR])dnl
+ ])
+
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ dnl Ideally we would do this search only after the
+ dnl if test "$USE_NLS" = "yes"; then
+ dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+ dnl the configure script would need to contain the same shell code
+ dnl again, outside any 'if'. There are two solutions:
+ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+ dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it.
+ ifelse(gt_included_intl, yes, , [
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+ ])
+
+ dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation.
+ gt_INTL_MACOSX
+
+ dnl Set USE_NLS.
+ AC_REQUIRE([AM_NLS])
+
+ ifelse(gt_included_intl, yes, [
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ ])
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ dnl Add a version number to the cache macros.
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+ ifelse(gt_included_intl, yes, [
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH([included-gettext],
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ ])
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
+
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings)
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
+ ]])],
+ [eval "$gt_func_gnugettext_libc=yes"],
+ [eval "$gt_func_gnugettext_libc=no"])])
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ ifelse(gt_included_intl, yes, , [
+ AM_ICONV_LINK
+ ])
+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+ dnl even if libiconv doesn't exist.
+ AC_LIB_LINKFLAGS_BODY([intl])
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ [$gt_func_gnugettext_libintl],
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ dnl Now see whether libintl exists and does not depend on libiconv.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
+ ]])],
+ [eval "$gt_func_gnugettext_libintl=yes"],
+ [eval "$gt_func_gnugettext_libintl=no"])
+ dnl Now see whether libintl exists and depends on libiconv.
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
+ ]])],
+ [LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ eval "$gt_func_gnugettext_libintl=yes"
+ ])
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ fi
+
+ dnl If an already present or preinstalled GNU gettext() is found,
+ dnl use it. But if this macro is used in GNU gettext, and GNU
+ dnl gettext is already preinstalled in libintl, we update this
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ dnl Reset the values set by searching for libintl.
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+ dnl GNU gettext is not found in the C library.
+ dnl Fall back on included GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ CATOBJEXT=
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions to use GNU gettext tools.
+ CATOBJEXT=.gmo
+ fi
+ ])
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Some extra flags are needed during linking.
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ AC_DEFINE([ENABLE_NLS], [1],
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([whether to use NLS])
+ AC_MSG_RESULT([$USE_NLS])
+ if test "$USE_NLS" = "yes"; then
+ AC_MSG_CHECKING([where the gettext function comes from])
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+ gt_source="external libintl"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ AC_MSG_RESULT([$gt_source])
+ fi
+
+ if test "$USE_NLS" = "yes"; then
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+ AC_MSG_CHECKING([how to link with libintl])
+ AC_MSG_RESULT([$LIBINTL])
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+ fi
+
+ dnl For backward compatibility. Some packages may be using this.
+ AC_DEFINE([HAVE_GETTEXT], [1],
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ AC_DEFINE([HAVE_DCGETTEXT], [1],
+ [Define if the GNU dcgettext() function is already present or preinstalled.])
+ fi
+
+ dnl We need to process the po/ directory.
+ POSUB=po
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes'
+ dnl because some of the testsuite requires it.
+ BUILD_INCLUDED_LIBINTL=yes
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST([BUILD_INCLUDED_LIBINTL])
+ AC_SUBST([USE_INCLUDED_LIBINTL])
+ AC_SUBST([CATOBJEXT])
+ ])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLLIBS="$LIBINTL"
+ AC_SUBST([INTLLIBS])
+
+ dnl Make all documented variables known to autoconf.
+ AC_SUBST([LIBINTL])
+ AC_SUBST([LTLIBINTL])
+ AC_SUBST([POSUB])
+])
+
+
+dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
+m4_define([gt_NEEDS_INIT],
+[
+ m4_divert_text([DEFAULTS], [gt_needs=])
+ m4_define([gt_NEEDS_INIT], [])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
+AC_DEFUN([AM_GNU_GETTEXT_NEED],
+[
+ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+
+
+dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], [])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/host-cpu-c-abi.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/host-cpu-c-abi.m4
new file mode 100644
index 0000000000..6db2aa25ae
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/host-cpu-c-abi.m4
@@ -0,0 +1,675 @@
+# 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.
+
+dnl From Bruno Haible and Sam Steingold.
+
+dnl Sets the HOST_CPU variable to the canonical name of the CPU.
+dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its
+dnl C language ABI (application binary interface).
+dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in
+dnl config.h.
+dnl
+dnl This canonical name can be used to select a particular assembly language
+dnl source file that will interoperate with C code on the given host.
+dnl
+dnl For example:
+dnl * 'i386' and 'sparc' are different canonical names, because code for i386
+dnl will not run on SPARC CPUs and vice versa. They have different
+dnl instruction sets.
+dnl * 'sparc' and 'sparc64' are different canonical names, because code for
+dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code
+dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit
+dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit
+dnl mode, but not both.
+dnl * 'mips' and 'mipsn32' are different canonical names, because they use
+dnl different argument passing and return conventions for C functions, and
+dnl although the instruction set of 'mips' is a large subset of the
+dnl instruction set of 'mipsn32'.
+dnl * 'mipsn32' and 'mips64' are different canonical names, because they use
+dnl different sizes for the C types like 'int' and 'void *', and although
+dnl the instruction sets of 'mipsn32' and 'mips64' are the same.
+dnl * The same canonical name is used for different endiannesses. You can
+dnl determine the endianness through preprocessor symbols:
+dnl - 'arm': test __ARMEL__.
+dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
+dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
+dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
+dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
+dnl - Instructions that do not exist on all of these CPUs (cmpxchg,
+dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your
+dnl assembly language source files use such instructions, you will
+dnl need to make the distinction.
+dnl - Speed of execution of the common instruction set is reasonable across
+dnl the entire family of CPUs. If you have assembly language source files
+dnl that are optimized for particular CPU types (like GNU gmp has), you
+dnl will need to make the distinction.
+dnl See <https://en.wikipedia.org/wiki/X86_instruction_listings>.
+AC_DEFUN([gl_HOST_CPU_C_ABI],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_C_ASM])
+ AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi],
+ [case "$host_cpu" in
+
+changequote(,)dnl
+ i[34567]86 )
+changequote([,])dnl
+ gl_cv_host_cpu_c_abi=i386
+ ;;
+
+ x86_64 )
+ # On x86_64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+ # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+ # with native Windows (mingw, MSVC).
+ # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if (defined __x86_64__ || defined __amd64__ \
+ || defined _M_X64 || defined _M_AMD64)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __ILP32__ || defined _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=x86_64-x32],
+ [gl_cv_host_cpu_c_abi=x86_64])],
+ [gl_cv_host_cpu_c_abi=i386])
+ ;;
+
+changequote(,)dnl
+ alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] )
+changequote([,])dnl
+ gl_cv_host_cpu_c_abi=alpha
+ ;;
+
+ arm* | aarch64 )
+ # Assume arm with EABI.
+ # On arm64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+ # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef __aarch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __ILP32__ || defined _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=arm64-ilp32],
+ [gl_cv_host_cpu_c_abi=arm64])],
+ [# Don't distinguish little-endian and big-endian arm, since they
+ # don't require different machine code for simple operations and
+ # since the user can distinguish them through the preprocessor
+ # defines __ARMEL__ vs. __ARMEB__.
+ # But distinguish arm which passes floating-point arguments and
+ # return values in integer registers (r0, r1, ...) - this is
+ # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which
+ # passes them in float registers (s0, s1, ...) and double registers
+ # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer
+ # sets the preprocessor defines __ARM_PCS (for the first case) and
+ # __ARM_PCS_VFP (for the second case), but older GCC does not.
+ echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c
+ # Look for a reference to the register d0 in the .s file.
+ AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1
+ if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then
+ gl_cv_host_cpu_c_abi=armhf
+ else
+ gl_cv_host_cpu_c_abi=arm
+ fi
+ rm -f conftest*
+ ])
+ ;;
+
+ hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+ # On hppa, the C compiler may be generating 32-bit code or 64-bit
+ # code. In the latter case, it defines _LP64 and __LP64__.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=hppa64],
+ [gl_cv_host_cpu_c_abi=hppa])
+ ;;
+
+ ia64* )
+ # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+ # 32-bit code. In the latter case, it defines _ILP32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=ia64-ilp32],
+ [gl_cv_host_cpu_c_abi=ia64])
+ ;;
+
+ mips* )
+ # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+ # at 32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=mips64],
+ [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
+ # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
+ # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
+ # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if (_MIPS_SIM == _ABIN32)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=mipsn32],
+ [gl_cv_host_cpu_c_abi=mips])])
+ ;;
+
+ powerpc* )
+ # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+ # No need to distinguish them here; the caller may distinguish
+ # them based on the OS.
+ # On powerpc64 systems, the C compiler may still be generating
+ # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+ # be generating 64-bit code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __powerpc64__ || defined _ARCH_PPC64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [# On powerpc64, there are two ABIs on Linux: The AIX compatible
+ # one and the ELFv2 one. The latter defines _CALL_ELF=2.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined _CALL_ELF && _CALL_ELF == 2
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=powerpc64-elfv2],
+ [gl_cv_host_cpu_c_abi=powerpc64])
+ ],
+ [gl_cv_host_cpu_c_abi=powerpc])
+ ;;
+
+ rs6000 )
+ gl_cv_host_cpu_c_abi=powerpc
+ ;;
+
+ riscv32 | riscv64 )
+ # There are 2 architectures (with variants): rv32* and rv64*.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if __riscv_xlen == 64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [cpu=riscv64],
+ [cpu=riscv32])
+ # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+ # Size of 'long' and 'void *':
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [main_abi=lp64],
+ [main_abi=ilp32])
+ # Float ABIs:
+ # __riscv_float_abi_double:
+ # 'float' and 'double' are passed in floating-point registers.
+ # __riscv_float_abi_single:
+ # 'float' are passed in floating-point registers.
+ # __riscv_float_abi_soft:
+ # No values are passed in floating-point registers.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __riscv_float_abi_double
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [float_abi=d],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __riscv_float_abi_single
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [float_abi=f],
+ [float_abi=''])
+ ])
+ gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
+ ;;
+
+ s390* )
+ # On s390x, the C compiler may be generating 64-bit (= s390x) code
+ # or 31-bit (= s390) code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__ || defined __s390x__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=s390x],
+ [gl_cv_host_cpu_c_abi=s390])
+ ;;
+
+ sparc | sparc64 )
+ # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+ # C compiler still generates 32-bit code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=sparc64],
+ [gl_cv_host_cpu_c_abi=sparc])
+ ;;
+
+ *)
+ gl_cv_host_cpu_c_abi="$host_cpu"
+ ;;
+ esac
+ ])
+
+ dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same.
+ HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'`
+ HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi"
+ AC_SUBST([HOST_CPU])
+ AC_SUBST([HOST_CPU_C_ABI])
+
+ # This was
+ # AC_DEFINE_UNQUOTED([__${HOST_CPU}__])
+ # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__])
+ # earlier, but KAI C++ 3.2d doesn't like this.
+ sed -e 's/-/_/g' >> confdefs.h <<EOF
+#ifndef __${HOST_CPU}__
+#define __${HOST_CPU}__ 1
+#endif
+#ifndef __${HOST_CPU_C_ABI}__
+#define __${HOST_CPU_C_ABI}__ 1
+#endif
+EOF
+ AH_TOP([/* CPU and C ABI indicator */
+#ifndef __i386__
+#undef __i386__
+#endif
+#ifndef __x86_64_x32__
+#undef __x86_64_x32__
+#endif
+#ifndef __x86_64__
+#undef __x86_64__
+#endif
+#ifndef __alpha__
+#undef __alpha__
+#endif
+#ifndef __arm__
+#undef __arm__
+#endif
+#ifndef __armhf__
+#undef __armhf__
+#endif
+#ifndef __arm64_ilp32__
+#undef __arm64_ilp32__
+#endif
+#ifndef __arm64__
+#undef __arm64__
+#endif
+#ifndef __hppa__
+#undef __hppa__
+#endif
+#ifndef __hppa64__
+#undef __hppa64__
+#endif
+#ifndef __ia64_ilp32__
+#undef __ia64_ilp32__
+#endif
+#ifndef __ia64__
+#undef __ia64__
+#endif
+#ifndef __m68k__
+#undef __m68k__
+#endif
+#ifndef __mips__
+#undef __mips__
+#endif
+#ifndef __mipsn32__
+#undef __mipsn32__
+#endif
+#ifndef __mips64__
+#undef __mips64__
+#endif
+#ifndef __powerpc__
+#undef __powerpc__
+#endif
+#ifndef __powerpc64__
+#undef __powerpc64__
+#endif
+#ifndef __powerpc64_elfv2__
+#undef __powerpc64_elfv2__
+#endif
+#ifndef __riscv32__
+#undef __riscv32__
+#endif
+#ifndef __riscv64__
+#undef __riscv64__
+#endif
+#ifndef __riscv32_ilp32__
+#undef __riscv32_ilp32__
+#endif
+#ifndef __riscv32_ilp32f__
+#undef __riscv32_ilp32f__
+#endif
+#ifndef __riscv32_ilp32d__
+#undef __riscv32_ilp32d__
+#endif
+#ifndef __riscv64_ilp32__
+#undef __riscv64_ilp32__
+#endif
+#ifndef __riscv64_ilp32f__
+#undef __riscv64_ilp32f__
+#endif
+#ifndef __riscv64_ilp32d__
+#undef __riscv64_ilp32d__
+#endif
+#ifndef __riscv64_lp64__
+#undef __riscv64_lp64__
+#endif
+#ifndef __riscv64_lp64f__
+#undef __riscv64_lp64f__
+#endif
+#ifndef __riscv64_lp64d__
+#undef __riscv64_lp64d__
+#endif
+#ifndef __s390__
+#undef __s390__
+#endif
+#ifndef __s390x__
+#undef __s390x__
+#endif
+#ifndef __sh__
+#undef __sh__
+#endif
+#ifndef __sparc__
+#undef __sparc__
+#endif
+#ifndef __sparc64__
+#undef __sparc64__
+#endif
+])
+
+])
+
+
+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, 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],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
+ [if test -n "$gl_cv_host_cpu_c_abi"; then
+ 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
+ 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
+ ;;
+
+ x86_64 )
+ # On x86_64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+ # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+ # with native Windows (mingw, MSVC).
+ # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if (defined __x86_64__ || defined __amd64__ \
+ || defined _M_X64 || defined _M_AMD64) \
+ && !(defined __ILP32__ || defined _ILP32)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ arm* | aarch64 )
+ # Assume arm with EABI.
+ # On arm64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+ # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+ # On hppa, the C compiler may be generating 32-bit code or 64-bit
+ # code. In the latter case, it defines _LP64 and __LP64__.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ ia64* )
+ # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+ # 32-bit code. In the latter case, it defines _ILP32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=yes],
+ [gl_cv_host_cpu_c_abi_32bit=no])
+ ;;
+
+ mips* )
+ # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+ # at 32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ powerpc* )
+ # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+ # No need to distinguish them here; the caller may distinguish
+ # them based on the OS.
+ # On powerpc64 systems, the C compiler may still be generating
+ # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+ # be generating 64-bit code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __powerpc64__ || defined _ARCH_PPC64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ rs6000 )
+ gl_cv_host_cpu_c_abi_32bit=yes
+ ;;
+
+ riscv32 | riscv64 )
+ # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+ # Size of 'long' and 'void *':
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ s390* )
+ # On s390x, the C compiler may be generating 64-bit (= s390x) code
+ # or 31-bit (= s390) code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__ || defined __s390x__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ sparc | sparc64 )
+ # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+ # C compiler still generates 32-bit code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ *)
+ gl_cv_host_cpu_c_abi_32bit=unknown
+ ;;
+ esac
+ fi
+ ])
+
+ HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
+])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/iconv.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/iconv.m4
new file mode 100644
index 0000000000..e593b7270a
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/iconv.m4
@@ -0,0 +1,288 @@
+# iconv.m4 serial 21
+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,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. The first
+ dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+ AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+ ]],
+ [[iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);]])],
+ [am_cv_func_iconv=yes])
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+ ]],
+ [[iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);]])],
+ [am_cv_lib_iconv=yes]
+ [am_cv_func_iconv=yes])
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
+ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11,
+ dnl Solaris 10.
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ am_cv_func_iconv_works=no
+ for ac_iconv_const in '' 'const'; do
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <iconv.h>
+#include <string.h>
+
+#ifndef ICONV_CONST
+# define ICONV_CONST $ac_iconv_const
+#endif
+ ]],
+ [[int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
+ char buf[10];
+ ICONV_CONST char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* Test against Solaris 10 bug: Failures are not distinguishable from
+ successful returns. */
+ {
+ iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
+ if (cd_ascii_to_88591 != (iconv_t)(-1))
+ {
+ static ICONV_CONST char input[] = "\263";
+ char buf[10];
+ ICONV_CONST char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_ascii_to_88591,
+ &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static ICONV_CONST char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ ICONV_CONST char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ ICONV_CONST char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ {
+ /* Try standardized names. */
+ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
+ /* Try IRIX, OSF/1 names. */
+ iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
+ /* Try AIX names. */
+ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
+ /* Try HP-UX names. */
+ iconv_t cd4 = iconv_open ("utf8", "eucJP");
+ if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
+ && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
+ result |= 16;
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd2 != (iconv_t)(-1))
+ iconv_close (cd2);
+ if (cd3 != (iconv_t)(-1))
+ iconv_close (cd3);
+ if (cd4 != (iconv_t)(-1))
+ iconv_close (cd4);
+ }
+ return result;
+]])],
+ [am_cv_func_iconv_works=yes], ,
+ [case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac])
+ test "$am_cv_func_iconv_works" = no || break
+ done
+ LIBS="$am_save_LIBS"
+ ])
+ case "$am_cv_func_iconv_works" in
+ *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+ *) am_func_iconv=yes ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+ AC_DEFINE([HAVE_ICONV], [1],
+ [Define if you have the iconv() function and it works.])
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ AC_MSG_CHECKING([how to link with libiconv])
+ AC_MSG_RESULT([$LIBICONV])
+ else
+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+ dnl either.
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+ AC_SUBST([LIBICONV])
+ AC_SUBST([LTLIBICONV])
+])
+
+dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
+dnl avoid warnings like
+dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
+dnl This is tricky because of the way 'aclocal' is implemented:
+dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
+dnl Otherwise aclocal's initial scan pass would miss the macro definition.
+dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
+dnl Otherwise aclocal would emit many "Use of uninitialized value $1"
+dnl warnings.
+m4_define([gl_iconv_AC_DEFUN],
+ m4_version_prereq([2.64],
+ [[AC_DEFUN_ONCE(
+ [$1], [$2])]],
+ [m4_ifdef([gl_00GNULIB],
+ [[AC_DEFUN_ONCE(
+ [$1], [$2])]],
+ [[AC_DEFUN(
+ [$1], [$2])]])]))
+gl_iconv_AC_DEFUN([AM_ICONV],
+[
+ AM_ICONV_LINK
+ if test "$am_cv_func_iconv" = yes; then
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL([am_cv_proto_iconv], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+ ]],
+ [[]])],
+ [am_cv_proto_iconv_arg1=""],
+ [am_cv_proto_iconv_arg1="const"])
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ AC_MSG_RESULT([
+ $am_cv_proto_iconv])
+ else
+ dnl When compiling GNU libiconv on a system that does not have iconv yet,
+ dnl pick the POSIX compliant declaration without 'const'.
+ am_cv_proto_iconv_arg1=""
+ fi
+ AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
+ [Define as const if the declaration of iconv() needs const.])
+ dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
+ m4_ifdef([gl_ICONV_H_DEFAULTS],
+ [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
+ if test -n "$am_cv_proto_iconv_arg1"; then
+ ICONV_CONST="const"
+ fi
+ ])
+])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/intlmacosx.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/intlmacosx.m4
new file mode 100644
index 0000000000..ebd9937c1a
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/intlmacosx.m4
@@ -0,0 +1,65 @@
+# 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 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 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.
+
+dnl Checks for special options needed on Mac OS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
+[
+ dnl Check for API introduced in Mac OS X 10.4.
+ AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+ [gt_cv_func_CFPreferencesCopyAppValue],
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <CoreFoundation/CFPreferences.h>]],
+ [[CFPreferencesCopyAppValue(NULL, NULL)]])],
+ [gt_cv_func_CFPreferencesCopyAppValue=yes],
+ [gt_cv_func_CFPreferencesCopyAppValue=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+ AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
+ [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue 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"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <CoreFoundation/CFLocale.h>]],
+ [[CFLocaleCopyPreferredLanguages();]])],
+ [gt_cv_func_CFLocaleCopyPreferredLanguages=yes],
+ [gt_cv_func_CFLocaleCopyPreferredLanguages=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
+ AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1],
+ [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.])
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
+ || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+ AC_SUBST([INTL_MACOSX_LIBS])
+])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-ld.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-ld.m4
new file mode 100644
index 0000000000..98c348faff
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-ld.m4
@@ -0,0 +1,168 @@
+# lib-ld.m4 serial 9
+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.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
+dnl collision with libtool.m4.
+
+dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes
+ ;;
+*)
+ acl_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-2.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld [default=no]])],
+ [test "$withval" = no || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+ || PATH_SEPARATOR=';'
+ }
+fi
+
+if test -n "$LD"; then
+ AC_MSG_CHECKING([for ld])
+elif test "$GCC" = yes; then
+ AC_MSG_CHECKING([for ld used by $CC])
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+if test -n "$LD"; then
+ # Let the user override the test with a path.
+ :
+else
+ AC_CACHE_VAL([acl_cv_path_LD],
+ [
+ acl_cv_path_LD= # Final result of this test
+ ac_prog=ld # Program to search in $PATH
+ if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $acl_output in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
+ while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
+ acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
+ done
+ # Got the pathname. No search in PATH is needed.
+ acl_cv_path_LD="$acl_output"
+ ac_prog=
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+ fi
+ if test -n "$ac_prog"; then
+ # Search for $ac_prog in $PATH.
+ acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$acl_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_ifs"
+ fi
+ case $host in
+ *-*-aix*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __powerpc64__ || defined _ARCH_PPC64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [# The compiler produces 64-bit code. Add option '-b64' so that the
+ # linker groks 64-bit object files.
+ case "$acl_cv_path_LD " in
+ *" -b64 "*) ;;
+ *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
+ esac
+ ], [])
+ ;;
+ sparc64-*-netbsd*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [],
+ [# The compiler produces 32-bit code. Add option '-m elf32_sparc'
+ # so that the linker groks 32-bit object files.
+ case "$acl_cv_path_LD " in
+ *" -m elf32_sparc "*) ;;
+ *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
+ esac
+ ])
+ ;;
+ esac
+ ])
+ LD="$acl_cv_path_LD"
+fi
+if test -n "$LD"; then
+ AC_MSG_RESULT([$LD])
+else
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([no acceptable ld found in \$PATH])
+fi
+AC_LIB_PROG_LD_GNU
+])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-link.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-link.m4
new file mode 100644
index 0000000000..eecf70ec76
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-link.m4
@@ -0,0 +1,800 @@
+# 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.
+
+dnl From Bruno Haible.
+
+AC_PREREQ([2.61])
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ pushdef([Name],[m4_translit([$1],[./+-], [____])])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+ dnl results of this search when this library appears as a dependency.
+ HAVE_LIB[]NAME=yes
+ popdef([NAME])
+ popdef([Name])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. The missing-message
+dnl defaults to 'no' and may contain additional hints for the user.
+dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
+dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ pushdef([Name],[m4_translit([$1],[./+-], [____])])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+
+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed lib[]Name and not disabled its use
+ dnl via --without-lib[]Name-prefix, he wants to use it.
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+ ac_save_LIBS="$LIBS"
+ dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
+ dnl because these -l options might require -L options that are present in
+ dnl LIBS. -l options benefit only from the -L options listed before it.
+ dnl Otherwise, add it to the front of LIBS, because it may be a static
+ dnl library that depends on another static library that is present in LIBS.
+ dnl Static libraries benefit only from the static libraries listed after
+ dnl it.
+ case " $LIB[]NAME" in
+ *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
+ *) LIBS="$LIB[]NAME $LIBS" ;;
+ esac
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[$3]], [[$4]])],
+ [ac_cv_lib[]Name=yes],
+ [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
+ LIBS="$ac_save_LIBS"
+ ])
+ if test "$ac_cv_lib[]Name" = yes; then
+ HAVE_LIB[]NAME=yes
+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
+ AC_MSG_CHECKING([how to link with lib[]$1])
+ AC_MSG_RESULT([$LIB[]NAME])
+ else
+ HAVE_LIB[]NAME=no
+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+ dnl $INC[]NAME either.
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIB[]NAME=
+ LTLIB[]NAME=
+ LIB[]NAME[]_PREFIX=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ popdef([NAME])
+ popdef([Name])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl acl_libext,
+dnl acl_shlibext,
+dnl acl_libname_spec,
+dnl acl_library_names_spec,
+dnl acl_hardcode_libdir_flag_spec,
+dnl acl_hardcode_libdir_separator,
+dnl acl_hardcode_direct,
+dnl acl_hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+ dnl Complain if config.rpath is missing.
+ AC_REQUIRE_AUX_FILE([config.rpath])
+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+ AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+ ])
+ wl="$acl_cv_wl"
+ acl_libext="$acl_cv_libext"
+ acl_shlibext="$acl_cv_shlibext"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ dnl Determine whether the user wants rpath handling at all.
+ AC_ARG_ENABLE([rpath],
+ [ --disable-rpath do not hardcode runtime library paths],
+ :, enable_rpath=yes)
+])
+
+dnl AC_LIB_FROMPACKAGE(name, package)
+dnl declares that libname comes from the given package. The configure file
+dnl will then not have a --with-libname-prefix option but a
+dnl --with-package-prefix option. Several libraries can come from the same
+dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
+dnl macro call that searches for libname.
+AC_DEFUN([AC_LIB_FROMPACKAGE],
+[
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ define([acl_frompackage_]NAME, [$2])
+ popdef([NAME])
+ pushdef([PACK],[$2])
+ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ define([acl_libsinpackage_]PACKUP,
+ m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
+ popdef([PACKUP])
+ popdef([PACK])
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
+dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
+ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ 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
+ --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ 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"
+ 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=
+ LTLIB[]NAME=
+ INC[]NAME=
+ LIB[]NAME[]_PREFIX=
+ dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been
+ dnl computed. So it has to be reset here.
+ HAVE_LIB[]NAME=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='$1 $2'
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+ dnl or AC_LIB_HAVE_LINKFLAGS call.
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+ else
+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+ dnl that this library doesn't exist. So just drop it.
+ :
+ fi
+ else
+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ 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
+ 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_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
+ fi
+ fi
+ done
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ case "$x" in
+ -L*)
+ 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" && 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
+ 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_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
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ dnl Found the library.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ dnl Linking with a shared library. We attempt to hardcode its
+ dnl directory into the executable's runpath, unless it's the
+ 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" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
+ dnl No hardcoding is needed.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ dnl The hardcoding into $LIBNAME is system dependent.
+ if test "$acl_hardcode_direct" = yes; then
+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+ dnl resulting binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ dnl Rely on "-L$found_dir".
+ dnl But don't add it if it's already contained in the LDFLAGS
+ dnl or the already constructed $LIBNAME
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
+ dnl here, because this doesn't fit in flags passed to the
+ dnl compiler. So give up. No hardcoding. This affects only
+ dnl very old systems.
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ dnl Linking with a static library.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+ else
+ dnl We shouldn't come here, but anyway it's good to have a
+ dnl fallback.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+ fi
+ fi
+ dnl Assume the include files are nearby.
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ 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.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 3. if it's already present in $CPPFLAGS or the already
+ dnl constructed $INCNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INC[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $INCNAME.
+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ dnl Look for dependencies.
+ if test -n "$found_la"; then
+ dnl Read the .la file. It defines the variables
+ dnl dlname, library_names, old_library, dependency_libs, current,
+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ dnl We use only dependency_libs.
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ 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$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$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;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$dependency_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ 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$dependency_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ 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
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ dnl Handle this in the next round.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ dnl Handle this in the next round. Throw away the .la's
+ dnl directory; it is already contained in a preceding -L
+ dnl option.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ dnl Most likely an immediate library name.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ dnl Didn't find the library; assume it is in the system directories
+ dnl known to the linker and runtime loader. (All the system
+ dnl directories known to the linker should also be known to the
+ dnl runtime loader, otherwise the system is severely misconfigured.)
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user must
+ dnl pass all path elements in one option. We can arrange that for a
+ dnl single library, but not when more than one $LIBNAMEs are used.
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ dnl When using libtool, the option that works for both libraries and
+ dnl executables is -R. The -R options are cumulative.
+ for found_dir in $ltrpathdirs; do
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ done
+ fi
+ popdef([PACKLIBS])
+ popdef([PACKUP])
+ popdef([PACK])
+ popdef([NAME])
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+ for element in [$2]; do
+ haveit=
+ for x in $[$1]; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ [$1]="${[$1]}${[$1]:+ }$element"
+ fi
+ done
+])
+
+dnl For those cases where a variable contains several -L and -l options
+dnl referring to unknown libraries and directories, this macro determines the
+dnl necessary additional linker options for the runtime path.
+dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
+dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
+dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
+dnl otherwise linking without libtool is assumed.
+AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
+[
+ AC_REQUIRE([AC_LIB_RPATH])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ $1=
+ if test "$enable_rpath" != no; then
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode directories into the resulting
+ dnl binary.
+ rpathdirs=
+ next=
+ for opt in $2; do
+ if test -n "$next"; then
+ 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" \
+ && test "X$dir" != "X/usr/$acl_libdirstem3"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next=
+ else
+ case $opt in
+ -L) next=yes ;;
+ -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" \
+ && test "X$dir" != "X/usr/$acl_libdirstem3"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next= ;;
+ *) next= ;;
+ esac
+ fi
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n ""$3""; then
+ dnl libtool is used for linking. Use -R options.
+ for dir in $rpathdirs; do
+ $1="${$1}${$1:+ }-R$dir"
+ done
+ else
+ dnl The linker is used for linking directly.
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user
+ dnl must pass all path elements in one option.
+ alldirs=
+ for dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="${$1}${$1:+ }$flag"
+ done
+ fi
+ fi
+ fi
+ fi
+ fi
+ AC_SUBST([$1])
+])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-prefix.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-prefix.m4
new file mode 100644
index 0000000000..c8a0b464c2
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-prefix.m4
@@ -0,0 +1,320 @@
+# 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.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_ARG_WITH([lib-prefix],
+[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+ --without-lib-prefix don't search for libraries in includedir and libdir]],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ fi
+ fi
+])
+ if test $use_additional = yes; then
+ dnl Potentially add $additional_includedir to $CPPFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's already present in $CPPFLAGS,
+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ for x in $CPPFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $CPPFLAGS.
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ dnl Potentially add $additional_libdir to $LDFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's already present in $LDFLAGS,
+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+ haveit=
+ for x in $LDFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LDFLAGS.
+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ $1
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_PREPARE_MULTILIB creates
+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, 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. 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
+ dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
+
+ 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],
+ [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
+ dnl <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
+ 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 $HOST_CPU_C_ABI_32BIT = no; then
+ acl_libdirstem2=lib/64
+ case "$host_cpu" in
+ 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 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"
+ test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
+ acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
+ ])
+ 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/^[^,]*,//' -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.21/aclocal/nls.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/nls.m4
new file mode 100644
index 0000000000..5a506fc4b5
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/nls.m4
@@ -0,0 +1,32 @@
+# 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 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 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.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE([nls],
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT([$USE_NLS])
+ AC_SUBST([USE_NLS])
+])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/po.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/po.m4
new file mode 100644
index 0000000000..3778fd7aac
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/po.m4
@@ -0,0 +1,450 @@
+# 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 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 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.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ([2.60])
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+ AC_REQUIRE([AC_PROG_SED])dnl
+ AC_REQUIRE([AM_NLS])dnl
+
+ dnl Release version of the gettext macros. This is used to ensure that
+ dnl the gettext macros and po/Makefile.in.in are in sync.
+ AC_SUBST([GETTEXT_MACRO_VERSION], [0.20])
+
+ dnl Perform the following tests also if --disable-nls has been given,
+ dnl because they are needed for "make dist" to work.
+
+ dnl Search for GNU msgfmt in the PATH.
+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+ dnl The second test excludes FreeBSD msgfmt.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
+
+ dnl Test whether it is GNU msgfmt >= 0.15.
+changequote(,)dnl
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([GMSGFMT_015])
+
+ dnl Search for GNU xgettext 0.12 or newer in the PATH.
+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+ dnl The second test excludes FreeBSD xgettext.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+
+ dnl Test whether it is GNU xgettext >= 0.15.
+changequote(,)dnl
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([XGETTEXT_015])
+
+ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
+
+ dnl Test whether it is GNU msgmerge >= 0.20.
+ if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then
+ MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt'
+ else
+ dnl Test whether it is GNU msgmerge >= 0.12.
+ if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then
+ MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet'
+ else
+ dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is
+ dnl slow. But this is not a big problem, as such old gettext versions are
+ dnl hardly in use any more.
+ MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet'
+ fi
+ fi
+ AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION])
+
+ dnl Support for AM_XGETTEXT_OPTION.
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+ AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
+
+ AC_CONFIG_COMMANDS([po-directories], [[
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ gt_tab=`printf '\t'`
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done]],
+ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS.
+ OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS"
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+ ])
+])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+ # When this code is run, in config.status, two variables have already been
+ # set:
+ # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+ # - LINGUAS is the value of the environment variable LINGUAS at configure
+ # time.
+
+changequote(,)dnl
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ # Find a way to echo strings without interpreting backslash.
+ if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='echo'
+ else
+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='printf %s\n'
+ else
+ echo_func () {
+ cat <<EOT
+$*
+EOT
+ }
+ gt_echo='echo_func'
+ fi
+ fi
+
+ # A sed script that extracts the value of VARIABLE from a Makefile.
+ tab=`printf '\t'`
+ sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
+ # Seen the first line of the variable definition.
+ s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
+ ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+ # Set POTFILES to the value of the Makefile variable POTFILES.
+ sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
+ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+ # Compute POTFILES_DEPS as
+ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+ POTFILES_DEPS=
+ for file in $POTFILES; do
+ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+ done
+ POMAKEFILEDEPS=""
+
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+ sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
+ ALL_LINGUAS=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ # Compute PROPERTIESFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties)
+ # Compute CLASSFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class)
+ # Compute QMFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+ # Compute MSGFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+ # Compute RESOURCESDLLFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ PROPERTIESFILES=
+ CLASSFILES=
+ QMFILES=
+ MSGFILES=
+ RESOURCESDLLFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ PROPERTIESFILES="$PROPERTIESFILES \$(srcdir)/\$(DOMAIN)_$lang.properties"
+ CLASSFILES="$CLASSFILES \$(srcdir)/\$(DOMAIN)_$lang.class"
+ QMFILES="$QMFILES $srcdirpre$lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ JAVACATALOGS=
+ QTCATALOGS=
+ TCLCATALOGS=
+ CSHARPCATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+ QTCATALOGS="$QTCATALOGS $lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ fi
+
+ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+ tab=`printf '\t'`
+ if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if test -n "$POMAKEFILEDEPS"; then
+ cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+ fi
+ mv "$ac_file.tmp" "$ac_file"
+])
+
+dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
+AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
+[
+ XGETTEXT_EXTRA_OPTIONS=
+])
+
+dnl Registers an option to be passed to xgettext in the po subdirectory.
+AC_DEFUN([AM_XGETTEXT_OPTION],
+[
+ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
+])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/progtest.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/progtest.m4
new file mode 100644
index 0000000000..f28010aed1
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/progtest.m4
@@ -0,0 +1,91 @@
+# 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 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 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.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+AC_PREREQ([2.50])
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+ || PATH_SEPARATOR=';'
+ }
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL([ac_cv_path_$1],
+[case "[$]$1" in
+ [[\\/]]* | ?:[[\\/]]*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$][$1])
+else
+ AC_MSG_RESULT([no])
+fi
+AC_SUBST([$1])dnl
+])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath b/meta/recipes-core/gettext/gettext-minimal-0.21/config.rpath
index 98183ff2f2..24be79cfb6 100755
--- a/meta/recipes-core/gettext/gettext-minimal-0.19.8.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-2016 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.19.8.1/remove-potcdate.sin b/meta/recipes-core/gettext/gettext-minimal-0.21/remove-potcdate.sin
index 2436c49e78..8c70dfbf14 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/remove-potcdate.sin
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/remove-potcdate.sin
@@ -1,6 +1,12 @@
-# Sed script that remove the POT-Creation-Date line in the header entry
+# Sed script that removes the POT-Creation-Date line in the header entry
# from a POT file.
#
+# Copyright (C) 2002 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.
+#
# The distinction between the first and the following occurrences of the
# pattern is achieved by looking at the hold space.
/^"POT-Creation-Date: .*"$/{
diff --git a/meta/recipes-core/gettext/gettext-minimal-native_0.19.8.1.bb b/meta/recipes-core/gettext/gettext-minimal-native_0.21.bb
index 26ff19975d..7a4dcbec57 100644
--- a/meta/recipes-core/gettext/gettext-minimal-native_0.19.8.1.bb
+++ b/meta/recipes-core/gettext/gettext-minimal-native_0.21.bb
@@ -3,12 +3,11 @@ DESCRIPTION = "Contains the m4 macros sufficient to support building \
autoconf/automake. This provides a significant build time speedup by \
the removal of gettext-native from most dependency chains (now only \
needed for gettext for the target)."
-SRC_URI = "file://aclocal.tgz \
+SRC_URI = "file://aclocal/ \
file://config.rpath \
file://Makefile.in.in \
file://remove-potcdate.sin \
file://COPYING \
- file://0001-PATCH-Disable-the-test-to-convert-euc-jp.patch \
"
INHIBIT_DEFAULT_DEPS = "1"
@@ -23,7 +22,7 @@ S = "${WORKDIR}"
do_install () {
install -d ${D}${datadir}/aclocal/
- cp ${WORKDIR}/*.m4 ${D}${datadir}/aclocal/
+ cp ${WORKDIR}/aclocal/*.m4 ${D}${datadir}/aclocal/
install -d ${D}${datadir}/gettext/po/
cp ${WORKDIR}/config.rpath ${D}${datadir}/gettext/
cp ${WORKDIR}/Makefile.in.in ${D}${datadir}/gettext/po/
diff --git a/meta/recipes-core/gettext/gettext_0.19.8.1.bb b/meta/recipes-core/gettext/gettext_0.21.bb
index 30121ad23e..bc14867bbb 100644
--- a/meta/recipes-core/gettext/gettext_0.19.8.1.bb
+++ b/meta/recipes-core/gettext/gettext_0.21.bb
@@ -6,28 +6,24 @@ a few stand-alone programs to massage in various ways the sets of translatable a
HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
SECTION = "libs"
LICENSE = "GPLv3+ & LGPL-2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+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://fix-CVE-2018-18751.patch \
- file://run-ptest \
- file://serial-tests-config.patch \
-"
-
-SRC_URI[md5sum] = "97e034cf8ce5ba73a28ff6c3c0638092"
-SRC_URI[sha256sum] = "ff942af0e438ced4a8b0ea4b0b6e0d6d657157c5e2364de57baa279c1c125c43"
+ file://parallel.patch \
+ file://use-pkgconfig.patch \
+ file://run-ptest \
+ file://serial-tests-config.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[sha256sum] = "c77d0da3102aec9c07f43671e60611ebff89a996ef159497ce8e59d075786b12"
inherit autotools texinfo pkgconfig ptest
@@ -45,6 +41,10 @@ EXTRA_OECONF += "--without-lispdir \
"
EXTRA_OECONF_append_class-target = " \
--with-bisonlocaledir=${datadir}/locale \
+ gt_cv_locale_fr_utf8=fr_FR \
+ gt_cv_locale_fr=fr_FR.ISO-8859-1 \
+ gt_cv_locale_de_utf8=de_DE \
+ gt_cv_locale_de=de_DE.ISO-8859-1 \
"
PACKAGECONFIG ??= "croco glib libxml"
@@ -127,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.19.8/"
+ GETTEXTDATADIR="${STAGING_DATADIR_NATIVE}/gettext-${PV}/"
}
@@ -144,13 +144,21 @@ do_install_ptest() {
mkdir -p ${D}${PTEST_PATH}/src
mkdir -p ${D}${PTEST_PATH}/po
mkdir -p ${D}${PTEST_PATH}/misc
+ mkdir -p ${D}${PTEST_PATH}/its
+ mkdir -p ${D}${PTEST_PATH}/styles
+ mkdir -p ${D}${PTEST_PATH}/gnulib-lib
+ mkdir -p ${D}${PTEST_PATH}/examples
+ cp -rf ${S}/gettext-tools/its/* ${D}${PTEST_PATH}/its
+ cp -rf ${S}/gettext-tools/styles/* ${D}${PTEST_PATH}/styles
+ cp -rf ${S}/gettext-tools/gnulib-lib/gettext.h ${D}${PTEST_PATH}/gnulib-lib
+ cp -rf ${S}/gettext-tools/examples/hello-c ${D}${PTEST_PATH}/examples
cp -rf ${S}/gettext-tools/tests/* ${D}${PTEST_PATH}/tests
cp -rf ${B}/gettext-tools/tests/.libs/* ${D}${PTEST_PATH}/tests
cp -rf ${B}/gettext-runtime/intl/.libs/libgnuintl.so.8* ${D}${libdir}/
cp -rf ${B}/gettext-tools/tests/Makefile ${D}${PTEST_PATH}/tests
+ cp -rf ${B}/gettext-tools/tests/init-env ${D}${PTEST_PATH}/tests
sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile
- sed -i -e 's:CONFIG_SHELL=.*:& LOCALE_FR='fr_FR.iso88591' LOCALE_FR_UTF8='fr_FR.utf8' LOCALE_JA='ja_JP.eucjp':g' \
- -e 's:lang-c lang-c++:lang-c++:g' ${D}${PTEST_PATH}/tests/Makefile
+ sed -i -e 's:lang-c lang-c++:lang-c++:g' ${D}${PTEST_PATH}/tests/Makefile
install ${S}/gettext-tools/src/msgunfmt.tcl ${D}${PTEST_PATH}/src
install ${S}/gettext-tools/src/project-id ${D}${PTEST_PATH}/src
install ${B}/gettext-runtime/src/gettext.sh ${D}${PTEST_PATH}/src
@@ -178,8 +186,19 @@ RDEPENDS_${PN}-ptest_append_libc-glibc = "\
glibc-gconv-koi8-r \
glibc-gconv-iso8859-2 \
glibc-charmap-iso-8859-2 \
+ glibc-gconv-iso8859-1 \
+ glibc-charmap-iso-8859-1 \
glibc-gconv-euc-kr \
glibc-charmap-euc-kr \
+ glibc-gconv-euc-jp \
+ glibc-charmap-euc-jp \
+ locale-base-de-de \
+ locale-base-fr-fr \
+"
+
+RRECOMMENDS_${PN}-ptest_append_libc-glibc = "\
+ locale-base-de-de.iso-8859-1 \
+ locale-base-fr-fr.iso-8859-1 \
"
INSANE_SKIP_${PN}-ptest += "ldflags"
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 ede29c90ba..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 474e59abec88de0c455836c1f53152bf2aa26c34 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
@@ -9,33 +9,44 @@ rather than use target paths).
Upstream-Status: Inappropriate [upstream wants the paths in .pc files]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
- gio/meson.build | 6 +++---
- glib/meson.build | 6 +++---
- 2 files changed, 6 insertions(+), 6 deletions(-)
+ gio/meson.build | 16 ++++++++--------
+ glib/meson.build | 6 +++---
+ 2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/gio/meson.build b/gio/meson.build
-index 85d8b14..657720a 100644
+index 532b086..98468a3 100644
--- a/gio/meson.build
+++ b/gio/meson.build
-@@ -813,9 +813,9 @@ pkg.generate(libraries : 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'),
- 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
-- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen')],
+- 'gdbus=' + join_paths('${bindir}', 'gdbus'),
+- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen'),
+- 'gresource=' + join_paths('${bindir}', 'gresource'),
+- 'gsettings=' + join_paths('${bindir}', 'gsettings')],
++ 'gio=gio',
++ 'gio_querymodules=gio-querymodules',
+ 'glib_compile_schemas=glib-compile-schemas',
+ 'glib_compile_resources=glib-compile-resources',
-+ 'gdbus_codegen=gdbus-codegen'],
++ 'gdbus=gdbus',
++ 'gdbus_codegen=gdbus-codegen',
++ 'gresource=gresource',
++ 'gsettings=gsettings'],
version : glib_version,
install_dir : glib_pkgconfigreldir,
filebase : 'gio-2.0',
diff --git a/glib/meson.build b/glib/meson.build
-index c05c694..434e8b1 100644
+index aaf5f00..1e0992b 100644
--- a/glib/meson.build
+++ b/glib/meson.build
-@@ -261,9 +261,9 @@ pkg.generate(libraries : [libglib, libintl],
+@@ -375,9 +375,9 @@ pkg.generate(libglib,
subdirs : ['glib-2.0'],
extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
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
new file mode 100644
index 0000000000..16f2d31496
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
@@ -0,0 +1,31 @@
+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
+
+translation files are always installed under PREFIX/share/locale in uclibc
+based systems therefore lets set DATADIRNAME to "share".
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+
+---
+ m4macros/glib-gettext.m4 | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/m4macros/glib-gettext.m4 b/m4macros/glib-gettext.m4
+index df6fbf0..47db864 100644
+--- a/m4macros/glib-gettext.m4
++++ b/m4macros/glib-gettext.m4
+@@ -293,6 +293,10 @@ msgstr ""
+ CATOBJEXT=.mo
+ DATADIRNAME=share
+ ;;
++ *-*-musl* | *-*-linux-uclibc*)
++ CATOBJEXT=.gmo
++ DATADIRNAME=share
++ ;;
+ *)
+ CATOBJEXT=.mo
+ DATADIRNAME=lib
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 d22a646c5d..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 f5a4b4c0579734923c9caf70944322efff57318b 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,11 +14,11 @@ 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 028b196..217ccb1 100644
+index dab65d2..e8bb2ee 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -12,7 +12,7 @@ test_c_args = [
- '-DGLIB_COMPILE_SCHEMAS="@0@"'.format(glib_compile_schemas.full_path()),
+ '-UG_DISABLE_ASSERT',
]
-if host_machine.system() == 'windows'
@@ -26,7 +26,7 @@ index 028b196..217ccb1 100644
common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
endif
-@@ -119,7 +119,7 @@ if dbus1_dep.found()
+@@ -132,7 +132,7 @@ else
endif
# Test programs buildable on UNIX only
@@ -35,7 +35,7 @@ index 028b196..217ccb1 100644
gio_tests += {
'file' : {},
'gdbus-peer' : {
-@@ -327,7 +327,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 028b196..217ccb1 100644
gio_tests += {'win32-streams' : {}}
endif
-@@ -392,7 +392,7 @@ if cc.get_id() != 'msvc'
+@@ -454,7 +454,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
}
endif
@@ -54,10 +54,10 @@ index 028b196..217ccb1 100644
'gdbus-example-unix-fd-client' : {
'install' : false,
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
-index d54fc41..a4761fe 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,10 +67,10 @@ index d54fc41..a4761fe 100644
glib_tests += {
'gpoll' : {
diff --git a/meson.build b/meson.build
-index a745024..e87eae5 100644
+index e1b4b79..afb6eaa 100644
--- a/meson.build
+++ b/meson.build
-@@ -31,6 +31,9 @@ else
+@@ -32,6 +32,9 @@ else
endif
host_system = host_machine.system()
@@ -81,10 +81,10 @@ index a745024..e87eae5 100644
glib_version = meson.project_version()
glib_api_version = '2.0'
diff --git a/tests/meson.build b/tests/meson.build
-index 11075dd..cd6067b 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
new file mode 100644
index 0000000000..d33fdd4d8b
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
@@ -0,0 +1,28 @@
+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
+
+This test requires building resources in a way that is
+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/gio/tests/resources.c b/gio/tests/resources.c
+index c44d214..e289a01 100644
+--- a/gio/tests/resources.c
++++ b/gio/tests/resources.c
+@@ -993,7 +993,7 @@ main (int argc,
+ g_test_add_func ("/resource/automatic", test_resource_automatic);
+ /* This only uses automatic resources too, so it tests the constructors and destructors */
+ g_test_add_func ("/resource/module", test_resource_module);
+- g_test_add_func ("/resource/binary-linked", test_resource_binary_linked);
++ /* g_test_add_func ("/resource/binary-linked", test_resource_binary_linked); */
+ #endif
+ g_test_add_func ("/resource/uri/query-info", test_uri_query_info);
+ g_test_add_func ("/resource/uri/file", test_uri_file);
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
new file mode 100644
index 0000000000..44482dd2b7
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
@@ -0,0 +1,29 @@
+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
+
+Fixes
+./glib-2.62.1/glib/gatomic.c:675:2: error: G_ATOMIC_LOCK_FREE defined, but incapable of lock-free atomics.
+^
+
+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 afb6eaa..6aa70f5 100644
+--- a/meson.build
++++ b/meson.build
+@@ -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
+- if cc.get_id() == 'gcc' and not cc.compiles(atomicdefine, name : 'atomic ops define')
++ if (cc.get_id() == 'gcc' or cc.get_id() == 'clang') and not cc.compiles(atomicdefine, name : 'atomic ops define')
+ # Old gcc release may provide
+ # __sync_bool_compare_and_swap but doesn't define
+ # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch
deleted file mode 100644
index d1ed028759..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Upstream-Status: Backport [fc88e56bfc2b09a8fb2b350e76f6425ab0a056d7]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 141acf6a2f3b21d63c9cfe620b8e20a506e78493 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Wed, 13 Mar 2019 16:22:09 +0000
-Subject: [PATCH] meson: do a build-time check for strlcpy before attempting
- runtime check
-
-In cross-compilation environments the runtime check isn't possible so it is up
-to the builder to seed the cross file, but we can definitely state that strlcpy
-doesn't exist with a build test.
----
- meson.build | 30 ++++++++++++++++--------------
- 1 file changed, 16 insertions(+), 14 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 15039e448..414f2d9b1 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1860,22 +1860,24 @@ endif
-
- # Test if we have strlcpy/strlcat with a compatible implementation:
- # https://bugzilla.gnome.org/show_bug.cgi?id=53933
--if cc_can_run
-- rres = cc.run('''#include <stdlib.h>
-- #include <string.h>
-- int main() {
-- char p[10];
-- (void) strlcpy (p, "hi", 10);
-- if (strlcat (p, "bye", 0) != 3)
-- return 1;
-- return 0;
-- }''',
-- name : 'OpenBSD strlcpy/strlcat')
-- if rres.compiled() and rres.returncode() == 0
-+if cc.has_function('strlcpy')
-+ if cc_can_run
-+ rres = cc.run('''#include <stdlib.h>
-+ #include <string.h>
-+ int main() {
-+ char p[10];
-+ (void) strlcpy (p, "hi", 10);
-+ if (strlcat (p, "bye", 0) != 3)
-+ return 1;
-+ return 0;
-+ }''',
-+ name : 'OpenBSD strlcpy/strlcat')
-+ if rres.compiled() and rres.returncode() == 0
-+ glib_conf.set('HAVE_STRLCPY', 1)
-+ endif
-+ elif meson.get_cross_property('have_strlcpy', false)
- glib_conf.set('HAVE_STRLCPY', 1)
- endif
--elif meson.get_cross_property('have_strlcpy', false)
-- glib_conf.set('HAVE_STRLCPY', 1)
- endif
-
- python = import('python').find_installation('python3')
---
-2.11.0
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch
deleted file mode 100644
index 5a1a589890..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 635fe26af51f20194c8b208e7d01303be1086d68 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 19 Feb 2019 10:31:11 +0100
-Subject: [PATCH] meson.build: do not hardcode 'linux' as the host system
-
-OE build system can set this to other values that include 'linux',
-e.g. 'linux-gnueabi'
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 4348f20..af5ed63 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1574,7 +1574,7 @@ atomicdefine = '''
- # We know that we can always use real ("lock free") atomic operations with MSVC
- if cc.get_id() == 'msvc' or cc.links(atomictest, name : 'atomic ops')
- have_atomic_lock_free = true
-- if (host_system == 'android' or host_system == 'linux') and not cc.compiles(atomicdefine, name : 'atomic ops define')
-+ if (host_system == 'android' or host_system.contains('linux')) and not cc.compiles(atomicdefine, name : 'atomic ops define')
- # When building for armv5 on Linux, gcc provides
- # __sync_bool_compare_and_swap but doesn't define
- # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
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 ff2629f06c..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 23cd157352ac8a53f992ddc6d6d01caadf1c79bc 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
@@ -11,14 +11,14 @@ Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
- gio/tests/meson.build | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
+ gio/tests/meson.build | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
-index 65f43e2..028b196 100644
+index 788cf97..dab65d2 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
-@@ -185,7 +185,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,12 +27,11 @@ index 65f43e2..028b196 100644
annotate_args = [
'--annotate', 'org.project.Bar', 'Key1', 'Value1',
'--annotate', 'org.project.Bar', 'org.gtk.GDBus.Internal', 'Value2',
-@@ -453,12 +453,13 @@ 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()
-+#if not meson.is_cross_build() or meson.has_exe_wrapper()
+if meson.is_cross_build()
plugin_resources_c = custom_target('plugin-resources.c',
@@ -43,7 +42,7 @@ index 65f43e2..028b196 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate-source',
-@@ -482,7 +483,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',
@@ -52,7 +51,7 @@ index 65f43e2..028b196 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
-@@ -493,7 +494,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',
@@ -61,7 +60,7 @@ index 65f43e2..028b196 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
-@@ -504,7 +505,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',
@@ -70,7 +69,7 @@ index 65f43e2..028b196 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
-@@ -516,7 +517,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',
@@ -79,7 +78,7 @@ index 65f43e2..028b196 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
-@@ -527,7 +528,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',
@@ -88,7 +87,7 @@ index 65f43e2..028b196 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
-@@ -538,7 +539,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',
@@ -97,12 +96,11 @@ index 65f43e2..028b196 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
-@@ -565,11 +566,12 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
- # Support for --add-symbol was added to LLVM objcopy in 2019
- # (https://reviews.llvm.org/D58234). FIXME: This test could be enabled for
- # LLVM once that support is in a stable release.
-- if build_machine.system() == 'linux' and cc.get_id() == 'gcc'
-+ #if build_machine.system() == 'linux' and cc.get_id() == 'gcc'
+@@ -668,11 +668,11 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+
+ 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',
@@ -112,7 +110,7 @@ index 65f43e2..028b196 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
-@@ -581,7 +583,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 b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common
new file mode 100644
index 0000000000..0d7c5fa3f8
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common
@@ -0,0 +1,3 @@
+[properties]
+# On all known supported architectures the stack grows down
+growing_stack = false
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc
index b5df400727..c4648f58c7 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross
+++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc
@@ -3,7 +3,3 @@ have_c99_vsnprintf = true
have_c99_snprintf = true
have_unix98_printf = true
va_val_copy = true
-growing_stack = false
-
-[binaries]
-env = "/usr/bin/env"
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
new file mode 100644
index 0000000000..adad7e62ee
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux
@@ -0,0 +1,5 @@
+[properties]
+have_proc_self_cmdline = true
+
+[binaries]
+env = '/usr/bin/env'
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw
new file mode 100644
index 0000000000..75f911ba1e
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw
@@ -0,0 +1,6 @@
+[properties]
+have_c99_vsnprintf = false
+have_c99_snprintf = false
+have_unix98_printf = false
+va_val_copy = true
+have_proc_self_cmdline = false
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl
new file mode 100644
index 0000000000..3049e5116e
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl
@@ -0,0 +1,6 @@
+[properties]
+have_c99_vsnprintf = true
+have_c99_snprintf = true
+have_unix98_printf = true
+va_val_copy = true
+have_strlcpy = true
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 380bee086c..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 9c5d6e6ce5254a5f050bba2118a4a1807292c02a 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 b92162d..fce9933 100644
+index c420260..a023745 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
-@@ -40,6 +40,8 @@
- #include "gnetworkmonitor.h"
+@@ -47,6 +47,8 @@
+ #include "gmemorymonitordbus.h"
#ifdef G_OS_WIN32
#include "gregistrysettingsbackend.h"
+#else
@@ -31,8 +31,8 @@ index b92162d..fce9933 100644
#endif
#include <glib/gstdio.h>
-@@ -1156,7 +1158,15 @@ get_gio_module_dir (void)
- #endif
+@@ -1158,7 +1160,15 @@ get_gio_module_dir (void)
+ 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/run-ptest b/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
index fc50082c8e..7a231b514b 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
+++ b/meta/recipes-core/glib-2.0/glib-2.0/run-ptest
@@ -1,6 +1,9 @@
#! /bin/sh
set -eux
+if id -u glib2-test; then
+ userdel glib2-test
+fi
useradd glib2-test
su glib2-test -c 'gnome-desktop-testing-runner glib'
userdel glib2-test
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch b/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch
deleted file mode 100644
index 7aa6217d69..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Fix DATADIRNAME on uclibc/Linux
-
-translation files are always installed under PREFIX/share/locale in uclibc
-based systems therefore lets set DATADIRNAME to "share".
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: glib-2.46.1/m4macros/glib-gettext.m4
-===================================================================
---- glib-2.46.1.orig/m4macros/glib-gettext.m4
-+++ glib-2.46.1/m4macros/glib-gettext.m4
-@@ -243,6 +243,10 @@ msgstr ""
- CATOBJEXT=.mo
- DATADIRNAME=share
- ;;
-+ *-*-musl* | *-*-linux-uclibc*)
-+ CATOBJEXT=.gmo
-+ DATADIRNAME=share
-+ ;;
- *)
- CATOBJEXT=.mo
- DATADIRNAME=lib
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.60.7.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.60.7.bb
deleted file mode 100644
index 740473719d..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.60.7.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require glib.inc
-
-PE = "1"
-
-SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
- file://run-ptest \
- file://uclibc_musl_translation.patch \
- file://Enable-more-tests-while-cross-compiling.patch \
- file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
- file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
- file://0001-Do-not-ignore-return-value-of-write.patch \
- file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
- file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
- file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
- file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \
- file://0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch \
- "
-
-SRC_URI_append_class-native = " file://relocate-modules.patch"
-SRC_URI_append_class-target = " file://glib-meson.cross"
-
-SRC_URI[md5sum] = "f036f78a7fca330d9f7d939fcf794bde"
-SRC_URI[sha256sum] = "8b12c0af569afd3b71200556ad751bad4cf4bf7bc4b5f880638459a42ca86310"
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.64.5.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.64.5.bb
new file mode 100644
index 0000000000..a1233e6926
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.64.5.bb
@@ -0,0 +1,49 @@
+require glib.inc
+
+PE = "1"
+
+SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
+ file://run-ptest \
+ file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
+ file://Enable-more-tests-while-cross-compiling.patch \
+ file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
+ file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
+ file://0001-Do-not-ignore-return-value-of-write.patch \
+ file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
+ file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
+ file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
+ file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
+ file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
+ "
+
+SRC_URI_append_class-native = " file://relocate-modules.patch"
+
+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.
+inherit siteinfo
+def find_meson_cross_files(d):
+ if bb.data.inherits_class('native', d):
+ return ""
+
+ corebase = d.getVar("COREBASE")
+ import collections
+ sitedata = siteinfo_data(d)
+ # filename -> found
+ files = collections.OrderedDict()
+ for path in d.getVar("FILESPATH").split(":"):
+ for element in sitedata:
+ filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
+ files[filename.replace(corebase, "${COREBASE}")] = os.path.exists(filename)
+
+ items = ["--cross-file=" + k for k,v in files.items() if v]
+ d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
+ items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
+ d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
+
+python () {
+ find_meson_cross_files(d)
+}
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index 3ae22f5e80..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 distro_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,14 +44,13 @@ 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"
PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,dbus"
EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=disabled"
-EXTRA_OEMESON_append_class-target = " --cross-file ${WORKDIR}/glib-meson.cross"
do_configure_prepend() {
sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -59,13 +60,15 @@ FILES_${PN} = "${libdir}/lib*${SOLIBS} \
${libdir}/gio \
${libexecdir}/*gio-querymodules \
${datadir}/glib-2.0/schemas"
+
+FILES_${PN}-utils += "${bindir}/glib-genmarshal \
+ ${bindir}/glib-gettextize \
+ ${bindir}/glib-mkenums \
+ ${bindir}/glib-compile-resources"
+
FILES_${PN}-dev += "${libdir}/glib-2.0/include \
${libdir}/gio/modules/lib*${SOLIBSDEV} \
${libdir}/gio/modules/*.la \
- ${bindir}/glib-genmarshal \
- ${bindir}/glib-gettextize \
- ${bindir}/glib-mkenums \
- ${bindir}/glib-compile-resources \
${datadir}/glib-2.0/gettext/po/Makefile.in.in \
${datadir}/glib-2.0/schemas/gschema.dtd \
${datadir}/glib-2.0/valgrind/glib.supp \
@@ -127,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
@@ -139,6 +147,8 @@ CODEGEN_PYTHON_RDEPENDS_mingw32 = ""
RDEPENDS_${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}"
+RDEPENDS_${PN}-ptest += "${PN}-utils"
+
RDEPENDS_${PN}-ptest += "\
coreutils \
libgcc \
@@ -158,6 +168,10 @@ RDEPENDS_${PN}-ptest += "\
${PN}-locale-pl \
${PN}-locale-ru \
${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.60.3.bb b/meta/recipes-core/glib-networking/glib-networking_2.64.3.bb
index 0278ab2fb6..074389f552 100644
--- a/meta/recipes-core/glib-networking/glib-networking_2.60.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] = "e8fd0462a82269fb4bbd6c07a1e7d0f4"
-SRC_URI[archive.sha256sum] = "d50183046a4ff955d8cc7e953067cdfc94f14dbfda3024bf377ff37a3121dcd5"
+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.30.bb b/meta/recipes-core/glibc/cross-localedef-native_2.32.bb
index 29cd43e89a..5a0abbb70f 100644
--- a/meta/recipes-core/glibc/cross-localedef-native_2.30.bb
+++ b/meta/recipes-core/glibc/cross-localedef-native_2.32.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
SECTION = "libs"
LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \
+LIC_FILES_CHKSUM = "file://LICENSES;md5=1541fd8f5e8f1579512bf05f533371ba \
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
@@ -21,17 +21,18 @@ 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-from-util-linux.patch \
+ file://0002-localedef-fix-ups-hardlink-to-make-it-compile.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-Clear-cache-lines-on-ppc8xx.patch \
- file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \
- file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \
- file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \
- file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
- file://add-cross-localedef-hardlink.patch \
- file://allow-compile-separate-from-util-linux-hardlink.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 fa46fd89f1..027c700998 100644
--- a/meta/recipes-core/glibc/glibc-common.inc
+++ b/meta/recipes-core/glibc/glibc-common.inc
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
SECTION = "libs"
LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM ?= "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \
+LIC_FILES_CHKSUM ?= "file://LICENSES;md5=1541fd8f5e8f1579512bf05f533371ba \
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
@@ -22,4 +22,4 @@ ARM_INSTRUCTION_SET_armv6 = "arm"
#
COMPATIBLE_HOST_libc-musl_class-target = "null"
-PV = "2.30"
+PV = "2.32"
diff --git a/meta/recipes-core/glibc/glibc-locale_2.30.bb b/meta/recipes-core/glibc/glibc-locale_2.32.bb
index f7702e0358..f7702e0358 100644
--- a/meta/recipes-core/glibc/glibc-locale_2.30.bb
+++ b/meta/recipes-core/glibc/glibc-locale_2.32.bb
diff --git a/meta/recipes-core/glibc/glibc-mtrace_2.30.bb b/meta/recipes-core/glibc/glibc-mtrace_2.32.bb
index 0b69bad46a..0b69bad46a 100644
--- a/meta/recipes-core/glibc/glibc-mtrace_2.30.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 d7037c5cce..f7e4b59a5b 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -1,6 +1,6 @@
INHIBIT_SYSROOT_STRIP = "1"
-PACKAGES = "${PN}-dbg catchsegv sln nscd ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libnss-db libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc"
+PACKAGES = "${PN}-dbg catchsegv sln nscd ldconfig ldd tzcode glibc-thread-db ${PN}-pic libcidn libmemusage libnss-db libsegfault ${PN}-pcprofile libsotruss ${PN} ${PN}-utils glibc-extra-nss ${PN}-dev ${PN}-staticdev ${PN}-doc"
# The ld.so in this glibc supports the GNU_HASH
RPROVIDES_${PN} = "eglibc rtld(GNU_HASH)"
@@ -23,7 +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}/* ${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.*"
@@ -63,9 +65,21 @@ DESCRIPTION_${PN}-utils = "Miscellaneous utilities including getconf, iconv, loc
DESCRIPTION_libsotruss = "Library to support sotruss which traces calls through PLTs"
DESCRIPTION_tzcode = "tzcode, timezone zoneinfo utils -- zic, zdump, tzselect"
-inherit libc-common multilib_header
+inherit multilib_header
+
+do_install() {
+ oe_runmake install_root=${D} install
+ install -Dm 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ld.so.conf
+ install -d ${D}${localedir}
+ make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
+ # get rid of some broken files...
+ for i in ${GLIBC_BROKEN_LOCALES}; do
+ sed -i "/$i/d" ${WORKDIR}/SUPPORTED
+ done
+ rm -f ${D}${sysconfdir}/rpc
+ rm -rf ${D}${datadir}/zoneinfo
+ rm -rf ${D}${libexecdir}/getconf
-do_install_append () {
rm -f ${D}${sysconfdir}/localtime
# remove empty glibc dir
@@ -73,7 +87,7 @@ do_install_append () {
rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
fi
- oe_multilib_header bits/syscall.h bits/long-double.h bits/floatn.h
+ oe_multilib_header bits/syscall.h bits/long-double.h bits/floatn.h bits/endianness.h bits/struct_rwlock.h
if [ -f ${D}${bindir}/mtrace ]; then
sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' -e '2s,exec.*perl,exec ${USRBINPATH}/env perl,' ${D}${bindir}/mtrace
@@ -106,12 +120,12 @@ do_install_append () {
fi
}
+def get_libc_fpu_setting(bb, d):
+ if d.getVar('TARGET_FPU') in [ 'soft', 'ppc-efd' ]:
+ return "--without-fp"
+ return ""
+
do_install_append_class-target() {
- if ! ${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', 'true', 'false', d)}; then
- # The distro doesn't want these files so let's not install them
- rm -f ${D}${sysconfdir}/ld.so.conf
- rm -f ${D}${base_sbindir}/ldconfig
- fi
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/tmpfiles.d
echo "d /run/nscd 755 root root -" \
@@ -138,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
@@ -178,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
@@ -216,6 +229,8 @@ stash_locale_cleanup () {
rm -rf $cleanupdir${libdir}/gconv
rm -rf $cleanupdir${localedir}
rm -rf $cleanupdir${datadir}/locale
+ rmdir --ignore-fail-on-non-empty $cleanupdir${datadir}
+
if [ "${libdir}" != "${exec_prefix}/lib" ] && [ "${root_prefix}/lib" != "${exec_prefix}/lib" ]; then
if [ -d "$cleanupdir${exec_prefix}/lib" ]; then
if [ -z "${ARCH_DYNAMIC_LOADER}" -o \
@@ -236,6 +251,25 @@ stash_locale_package_cleanup() {
stash_locale_cleanup ${PKGD}
}
+python populate_packages_prepend () {
+ if d.getVar('DEBIAN_NAMES'):
+ pkgs = d.getVar('PACKAGES').split()
+ bpn = d.getVar('BPN')
+ prefix = d.getVar('MLPREFIX') or ""
+ # Set the base package...
+ d.setVar('PKG_' + prefix + bpn, prefix + 'libc6')
+ libcprefix = prefix + bpn + '-'
+ for p in pkgs:
+ # And all the subpackages.
+ if p.startswith(libcprefix):
+ renamed = p.replace(bpn, 'libc6', 1)
+ d.setVar('PKG_' + p, renamed)
+ # For backward compatibility with old -dbg package
+ d.appendVar('RPROVIDES_' + libcprefix + 'dbg', ' ' + prefix + 'libc-dbg')
+ d.appendVar('RCONFLICTS_' + libcprefix + 'dbg', ' ' + prefix + 'libc-dbg')
+ d.appendVar('RREPLACES_' + libcprefix + 'dbg', ' ' + prefix + 'libc-dbg')
+}
+
pkg_postinst_nscd () {
if [ -z "$D" ]; then
if command -v systemd-tmpfiles >/dev/null; then
diff --git a/meta/recipes-core/glibc/glibc-scripts_2.30.bb b/meta/recipes-core/glibc/glibc-scripts_2.32.bb
index 5a89bd8022..5a89bd8022 100644
--- a/meta/recipes-core/glibc/glibc-scripts_2.30.bb
+++ b/meta/recipes-core/glibc/glibc-scripts_2.32.bb
diff --git a/meta/recipes-core/glibc/glibc-testing.inc b/meta/recipes-core/glibc/glibc-testing.inc
deleted file mode 100644
index 0a42ae7f7c..0000000000
--- a/meta/recipes-core/glibc/glibc-testing.inc
+++ /dev/null
@@ -1,95 +0,0 @@
-do_compile_append () {
- # now generate script to drive testing
- echo "#!/usr/bin/env sh" >${B}/${HOST_PREFIX}testglibc
- set >> ${B}/${HOST_PREFIX}testglibc
- # prune out the unneeded vars
- sed -i -e "/^BASH/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^USER/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^OPT/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^DIRSTACK/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^EUID/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^FUNCNAME/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^GROUPS/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^HOST/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^HOME/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^IFS/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^LC_ALL/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^LOGNAME/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^MACHTYPE/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^OSTYPE/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^PIPE/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^SHELL/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^'/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^UID/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^TERM/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^PKG_/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^POSIXLY_/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^PPID/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^PS4/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^Q/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^SHLVL/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^STAGING/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^LD_LIBRARY_PATH/d" ${B}/${HOST_PREFIX}testglibc
- sed -i -e "/^PSEUDO/d" ${B}/${HOST_PREFIX}testglibc
-
- # point to real sysroot not the toolchain bootstrap sysroot
- sed -i -e "s/\-tcbootstrap//g" ${B}/${HOST_PREFIX}testglibc
-
- # use the final cross-gcc to test since some tests need libstdc++
- sed -i -e "s/^PATH=.*\.gcc-cross-initial\:/PATH=/g" ${B}/${HOST_PREFIX}testglibc
-
- # append execution part script
-cat >> ${B}/${HOST_PREFIX}testglibc << STOP
-target="\$1"
-if [ "x\$target" = "x" ]
-then
- echo "Please specify the target machine and remote user in form of user@target"
- exit 1;
-fi
-ssh \$target ls \$PWD\ 2>&1 > /dev/null
-if [ "x\$?" != "x0" ]
-then
- echo "Failed connecting to \$target it could be because of:"
- echo "1. You dont have passwordless ssh setup to access \$target"
- echo "2. NFS share on \$target is not mounted or if mounted then not matching the build tree layout."
- echo " The tree should be accessible at same location on build host and target"
- echo " You can add nfs-client to IMAGE_FEATURES to get the nfs client on target"
- echo "3. nfs server on build host is not running."
- echo " Please make sure that you have 'no_root_squash' added in /etc/exports if you want"
- echo " to test as root user on target (usually its recommended to create a non"
- echo " root user."
- echo " As a sanity check make sure that target can read/write to the glibc build tree"
- echo " Please refer to ${S}/EGLIBC.cross-testing for further instructions on setup"
- exit 1
-fi
- echo "# we test using cross compiler from real sysroot therefore override the" > ${B}/configparms
- echo "# definitions that come from ${B}/config.make" >> ${B}/configparms
- fgrep tcbootstrap ${B}/config.make > ${B}/configparms
- sed -i -e "s/\-tcbootstrap//g" ${B}/configparms
-
-# g++ uses flag -nostdinc, so the locations of system include headers must be explicitly specified
-# If the locations are not already specified in config.make, then we provide the following locations:
-# <sysroot>/usr/include/c++/<g++ version>
-# <sysroot>/usr/include/c++/<g++ version>/<machine>
-
-cxxincludes=\`cat ${B}/config.make | gawk '\$1 == "c++-sysincludes"' | gawk -F"=" '{print \$2}' | sed "s/[ \t]\?//g"\`
-
-if [ -z "\$cxxincludes" ]; then
- sysroot=\`cat ${B}/configparms | sed -n "/CXX/p" | sed -e "s/^.*--sysroot=//"\`
- cxx=\`cat ${B}/configparms | gawk '\$1 ~ /^CXX/' | gawk -F"=" '{print \$2}' | gawk '{print \$1}'\`
- cxxmachine=\`\$cxx -dumpmachine\`
- cxxversion=\`\$cxx -dumpversion\`
- # pass the new value of c++-sysincludes via configparms
- echo "# c++-sysincludes added:" >> ${B}/configparms
- echo "c++-sysincludes = -isystem \$sysroot/usr/include/c++/\$cxxversion -isystem \$sysroot/usr/include/c++/\$cxxversion/\$cxxmachine" >> ${B}/configparms
-fi
-
-wrapper="${S}/scripts/cross-test-ssh.sh \$target"
-localedef="${STAGING_BINDIR_NATIVE}/cross-localedef --little-endian --uint32-align=4"
-make tests-clean
-make cross-localedef="\$localedef" cross-test-wrapper="\$wrapper" -k check
-rm -rf ${B}/configparms
-STOP
-
- chmod +x ${B}/${HOST_PREFIX}testglibc
-}
diff --git a/meta/recipes-core/glibc/glibc-testsuite_2.30.bb b/meta/recipes-core/glibc/glibc-testsuite_2.32.bb
index 657fd4dbc1..d887aeff79 100644
--- a/meta/recipes-core/glibc/glibc-testsuite_2.30.bb
+++ b/meta/recipes-core/glibc/glibc-testsuite_2.32.bb
@@ -1,5 +1,7 @@
require glibc_${PV}.bb
+EXCLUDE_FROM_WORLD = "1"
+
# handle PN differences
FILESEXTRAPATHS_prepend := "${THISDIR}/glibc:"
@@ -58,3 +60,4 @@ addtask do_check after do_compile
inherit nopackages
deltask do_stash_locale
+deltask do_install
diff --git a/meta/recipes-core/glibc/glibc-version.inc b/meta/recipes-core/glibc/glibc-version.inc
index c18c583399..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.30/master"
-PV = "2.30"
-SRCREV_glibc ?= "be9a328c93834648e0bec106a1f86357d1a8c7e1"
-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 252fd56c13..d2f02ad59b 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -1,17 +1,19 @@
require glibc-common.inc
require glibc-ld.inc
-require glibc-testing.inc
DEPENDS = "virtual/${TARGET_PREFIX}gcc libgcc-initial linux-libc-headers"
PROVIDES = "virtual/libc"
PROVIDES += "virtual/libintl virtual/libiconv"
-inherit autotools texinfo distro_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/add-cross-localedef-hardlink.patch b/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch
index 8471121949..e0ec1887dc 100644
--- a/meta/recipes-core/glibc/glibc/add-cross-localedef-hardlink.patch
+++ b/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch
@@ -1,10 +1,467 @@
+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 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
+in parallel) and perform a creation of a .tmp file and remove the
+original and move the .tmp file in. The problem is that if a probe
+occurs a hard link can be requested to the file that is being removed.
+This will lead to a stray copy or potentially, on a loaded system
+cause race condition which pseudo cannot deal with, where it is left
+with a hard link request to a file that no longer exists. In this
+situation psuedo will inherit the permissions of what ever the target
+inode had to offer.
+
+In short, there are two problems:
+
+1) You will be left with stray copies when using the hard link
+resolution that is built in while running in parallel with
+localedef.
+
+2) When running under pseudo the possibility exists for uid/gid
+leakage when the source file is removed before the hard link can
+be completed.
+
+The solution is to call localedef with --no-hard-links and separately
+process the hardlinks at a later point. To do this requires the
+inclusion of the hardlink utility found in modern versions of
+util-linux. Most host systems do not have this, so it will be
+included with the cross-localedef binary.
+
+[YOCTO #11299]
+[YOCTO #12434]
+
+Upstream-Status: Pending
+
+Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- locale/programs/c.h | 407 ++++++++++++++++++++++
- locale/programs/cross-localedef-hardlink.c | 528 +++++++++++++++++++++++++++++
- locale/programs/xalloc.h | 129 +++++++
- localedef/Makefile.in | 8
- 4 files changed, 1071 insertions(+), 1 deletion(-)
+ locale/programs/c.h | 407 ++++++++++++++++
+ locale/programs/cross-localedef-hardlink.c | 528 +++++++++++++++++++++
+ locale/programs/xalloc.h | 129 +++++
+ 3 files changed, 1064 insertions(+)
+ create mode 100644 locale/programs/c.h
+ create mode 100644 locale/programs/cross-localedef-hardlink.c
+ create mode 100644 locale/programs/xalloc.h
+diff --git a/locale/programs/c.h b/locale/programs/c.h
+new file mode 100644
+index 0000000000..d0a402e90e
+--- /dev/null
++++ b/locale/programs/c.h
+@@ -0,0 +1,407 @@
++/*
++ * Fundamental C definitions.
++ */
++
++#ifndef UTIL_LINUX_C_H
++#define UTIL_LINUX_C_H
++
++#include <limits.h>
++#include <stddef.h>
++#include <stdint.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <stdarg.h>
++#include <stdlib.h>
++#include <string.h>
++#include <errno.h>
++
++#include <assert.h>
++
++#ifdef HAVE_ERR_H
++# include <err.h>
++#endif
++
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h> /* for major, minor */
++#endif
++
++#ifndef LOGIN_NAME_MAX
++# define LOGIN_NAME_MAX 256
++#endif
++
++#ifndef NAME_MAX
++# define NAME_MAX PATH_MAX
++#endif
++
++/*
++ * __GNUC_PREREQ is deprecated in favour of __has_attribute() and
++ * __has_feature(). The __has macros are supported by clang and gcc>=5.
++ */
++#ifndef __GNUC_PREREQ
++# if defined __GNUC__ && defined __GNUC_MINOR__
++# define __GNUC_PREREQ(maj, min) \
++ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
++# else
++# define __GNUC_PREREQ(maj, min) 0
++# endif
++#endif
++
++#ifdef __GNUC__
++
++/* &a[0] degrades to a pointer: a different type from an array */
++# define __must_be_array(a) \
++ UL_BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(__typeof__(a), __typeof__(&a[0])))
++
++# define ignore_result(x) __extension__ ({ \
++ __typeof__(x) __dummy __attribute__((__unused__)) = (x); (void) __dummy; \
++})
++
++#else /* !__GNUC__ */
++# define __must_be_array(a) 0
++# define __attribute__(_arg_)
++# define ignore_result(x) ((void) (x))
++#endif /* !__GNUC__ */
++
++/*
++ * It evaluates to 1 if the attribute/feature is supported by the current
++ * compilation targed. Fallback for old compilers.
++ */
++#ifndef __has_attribute
++ #define __has_attribute(x) 0
++#endif
++
++#ifndef __has_feature
++ #define __has_feature(x) 0
++#endif
++
++/*
++ * Function attributes
++ */
++#ifndef __ul_alloc_size
++# if (__has_attribute(alloc_size) && __has_attribute(warn_unused_result)) || __GNUC_PREREQ (4, 3)
++# define __ul_alloc_size(s) __attribute__((alloc_size(s), warn_unused_result))
++# else
++# define __ul_alloc_size(s)
++# endif
++#endif
++
++#ifndef __ul_calloc_size
++# if (__has_attribute(alloc_size) && __has_attribute(warn_unused_result)) || __GNUC_PREREQ (4, 3)
++# define __ul_calloc_size(n, s) __attribute__((alloc_size(n, s), warn_unused_result))
++# else
++# define __ul_calloc_size(n, s)
++# endif
++#endif
++
++#if __has_attribute(returns_nonnull) || __GNUC_PREREQ (4, 9)
++# define __ul_returns_nonnull __attribute__((returns_nonnull))
++#else
++# define __ul_returns_nonnull
++#endif
++
++/*
++ * Force a compilation error if condition is true, but also produce a
++ * result (of value 0 and type size_t), so the expression can be used
++ * e.g. in a structure initializer (or wherever else comma expressions
++ * aren't permitted).
++ */
++#define UL_BUILD_BUG_ON_ZERO(e) __extension__ (sizeof(struct { int:-!!(e); }))
++#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))
++
++#ifndef ARRAY_SIZE
++# define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
++#endif
++
++#ifndef PATH_MAX
++# define PATH_MAX 4096
++#endif
++
++#ifndef TRUE
++# define TRUE 1
++#endif
++
++#ifndef FALSE
++# define FALSE 0
++#endif
++
++#ifndef min
++# define min(x, y) __extension__ ({ \
++ __typeof__(x) _min1 = (x); \
++ __typeof__(y) _min2 = (y); \
++ (void) (&_min1 == &_min2); \
++ _min1 < _min2 ? _min1 : _min2; })
++#endif
++
++#ifndef max
++# define max(x, y) __extension__ ({ \
++ __typeof__(x) _max1 = (x); \
++ __typeof__(y) _max2 = (y); \
++ (void) (&_max1 == &_max2); \
++ _max1 > _max2 ? _max1 : _max2; })
++#endif
++
++#ifndef cmp_numbers
++# define cmp_numbers(x, y) __extension__ ({ \
++ __typeof__(x) _a = (x); \
++ __typeof__(y) _b = (y); \
++ (void) (&_a == &_b); \
++ _a == _b ? 0 : _a > _b ? 1 : -1; })
++#endif
++
++#ifndef offsetof
++#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
++#endif
++
++/*
++ * container_of - cast a member of a structure out to the containing structure
++ * @ptr: the pointer to the member.
++ * @type: the type of the container struct this is embedded in.
++ * @member: the name of the member within the struct.
++ */
++#ifndef container_of
++#define container_of(ptr, type, member) __extension__ ({ \
++ const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
++ (type *)( (char *)__mptr - offsetof(type,member) );})
++#endif
++
++#ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME
++# ifdef HAVE___PROGNAME
++extern char *__progname;
++# define program_invocation_short_name __progname
++# else
++# ifdef HAVE_GETEXECNAME
++# define program_invocation_short_name \
++ prog_inv_sh_nm_from_file(getexecname(), 0)
++# else
++# define program_invocation_short_name \
++ prog_inv_sh_nm_from_file(__FILE__, 1)
++# endif
++static char prog_inv_sh_nm_buf[256];
++static inline char *
++prog_inv_sh_nm_from_file(char *f, char stripext)
++{
++ char *t;
++
++ if ((t = strrchr(f, '/')) != NULL)
++ t++;
++ else
++ t = f;
++
++ strncpy(prog_inv_sh_nm_buf, t, sizeof(prog_inv_sh_nm_buf) - 1);
++ prog_inv_sh_nm_buf[sizeof(prog_inv_sh_nm_buf) - 1] = '\0';
++
++ if (stripext && (t = strrchr(prog_inv_sh_nm_buf, '.')) != NULL)
++ *t = '\0';
++
++ return prog_inv_sh_nm_buf;
++}
++# endif
++#endif
++
++
++#ifndef HAVE_ERR_H
++static inline void
++errmsg(char doexit, int excode, char adderr, const char *fmt, ...)
++{
++ fprintf(stderr, "%s: ", program_invocation_short_name);
++ if (fmt != NULL) {
++ va_list argp;
++ va_start(argp, fmt);
++ vfprintf(stderr, fmt, argp);
++ va_end(argp);
++ if (adderr)
++ fprintf(stderr, ": ");
++ }
++ if (adderr)
++ fprintf(stderr, "%m");
++ fprintf(stderr, "\n");
++ if (doexit)
++ exit(excode);
++}
++
++#ifndef HAVE_ERR
++# define err(E, FMT...) errmsg(1, E, 1, FMT)
++#endif
++
++#ifndef HAVE_ERRX
++# define errx(E, FMT...) errmsg(1, E, 0, FMT)
++#endif
++
++#ifndef HAVE_WARN
++# define warn(FMT...) errmsg(0, 0, 1, FMT)
++#endif
++
++#ifndef HAVE_WARNX
++# define warnx(FMT...) errmsg(0, 0, 0, FMT)
++#endif
++#endif /* !HAVE_ERR_H */
++
++
++/* Don't use inline function to avoid '#include "nls.h"' in c.h
++ */
++#define errtryhelp(eval) __extension__ ({ \
++ fprintf(stderr, _("Try '%s --help' for more information.\n"), \
++ program_invocation_short_name); \
++ exit(eval); \
++})
++
++/* After failed execvp() */
++#define EX_EXEC_FAILED 126 /* Program located, but not usable. */
++#define EX_EXEC_ENOENT 127 /* Could not find program to exec. */
++#define errexec(name) err(errno == ENOENT ? EX_EXEC_ENOENT : EX_EXEC_FAILED, \
++ _("failed to execute %s"), name)
++
++
++static inline __attribute__((const)) int is_power_of_2(unsigned long num)
++{
++ return (num != 0 && ((num & (num - 1)) == 0));
++}
++
++#ifndef HAVE_LOFF_T
++typedef int64_t loff_t;
++#endif
++
++#if !defined(HAVE_DIRFD) && (!defined(HAVE_DECL_DIRFD) || HAVE_DECL_DIRFD == 0) && defined(HAVE_DIR_DD_FD)
++#include <sys/types.h>
++#include <dirent.h>
++static inline int dirfd(DIR *d)
++{
++ return d->dd_fd;
++}
++#endif
++
++/*
++ * Fallback defines for old versions of glibc
++ */
++#include <fcntl.h>
++
++#ifdef O_CLOEXEC
++#define UL_CLOEXECSTR "e"
++#else
++#define UL_CLOEXECSTR ""
++#endif
++
++#ifndef O_CLOEXEC
++#define O_CLOEXEC 0
++#endif
++
++#ifdef __FreeBSD_kernel__
++#ifndef F_DUPFD_CLOEXEC
++#define F_DUPFD_CLOEXEC 17 /* Like F_DUPFD, but FD_CLOEXEC is set */
++#endif
++#endif
++
++
++#ifndef AI_ADDRCONFIG
++#define AI_ADDRCONFIG 0x0020
++#endif
++
++#ifndef IUTF8
++#define IUTF8 0040000
++#endif
++
++/*
++ * MAXHOSTNAMELEN replacement
++ */
++static inline size_t get_hostname_max(void)
++{
++ long len = sysconf(_SC_HOST_NAME_MAX);
++
++ if (0 < len)
++ return len;
++
++#ifdef MAXHOSTNAMELEN
++ return MAXHOSTNAMELEN;
++#elif HOST_NAME_MAX
++ return HOST_NAME_MAX;
++#endif
++ return 64;
++}
++
++
++/*
++ * Constant strings for usage() functions. For more info see
++ * Documentation/{howto-usage-function.txt,boilerplate.c}
++ */
++#define USAGE_HEADER ("\nUsage:\n")
++#define USAGE_OPTIONS ("\nOptions:\n")
++#define USAGE_FUNCTIONS ("\nFunctions:\n")
++#define USAGE_COMMANDS ("\nCommands:\n")
++#define USAGE_COLUMNS ("\nAvailable output columns:\n")
++#define USAGE_SEPARATOR "\n"
++
++#define USAGE_OPTSTR_HELP ("display this help")
++#define USAGE_OPTSTR_VERSION ("display version")
++
++#define USAGE_HELP_OPTIONS(marg_dsc) \
++ "%-" #marg_dsc "s%s\n" \
++ "%-" #marg_dsc "s%s\n" \
++ , " -h, --help", USAGE_OPTSTR_HELP \
++ , " -V, --version", USAGE_OPTSTR_VERSION
++
++#define USAGE_MAN_TAIL(_man) ("\nFor more details see %s.\n"), _man
++
++#define UTIL_LINUX_VERSION ("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING
++
++#define print_version(eval) __extension__ ({ \
++ printf(UTIL_LINUX_VERSION); \
++ exit(eval); \
++})
++
++/*
++ * scanf modifiers for "strings allocation"
++ */
++#ifdef HAVE_SCANF_MS_MODIFIER
++#define UL_SCNsA "%ms"
++#elif defined(HAVE_SCANF_AS_MODIFIER)
++#define UL_SCNsA "%as"
++#endif
++
++/*
++ * seek stuff
++ */
++#ifndef SEEK_DATA
++# define SEEK_DATA 3
++#endif
++#ifndef SEEK_HOLE
++# define SEEK_HOLE 4
++#endif
++
++
++/*
++ * Macros to convert #define'itions to strings, for example
++ * #define XYXXY 42
++ * printf ("%s=%s\n", stringify(XYXXY), stringify_value(XYXXY));
++ */
++#define stringify_value(s) stringify(s)
++#define stringify(s) #s
++
++/*
++ * UL_ASAN_BLACKLIST is a macro to tell AddressSanitizer (a compile-time
++ * instrumentation shipped with Clang and GCC) to not instrument the
++ * annotated function. Furthermore, it will prevent the compiler from
++ * inlining the function because inlining currently breaks the blacklisting
++ * mechanism of AddressSanitizer.
++ */
++#if __has_feature(address_sanitizer) && __has_attribute(no_sanitize_memory) && __has_attribute(no_sanitize_address)
++# define UL_ASAN_BLACKLIST __attribute__((noinline)) __attribute__((no_sanitize_memory)) __attribute__((no_sanitize_address))
++#else
++# define UL_ASAN_BLACKLIST /* nothing */
++#endif
++
++/*
++ * Note that sysconf(_SC_GETPW_R_SIZE_MAX) returns *initial* suggested size for
++ * pwd buffer and in some cases it is not large enough. See POSIX and
++ * getpwnam_r man page for more details.
++ */
++#define UL_GETPW_BUFSIZ (16 * 1024)
++
++/*
++ * Darwin or other BSDs may only have MAP_ANON. To get it on Darwin we must
++ * define _DARWIN_C_SOURCE before including sys/mman.h. We do this in config.h.
++ */
++#if !defined MAP_ANONYMOUS && defined MAP_ANON
++# define MAP_ANONYMOUS (MAP_ANON)
++#endif
++
++#endif /* UTIL_LINUX_C_H */
+diff --git a/locale/programs/cross-localedef-hardlink.c b/locale/programs/cross-localedef-hardlink.c
+new file mode 100644
+index 0000000000..63615896b0
--- /dev/null
+++ b/locale/programs/cross-localedef-hardlink.c
@@ -0,0 +1,528 @@
@@ -536,451 +993,9 @@
+
+ return 0;
+}
---- a/localedef/Makefile.in
-+++ b/localedef/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
- 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
---- /dev/null
-+++ b/locale/programs/c.h
-@@ -0,0 +1,407 @@
-+/*
-+ * Fundamental C definitions.
-+ */
-+
-+#ifndef UTIL_LINUX_C_H
-+#define UTIL_LINUX_C_H
-+
-+#include <limits.h>
-+#include <stddef.h>
-+#include <stdint.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <stdarg.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+
-+#include <assert.h>
-+
-+#ifdef HAVE_ERR_H
-+# include <err.h>
-+#endif
-+
-+#ifdef HAVE_SYS_SYSMACROS_H
-+# include <sys/sysmacros.h> /* for major, minor */
-+#endif
-+
-+#ifndef LOGIN_NAME_MAX
-+# define LOGIN_NAME_MAX 256
-+#endif
-+
-+#ifndef NAME_MAX
-+# define NAME_MAX PATH_MAX
-+#endif
-+
-+/*
-+ * __GNUC_PREREQ is deprecated in favour of __has_attribute() and
-+ * __has_feature(). The __has macros are supported by clang and gcc>=5.
-+ */
-+#ifndef __GNUC_PREREQ
-+# if defined __GNUC__ && defined __GNUC_MINOR__
-+# define __GNUC_PREREQ(maj, min) \
-+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-+# else
-+# define __GNUC_PREREQ(maj, min) 0
-+# endif
-+#endif
-+
-+#ifdef __GNUC__
-+
-+/* &a[0] degrades to a pointer: a different type from an array */
-+# define __must_be_array(a) \
-+ UL_BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(__typeof__(a), __typeof__(&a[0])))
-+
-+# define ignore_result(x) __extension__ ({ \
-+ __typeof__(x) __dummy __attribute__((__unused__)) = (x); (void) __dummy; \
-+})
-+
-+#else /* !__GNUC__ */
-+# define __must_be_array(a) 0
-+# define __attribute__(_arg_)
-+# define ignore_result(x) ((void) (x))
-+#endif /* !__GNUC__ */
-+
-+/*
-+ * It evaluates to 1 if the attribute/feature is supported by the current
-+ * compilation targed. Fallback for old compilers.
-+ */
-+#ifndef __has_attribute
-+ #define __has_attribute(x) 0
-+#endif
-+
-+#ifndef __has_feature
-+ #define __has_feature(x) 0
-+#endif
-+
-+/*
-+ * Function attributes
-+ */
-+#ifndef __ul_alloc_size
-+# if (__has_attribute(alloc_size) && __has_attribute(warn_unused_result)) || __GNUC_PREREQ (4, 3)
-+# define __ul_alloc_size(s) __attribute__((alloc_size(s), warn_unused_result))
-+# else
-+# define __ul_alloc_size(s)
-+# endif
-+#endif
-+
-+#ifndef __ul_calloc_size
-+# if (__has_attribute(alloc_size) && __has_attribute(warn_unused_result)) || __GNUC_PREREQ (4, 3)
-+# define __ul_calloc_size(n, s) __attribute__((alloc_size(n, s), warn_unused_result))
-+# else
-+# define __ul_calloc_size(n, s)
-+# endif
-+#endif
-+
-+#if __has_attribute(returns_nonnull) || __GNUC_PREREQ (4, 9)
-+# define __ul_returns_nonnull __attribute__((returns_nonnull))
-+#else
-+# define __ul_returns_nonnull
-+#endif
-+
-+/*
-+ * Force a compilation error if condition is true, but also produce a
-+ * result (of value 0 and type size_t), so the expression can be used
-+ * e.g. in a structure initializer (or wherever else comma expressions
-+ * aren't permitted).
-+ */
-+#define UL_BUILD_BUG_ON_ZERO(e) __extension__ (sizeof(struct { int:-!!(e); }))
-+#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))
-+
-+#ifndef ARRAY_SIZE
-+# define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
-+#endif
-+
-+#ifndef PATH_MAX
-+# define PATH_MAX 4096
-+#endif
-+
-+#ifndef TRUE
-+# define TRUE 1
-+#endif
-+
-+#ifndef FALSE
-+# define FALSE 0
-+#endif
-+
-+#ifndef min
-+# define min(x, y) __extension__ ({ \
-+ __typeof__(x) _min1 = (x); \
-+ __typeof__(y) _min2 = (y); \
-+ (void) (&_min1 == &_min2); \
-+ _min1 < _min2 ? _min1 : _min2; })
-+#endif
-+
-+#ifndef max
-+# define max(x, y) __extension__ ({ \
-+ __typeof__(x) _max1 = (x); \
-+ __typeof__(y) _max2 = (y); \
-+ (void) (&_max1 == &_max2); \
-+ _max1 > _max2 ? _max1 : _max2; })
-+#endif
-+
-+#ifndef cmp_numbers
-+# define cmp_numbers(x, y) __extension__ ({ \
-+ __typeof__(x) _a = (x); \
-+ __typeof__(y) _b = (y); \
-+ (void) (&_a == &_b); \
-+ _a == _b ? 0 : _a > _b ? 1 : -1; })
-+#endif
-+
-+#ifndef offsetof
-+#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
-+#endif
-+
-+/*
-+ * container_of - cast a member of a structure out to the containing structure
-+ * @ptr: the pointer to the member.
-+ * @type: the type of the container struct this is embedded in.
-+ * @member: the name of the member within the struct.
-+ */
-+#ifndef container_of
-+#define container_of(ptr, type, member) __extension__ ({ \
-+ const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
-+ (type *)( (char *)__mptr - offsetof(type,member) );})
-+#endif
-+
-+#ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME
-+# ifdef HAVE___PROGNAME
-+extern char *__progname;
-+# define program_invocation_short_name __progname
-+# else
-+# ifdef HAVE_GETEXECNAME
-+# define program_invocation_short_name \
-+ prog_inv_sh_nm_from_file(getexecname(), 0)
-+# else
-+# define program_invocation_short_name \
-+ prog_inv_sh_nm_from_file(__FILE__, 1)
-+# endif
-+static char prog_inv_sh_nm_buf[256];
-+static inline char *
-+prog_inv_sh_nm_from_file(char *f, char stripext)
-+{
-+ char *t;
-+
-+ if ((t = strrchr(f, '/')) != NULL)
-+ t++;
-+ else
-+ t = f;
-+
-+ strncpy(prog_inv_sh_nm_buf, t, sizeof(prog_inv_sh_nm_buf) - 1);
-+ prog_inv_sh_nm_buf[sizeof(prog_inv_sh_nm_buf) - 1] = '\0';
-+
-+ if (stripext && (t = strrchr(prog_inv_sh_nm_buf, '.')) != NULL)
-+ *t = '\0';
-+
-+ return prog_inv_sh_nm_buf;
-+}
-+# endif
-+#endif
-+
-+
-+#ifndef HAVE_ERR_H
-+static inline void
-+errmsg(char doexit, int excode, char adderr, const char *fmt, ...)
-+{
-+ fprintf(stderr, "%s: ", program_invocation_short_name);
-+ if (fmt != NULL) {
-+ va_list argp;
-+ va_start(argp, fmt);
-+ vfprintf(stderr, fmt, argp);
-+ va_end(argp);
-+ if (adderr)
-+ fprintf(stderr, ": ");
-+ }
-+ if (adderr)
-+ fprintf(stderr, "%m");
-+ fprintf(stderr, "\n");
-+ if (doexit)
-+ exit(excode);
-+}
-+
-+#ifndef HAVE_ERR
-+# define err(E, FMT...) errmsg(1, E, 1, FMT)
-+#endif
-+
-+#ifndef HAVE_ERRX
-+# define errx(E, FMT...) errmsg(1, E, 0, FMT)
-+#endif
-+
-+#ifndef HAVE_WARN
-+# define warn(FMT...) errmsg(0, 0, 1, FMT)
-+#endif
-+
-+#ifndef HAVE_WARNX
-+# define warnx(FMT...) errmsg(0, 0, 0, FMT)
-+#endif
-+#endif /* !HAVE_ERR_H */
-+
-+
-+/* Don't use inline function to avoid '#include "nls.h"' in c.h
-+ */
-+#define errtryhelp(eval) __extension__ ({ \
-+ fprintf(stderr, _("Try '%s --help' for more information.\n"), \
-+ program_invocation_short_name); \
-+ exit(eval); \
-+})
-+
-+/* After failed execvp() */
-+#define EX_EXEC_FAILED 126 /* Program located, but not usable. */
-+#define EX_EXEC_ENOENT 127 /* Could not find program to exec. */
-+#define errexec(name) err(errno == ENOENT ? EX_EXEC_ENOENT : EX_EXEC_FAILED, \
-+ _("failed to execute %s"), name)
-+
-+
-+static inline __attribute__((const)) int is_power_of_2(unsigned long num)
-+{
-+ return (num != 0 && ((num & (num - 1)) == 0));
-+}
-+
-+#ifndef HAVE_LOFF_T
-+typedef int64_t loff_t;
-+#endif
-+
-+#if !defined(HAVE_DIRFD) && (!defined(HAVE_DECL_DIRFD) || HAVE_DECL_DIRFD == 0) && defined(HAVE_DIR_DD_FD)
-+#include <sys/types.h>
-+#include <dirent.h>
-+static inline int dirfd(DIR *d)
-+{
-+ return d->dd_fd;
-+}
-+#endif
-+
-+/*
-+ * Fallback defines for old versions of glibc
-+ */
-+#include <fcntl.h>
-+
-+#ifdef O_CLOEXEC
-+#define UL_CLOEXECSTR "e"
-+#else
-+#define UL_CLOEXECSTR ""
-+#endif
-+
-+#ifndef O_CLOEXEC
-+#define O_CLOEXEC 0
-+#endif
-+
-+#ifdef __FreeBSD_kernel__
-+#ifndef F_DUPFD_CLOEXEC
-+#define F_DUPFD_CLOEXEC 17 /* Like F_DUPFD, but FD_CLOEXEC is set */
-+#endif
-+#endif
-+
-+
-+#ifndef AI_ADDRCONFIG
-+#define AI_ADDRCONFIG 0x0020
-+#endif
-+
-+#ifndef IUTF8
-+#define IUTF8 0040000
-+#endif
-+
-+/*
-+ * MAXHOSTNAMELEN replacement
-+ */
-+static inline size_t get_hostname_max(void)
-+{
-+ long len = sysconf(_SC_HOST_NAME_MAX);
-+
-+ if (0 < len)
-+ return len;
-+
-+#ifdef MAXHOSTNAMELEN
-+ return MAXHOSTNAMELEN;
-+#elif HOST_NAME_MAX
-+ return HOST_NAME_MAX;
-+#endif
-+ return 64;
-+}
-+
-+
-+/*
-+ * Constant strings for usage() functions. For more info see
-+ * Documentation/{howto-usage-function.txt,boilerplate.c}
-+ */
-+#define USAGE_HEADER ("\nUsage:\n")
-+#define USAGE_OPTIONS ("\nOptions:\n")
-+#define USAGE_FUNCTIONS ("\nFunctions:\n")
-+#define USAGE_COMMANDS ("\nCommands:\n")
-+#define USAGE_COLUMNS ("\nAvailable output columns:\n")
-+#define USAGE_SEPARATOR "\n"
-+
-+#define USAGE_OPTSTR_HELP ("display this help")
-+#define USAGE_OPTSTR_VERSION ("display version")
-+
-+#define USAGE_HELP_OPTIONS(marg_dsc) \
-+ "%-" #marg_dsc "s%s\n" \
-+ "%-" #marg_dsc "s%s\n" \
-+ , " -h, --help", USAGE_OPTSTR_HELP \
-+ , " -V, --version", USAGE_OPTSTR_VERSION
-+
-+#define USAGE_MAN_TAIL(_man) ("\nFor more details see %s.\n"), _man
-+
-+#define UTIL_LINUX_VERSION ("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING
-+
-+#define print_version(eval) __extension__ ({ \
-+ printf(UTIL_LINUX_VERSION); \
-+ exit(eval); \
-+})
-+
-+/*
-+ * scanf modifiers for "strings allocation"
-+ */
-+#ifdef HAVE_SCANF_MS_MODIFIER
-+#define UL_SCNsA "%ms"
-+#elif defined(HAVE_SCANF_AS_MODIFIER)
-+#define UL_SCNsA "%as"
-+#endif
-+
-+/*
-+ * seek stuff
-+ */
-+#ifndef SEEK_DATA
-+# define SEEK_DATA 3
-+#endif
-+#ifndef SEEK_HOLE
-+# define SEEK_HOLE 4
-+#endif
-+
-+
-+/*
-+ * Macros to convert #define'itions to strings, for example
-+ * #define XYXXY 42
-+ * printf ("%s=%s\n", stringify(XYXXY), stringify_value(XYXXY));
-+ */
-+#define stringify_value(s) stringify(s)
-+#define stringify(s) #s
-+
-+/*
-+ * UL_ASAN_BLACKLIST is a macro to tell AddressSanitizer (a compile-time
-+ * instrumentation shipped with Clang and GCC) to not instrument the
-+ * annotated function. Furthermore, it will prevent the compiler from
-+ * inlining the function because inlining currently breaks the blacklisting
-+ * mechanism of AddressSanitizer.
-+ */
-+#if __has_feature(address_sanitizer) && __has_attribute(no_sanitize_memory) && __has_attribute(no_sanitize_address)
-+# define UL_ASAN_BLACKLIST __attribute__((noinline)) __attribute__((no_sanitize_memory)) __attribute__((no_sanitize_address))
-+#else
-+# define UL_ASAN_BLACKLIST /* nothing */
-+#endif
-+
-+/*
-+ * Note that sysconf(_SC_GETPW_R_SIZE_MAX) returns *initial* suggested size for
-+ * pwd buffer and in some cases it is not large enough. See POSIX and
-+ * getpwnam_r man page for more details.
-+ */
-+#define UL_GETPW_BUFSIZ (16 * 1024)
-+
-+/*
-+ * Darwin or other BSDs may only have MAP_ANON. To get it on Darwin we must
-+ * define _DARWIN_C_SOURCE before including sys/mman.h. We do this in config.h.
-+ */
-+#if !defined MAP_ANONYMOUS && defined MAP_ANON
-+# define MAP_ANONYMOUS (MAP_ANON)
-+#endif
-+
-+#endif /* UTIL_LINUX_C_H */
+diff --git a/locale/programs/xalloc.h b/locale/programs/xalloc.h
+new file mode 100644
+index 0000000000..0129a85e2e
--- /dev/null
+++ b/locale/programs/xalloc.h
@@ -0,0 +1,129 @@
@@ -1113,3 +1128,6 @@
+}
+
+#endif
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch b/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch
index 1148ebfcc7..05b76803b4 100644
--- a/meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch
+++ b/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch
@@ -1,8 +1,31 @@
+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 02/29] localedef: fix-ups hardlink to make it compile
+
+Upstream-Status: Pending
+Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- locale/programs/c.h | 2
- locale/programs/cross-localedef-hardlink.c | 79 +++++++++++++----------------
+ locale/programs/c.h | 2 +-
+ locale/programs/cross-localedef-hardlink.c | 79 +++++++++++-----------
2 files changed, 39 insertions(+), 42 deletions(-)
+diff --git a/locale/programs/c.h b/locale/programs/c.h
+index d0a402e90e..1804d31c73 100644
+--- a/locale/programs/c.h
++++ b/locale/programs/c.h
+@@ -240,7 +240,7 @@ errmsg(char doexit, int excode, char adderr, const char *fmt, ...)
+ /* Don't use inline function to avoid '#include "nls.h"' in c.h
+ */
+ #define errtryhelp(eval) __extension__ ({ \
+- fprintf(stderr, _("Try '%s --help' for more information.\n"), \
++ fprintf(stderr, ("Try '%s --help' for more information.\n"), \
+ program_invocation_short_name); \
+ exit(eval); \
+ })
+diff --git a/locale/programs/cross-localedef-hardlink.c b/locale/programs/cross-localedef-hardlink.c
+index 63615896b0..726e6dd948 100644
--- a/locale/programs/cross-localedef-hardlink.c
+++ b/locale/programs/cross-localedef-hardlink.c
@@ -20,6 +20,8 @@
@@ -75,7 +98,7 @@
fputs(USAGE_SEPARATOR, stdout);
printf(USAGE_HELP_OPTIONS(16)); /* char offset to align option descriptions */
-@@ -164,7 +166,7 @@ static inline size_t add2(size_t a, size
+@@ -164,7 +166,7 @@ static inline size_t add2(size_t a, size_t b)
size_t sum = a + b;
if (sum < a)
@@ -84,7 +107,7 @@
return sum;
}
-@@ -193,7 +195,7 @@ static void process_path(struct hardlink
+@@ -193,7 +195,7 @@ static void process_path(struct hardlink_ctl *ctl, const char *name)
if (st.st_dev != ctl->dev && !ctl->force) {
if (ctl->dev)
errx(EXIT_FAILURE,
@@ -93,7 +116,7 @@
"(use -f option to override)."), name);
ctl->dev = st.st_dev;
}
-@@ -287,9 +289,9 @@ static void process_path(struct hardlink
+@@ -287,9 +289,9 @@ static void process_path(struct hardlink_ctl *ctl, const char *name)
(ssize_t) sizeof(ctl->iobuf1) : fsize;
if ((xsz = read(fd, ctl->iobuf1, rsize)) != rsize)
@@ -105,7 +128,7 @@
if (xsz != rsize) {
close(fd);
-@@ -303,13 +305,13 @@ static void process_path(struct hardlink
+@@ -303,13 +305,13 @@ static void process_path(struct hardlink_ctl *ctl, const char *name)
if (fsize > 0)
continue;
if (lstat(name, &st3)) {
@@ -121,7 +144,7 @@
close(fd);
return;
}
-@@ -329,18 +331,18 @@ static void process_path(struct hardlink
+@@ -329,18 +331,18 @@ static void process_path(struct hardlink_ctl *ctl, const char *name)
suffixlen + 1);
/* First create a temporary link to n1 under a new name */
if (link(n1, nam2.buf)) {
@@ -143,7 +166,7 @@
free(nam2.buf);
continue;
}
-@@ -351,16 +353,16 @@ static void process_path(struct hardlink
+@@ -351,16 +353,16 @@ static void process_path(struct hardlink_ctl *ctl, const char *name)
/* We actually did not save anything this time, since the link second argument
had some other links as well. */
if (ctl->verbose > 1)
@@ -213,14 +236,6 @@
}
continue;
}
---- a/locale/programs/c.h
-+++ b/locale/programs/c.h
-@@ -240,7 +240,7 @@ errmsg(char doexit, int excode, char add
- /* Don't use inline function to avoid '#include "nls.h"' in c.h
- */
- #define errtryhelp(eval) __extension__ ({ \
-- fprintf(stderr, _("Try '%s --help' for more information.\n"), \
-+ fprintf(stderr, ("Try '%s --help' for more information.\n"), \
- program_invocation_short_name); \
- exit(eval); \
- })
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0001-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 d86d1d8dc7..743994f2db 100644
--- a/meta/recipes-core/glibc/glibc/0001-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,7 @@
-From f6984c923b41155979764bfa3f44609572be5414 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 01/28] nativesdk-glibc: Look for host system ld.so.cache as
+Subject: [PATCH 03/29] nativesdk-glibc: Look for host system ld.so.cache as
well
Upstream-Status: Inappropriate [embedded specific]
@@ -31,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 5abeb867f1..981bd5b4af 100644
+index e39980fb19..565b039b23 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
-@@ -2080,6 +2080,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,
}
}
@@ -49,7 +49,7 @@ index 5abeb867f1..981bd5b4af 100644
#ifdef USE_LDCONFIG
if (fd == -1
&& (__glibc_likely ((mode & __RTLD_SECURE) == 0)
-@@ -2138,14 +2146,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
@@ -65,5 +65,5 @@ index 5abeb867f1..981bd5b4af 100644
if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS))
_dl_debug_printf ("\n");
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0002-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 63531082a4..a3b5b7750c 100644
--- a/meta/recipes-core/glibc/glibc/0002-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,7 @@
-From b91c323d809039bf9b8c445418579a8b5fe61aea 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 02/28] nativesdk-glibc: Fix buffer overrun with a relocated
+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
@@ -22,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 981bd5b4af..c7a0fa58cb 100644
+index 565b039b23..e1b3486549 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
-@@ -1780,7 +1780,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;
@@ -46,5 +46,5 @@ index 981bd5b4af..c7a0fa58cb 100644
{
struct r_search_path_elem *this_dir = *dirs;
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0003-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 48f5a78716..2073576aac 100644
--- a/meta/recipes-core/glibc/glibc/0003-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,7 @@
-From 3aceb84e2bc0f796204fe059beede91179b1bc6e 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 03/28] nativesdk-glibc: Raise the size of arrays containing dl
+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
@@ -26,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 d8d1e2344e..d2247bfc4f 100644
+index 93d185e788..e115b18756 100644
--- a/elf/dl-cache.c
+++ b/elf/dl-cache.c
@@ -133,6 +133,10 @@ do \
@@ -41,10 +41,10 @@ index d8d1e2344e..d2247bfc4f 100644
_dl_cache_libcmp (const char *p1, const char *p2)
{
diff --git a/elf/dl-load.c b/elf/dl-load.c
-index c7a0fa58cb..4b87505d45 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"
@@ -56,7 +56,7 @@ index c7a0fa58cb..4b87505d45 100644
SYSTEM_DIRS_LEN
};
diff --git a/elf/interp.c b/elf/interp.c
-index 243829f5f7..0e74241703 100644
+index 331cc1df48..885b2d9476 100644
--- a/elf/interp.c
+++ b/elf/interp.c
@@ -18,5 +18,5 @@
@@ -67,10 +67,10 @@ index 243829f5f7..0e74241703 100644
+const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp")))
= RUNTIME_LINKER;
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
-index 3bc9e61891..6a23096435 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
};
@@ -81,18 +81,18 @@ index 3bc9e61891..6a23096435 100644
a platform. */
static int
diff --git a/elf/rtld.c b/elf/rtld.c
-index c9490ff694..3962373ebb 100644
+index 5b882163fa..db407b5d8b 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
-@@ -173,6 +173,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. */
-@@ -1220,13 +1221,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\
@@ -109,7 +109,7 @@ index c9490ff694..3962373ebb 100644
++_dl_skip_args;
--_dl_argc;
diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c
-index ae8937cba0..f321ee419e 100644
+index 735bd1f2d5..25100ba666 100644
--- a/iconv/gconv_conf.c
+++ b/iconv/gconv_conf.c
@@ -36,7 +36,7 @@
@@ -122,7 +122,7 @@ index ae8937cba0..f321ee419e 100644
/* Type to represent search path. */
struct path_elem
diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h
-index bc8b40331d..b0fdd2144b 100644
+index 6b310e9e15..3877311df4 100644
--- a/sysdeps/generic/dl-cache.h
+++ b/sysdeps/generic/dl-cache.h
@@ -27,10 +27,6 @@
@@ -137,5 +137,5 @@ index bc8b40331d..b0fdd2144b 100644
# define add_system_dir(dir) add_dir (dir)
#endif
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0004-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 a43f294345..372dca727e 100644
--- a/meta/recipes-core/glibc/glibc/0004-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 e41e042149eac349e09fa629fcac4c64e574322c 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 04/28] 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.
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h
-index aa60ca4cd6..3e42e00183 100644
+index bb49648374..aa08d3c0a7 100644
--- a/sysdeps/x86/atomic-machine.h
+++ b/sysdeps/x86/atomic-machine.h
@@ -58,15 +58,14 @@ typedef uintmax_t uatomic_max_t;
@@ -38,5 +38,5 @@ index aa60ca4cd6..3e42e00183 100644
# define SEG_REG "gs"
# define BR_CONSTRAINT "r"
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
index 3aad603ada..729ce1b42d 100644
--- a/meta/recipes-core/glibc/glibc/0005-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 50ab0b0c116f4ae3d975ec1b15ed4595fd9147f6 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 05/28] 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,13 +12,14 @@ 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 9af605bd64..b2b0a3f93b 100644
+index 9cd3b71a6d..84272310e0 100644
--- a/locale/findlocale.c
+++ b/locale/findlocale.c
@@ -56,7 +56,7 @@ struct __locale_data *const _nl_C[] attribute_hidden =
@@ -30,7 +31,7 @@ index 9af605bd64..b2b0a3f93b 100644
/* Checks if the name is actually present, that is, not NULL and not
empty. */
-@@ -167,7 +167,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
+@@ -166,7 +166,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
/* Nothing in the archive. Set the default path to search below. */
locale_path = _nl_default_locale_path;
@@ -40,7 +41,7 @@ index 9af605bd64..b2b0a3f93b 100644
else
/* We really have to load some data. First see whether the name is
diff --git a/locale/loadarchive.c b/locale/loadarchive.c
-index 803c1cf2a4..9023f475b8 100644
+index ba0fe45648..9737fd4cda 100644
--- a/locale/loadarchive.c
+++ b/locale/loadarchive.c
@@ -42,7 +42,7 @@
@@ -53,10 +54,10 @@ index 803c1cf2a4..9023f475b8 100644
/* Size of initial mapping window, optimal if large enough to
cover the header plus the initial locale. */
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
-index 7c1cc3eecb..53cb8bfc59 100644
+index 1bfe22aa7f..fdc283c69a 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
-@@ -325,7 +325,7 @@ _nl_lookup_word (locale_t l, int category, int item)
+@@ -331,7 +331,7 @@ _nl_lookup_word (locale_t l, int category, int item)
}
/* Default search path if no LOCPATH environment variable. */
@@ -65,6 +66,38 @@ index 7c1cc3eecb..53cb8bfc59 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.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
index 5e1c591432..5e3b3e2d7b 100644
--- a/meta/recipes-core/glibc/glibc/0006-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 7cccf5cec09f2a42cc3fe5d82ce21b7309330b33 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 06/28] 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>
@@ -1580,5 +1580,5 @@ index 0000000000..04ff8cc181
@@ -0,0 +1 @@
+powerpc/powerpc64/e6500/fpu
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0008-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 8bed20306e..a94ed207f5 100644
--- a/meta/recipes-core/glibc/glibc/0008-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 42a01c55786a9472934e12e0bf0c40983579b607 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 08/28] 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'
@@ -204,5 +204,5 @@ index 26fa067abf..9d175122a8 100644
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0009-__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 8a5d6d8b7f..743bea1433 100644
--- a/meta/recipes-core/glibc/glibc/0009-__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,7 +1,7 @@
-From a0fcb9135bc8c2b9d8a161d166b6f9d56d7af245 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 09/28] __ieee754_sqrt{,f} are now inline functions and call
+Subject: [PATCH 10/29] __ieee754_sqrt{,f} are now inline functions and call
out __slow versions
Upstream-Status: Pending
@@ -383,5 +383,5 @@ index 9d175122a8..10de1f0cc3 100644
+
strong_alias (__ieee754_sqrtf, __sqrtf_finite)
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0010-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 a140a15479..a9280b7c34 100644
--- a/meta/recipes-core/glibc/glibc/0010-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,7 @@
-From 9c1f2229c48c37b38628c485ef16e01f6780160c 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 10/28] 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,
@@ -45,7 +45,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
-index 7a2f9d9b78..36a1dd1888 100644
+index 90856779b1..a29bb86c56 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -510,7 +510,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
@@ -58,5 +58,5 @@ index 7a2f9d9b78..36a1dd1888 100644
case R_ARM_TLS_TPOFF32:
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0011-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 cb99092eef..ab07455ade 100644
--- a/meta/recipes-core/glibc/glibc/0011-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 171d2afb930917b0cfbe9df770774da1c92dd185 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 11/28] 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
@@ -18,7 +18,7 @@ Signed-off-by: Ting Liu <b28495@freescale.com>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/manual/Makefile b/manual/Makefile
-index 4f76ee85d2..04b8c8c320 100644
+index c61e11dcd7..5d859e6f84 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -103,7 +103,8 @@ $(objpfx)stamp-libm-err: $(..)math/gen-libm-test.py \
@@ -32,5 +32,5 @@ index 4f76ee85d2..04b8c8c320 100644
touch $@
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0012-__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 e233fbe542..d875825ff9 100644
--- a/meta/recipes-core/glibc/glibc/0012-__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,7 +1,7 @@
-From 376be7b96152ef501c8cf95ed6dc52c0318bd26a 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 12/28] __ieee754_sqrt{,f} are now inline functions and call
+Subject: [PATCH 13/29] __ieee754_sqrt{,f} are now inline functions and call
out __slow versions
Upstream-Status: Pending
@@ -57,5 +57,5 @@ index 812653558f..10de1f0cc3 100644
#endif
{
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch b/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch
deleted file mode 100644
index 0a602bb38c..0000000000
--- a/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From b84999dcf642b07e6c14e6ff507be14743349949 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 14/28] 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 91e0ad3141..2e9549fe49 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;
---
-2.22.0
-
diff --git a/meta/recipes-core/glibc/glibc/0013-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 9ba52e6e10..954534bae2 100644
--- a/meta/recipes-core/glibc/glibc/0013-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 1ba4e9577437632856d719cbd5d63b5a76cbb4c4 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 13/28] sysdeps/gnu/configure.ac: handle correctly
+Subject: [PATCH 14/29] sysdeps/gnu/configure.ac: handle correctly
$libc_cv_rootsbindir
Upstream-Status:Pending
@@ -38,5 +38,5 @@ index 634fe4de2a..3db1697f4f 100644
;;
esac
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0015-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 dd6562a631..04a9bf01c4 100644
--- a/meta/recipes-core/glibc/glibc/0015-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 7c57f84bef4aaffe4204a7a354411ab3ea7e5273 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 15/28] '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.
@@ -165,7 +165,7 @@ index f05f43802b..dc8639902d 100644
], libc_cv_nios2_be=yes, libc_cv_nios2_be=no)])
if test $libc_cv_nios2_be = yes; then
diff --git a/sysdeps/unix/sysv/linux/mips/configure b/sysdeps/unix/sysv/linux/mips/configure
-index 1ee7f41a36..77e38bebde 100644
+index 25f98e0c7b..e95bfae359 100644
--- a/sysdeps/unix/sysv/linux/mips/configure
+++ b/sysdeps/unix/sysv/linux/mips/configure
@@ -414,11 +414,11 @@ else
@@ -183,7 +183,7 @@ index 1ee7f41a36..77e38bebde 100644
else
libc_cv_mips_nan2008=no
diff --git a/sysdeps/unix/sysv/linux/mips/configure.ac b/sysdeps/unix/sysv/linux/mips/configure.ac
-index 9147aa4582..7898e24738 100644
+index 3db1b32b08..f8cd375ebc 100644
--- a/sysdeps/unix/sysv/linux/mips/configure.ac
+++ b/sysdeps/unix/sysv/linux/mips/configure.ac
@@ -105,9 +105,9 @@ AC_COMPILE_IFELSE(
@@ -259,5 +259,5 @@ index f9cba6e15d..b21f72f1e4 100644
], 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.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch b/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch
index 4d1cf31973..cd072018e5 100644
--- a/meta/recipes-core/glibc/glibc/0016-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 a74f31ea9edf105f1a6dc26497aa2a12ae736660 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 16/28] timezone: re-written tzselect as posix sh
+Subject: [PATCH 16/29] timezone: re-written tzselect as posix sh
To avoid the bash dependency.
@@ -15,7 +15,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/timezone/Makefile b/timezone/Makefile
-index 493deca790..36e559e16c 100644
+index 75f38df527..74e1ab7ff7 100644
--- a/timezone/Makefile
+++ b/timezone/Makefile
@@ -122,7 +122,7 @@ $(testdata)/XT%: testdata/XT%
@@ -41,5 +41,5 @@ index 18fce27e24..70745f9d36 100755
# Output one argument as-is to standard output.
# Safer than 'echo', which can mishandle '\' or leading '-'.
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch b/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch
index e4f8a135d3..57907fe660 100644
--- a/meta/recipes-core/glibc/glibc/0017-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 95882b9864ff20e476d15c6825c83728eb99597f 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 17/28] 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.
@@ -71,5 +71,5 @@ index a882da7d8b..b02986ec15 100644
;;
esac
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch b/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch
index b5efc43042..58d41ffe04 100644
--- a/meta/recipes-core/glibc/glibc/0018-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 6b603d25cc5723ba631dfc60b544774db1147d81 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 18/28] eglibc: Cross building and testing instructions
+Subject: [PATCH 18/29] eglibc: Cross building and testing instructions
Ported from eglibc
Upstream-Status: Pending
@@ -615,5 +615,5 @@ index 0000000000..b67b468466
+ simply place copies of these libraries in the top GLIBC build
+ directory.
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch b/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch
index 0333db2814..f633079f34 100644
--- a/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch
+++ b/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch
@@ -1,7 +1,7 @@
-From 2864aaae984d945445f3f79869c703e0b791df88 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 19/28] eglibc: Help bootstrap cross toolchain
+Subject: [PATCH 19/29] eglibc: Help bootstrap cross toolchain
Taken from EGLIBC, r1484 + r1525
@@ -29,10 +29,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
create mode 100644 include/stubs-bootstrap.h
diff --git a/Makefile b/Makefile
-index 9fbf705200..64bfd455bc 100644
+index 6dcfe40c25..bc37c32e5a 100644
--- a/Makefile
+++ b/Makefile
-@@ -70,9 +70,18 @@ subdir-dirs = include
+@@ -79,9 +79,18 @@ subdir-dirs = include
vpath %.h $(subdir-dirs)
# What to install.
@@ -52,7 +52,7 @@ index 9fbf705200..64bfd455bc 100644
ifeq (yes,$(build-shared))
headers += gnu/lib-names.h
endif
-@@ -196,6 +205,16 @@ others: $(common-objpfx)testrun.sh
+@@ -407,6 +416,16 @@ others: $(common-objpfx)testrun.sh $(common-objpfx)debugglibc.sh
subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs)
@@ -69,7 +69,7 @@ index 9fbf705200..64bfd455bc 100644
ifndef abi-variants
installed-stubs = $(inst_includedir)/gnu/stubs.h
else
-@@ -222,6 +241,7 @@ $(inst_includedir)/gnu/stubs.h: $(+force)
+@@ -433,6 +452,7 @@ $(inst_includedir)/gnu/stubs.h: $(+force)
install-others-nosubdir: $(installed-stubs)
endif
@@ -96,5 +96,5 @@ index 0000000000..1d2b669aff
+ EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but
+ an empty stubs.h like this will do fine for GCC. */
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch b/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch
deleted file mode 100644
index 965ad6578e..0000000000
--- a/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From e2667086bf984de4d3f1226b9467761cd5a4c39f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Dec 2015 15:15:09 -0800
-Subject: [PATCH 20/28] eglibc: Clear cache lines on ppc8xx
-
-2007-06-13 Nathan Sidwell <nathan@codesourcery.com>
- Mark Shinwell <shinwell@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/powerpc/libc-start.c
- (__libc_start_main): Detect 8xx parts and clear
- __cache_line_size if detected.
- * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
- (DL_PLATFORM_AUXV): Likewise.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c | 14 +++++++++++++-
- sysdeps/unix/sysv/linux/powerpc/libc-start.c | 16 +++++++++++++++-
- 2 files changed, 28 insertions(+), 2 deletions(-)
-
-diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
-index b04ecc4a4c..75bda97241 100644
---- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
-+++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
-@@ -24,9 +24,21 @@ int __cache_line_size attribute_hidden;
- /* Scan the Aux Vector for the "Data Cache Block Size" entry. If found
- verify that the static extern __cache_line_size is defined by checking
- for not NULL. If it is defined then assign the cache block size
-- value to __cache_line_size. */
-+ value to __cache_line_size. This is used by memset to
-+ optimize setting to zero. We have to detect 8xx processors, which
-+ have buggy dcbz implementations that cannot report page faults
-+ correctly. That requires reading SPR, which is a privileged
-+ operation. Fortunately 2.2.18 and later emulates PowerPC mfspr
-+ reads from the PVR register. */
- #define DL_PLATFORM_AUXV \
- case AT_DCACHEBSIZE: \
-+ if (__LINUX_KERNEL_VERSION >= 0x020218) \
-+ { \
-+ unsigned pvr = 0; \
-+ asm ("mfspr %0, 287" : "=r" (pvr)); \
-+ if ((pvr & 0xffff0000) == 0x00500000) \
-+ break; \
-+ } \
- __cache_line_size = av->a_un.a_val; \
- break;
-
-diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
-index 4fd5f70700..1a21e4675c 100644
---- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
-+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
-@@ -73,11 +73,25 @@ __libc_start_main (int argc, char **argv,
-
- /* Initialize the __cache_line_size variable from the aux vector. For the
- static case, we also need _dl_hwcap, _dl_hwcap2 and _dl_platform, so we
-- can call __tcb_parse_hwcap_and_convert_at_platform (). */
-+ can call __tcb_parse_hwcap_and_convert_at_platform ().
-+
-+ This is used by memset to optimize setting to zero. We have to
-+ detect 8xx processors, which have buggy dcbz implementations that
-+ cannot report page faults correctly. That requires reading SPR,
-+ which is a privileged operation. Fortunately 2.2.18 and later
-+ emulates PowerPC mfspr reads from the PVR register. */
- for (ElfW (auxv_t) * av = auxvec; av->a_type != AT_NULL; ++av)
- switch (av->a_type)
- {
- case AT_DCACHEBSIZE:
-+ if (__LINUX_KERNEL_VERSION >= 0x020218)
-+ {
-+ unsigned pvr = 0;
-+
-+ asm ("mfspr %0, 287" : "=r" (pvr) :);
-+ if ((pvr & 0xffff0000) == 0x00500000)
-+ break;
-+ }
- __cache_line_size = av->a_un.a_val;
- break;
- #ifndef SHARED
---
-2.22.0
-
diff --git a/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch b/meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch
index 76551cf559..bb21c54721 100644
--- a/meta/recipes-core/glibc/glibc/0021-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 b7290e54a1bda7a0212131655bc27926fc22de22 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 21/28] 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>
@@ -33,7 +33,7 @@ index e0938c4165..ca1d7da339 100644
# a*
alphasort64;
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S
-index 6ce36d6dd5..425811cc77 100644
+index 85ff3f900e..7743b8d57a 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.S
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -30,3 +30,14 @@ ENTRY (__syscall_error)
@@ -52,5 +52,5 @@ index 6ce36d6dd5..425811cc77 100644
+weak_alias (___fpscr_values, __fpscr_values)
+
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch b/meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch
index c46021a478..7fe5db0c2a 100644
--- a/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch
+++ b/meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch
@@ -1,14 +1,14 @@
-From be382b4e0c6de52573f7e037f2d4ff9b1b5bbb6b 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 22/28] eglibc: Forward port cross locale generation support
+Subject: [PATCH 21/29] eglibc: Forward port cross locale generation support
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
locale/Makefile | 3 +-
- locale/catnames.c | 48 ++++++++++++++++++++++++++++
+ locale/catnames.c | 46 +++++++++++++++++++++++++++
locale/localeinfo.h | 2 +-
locale/programs/charmap-dir.c | 6 ++++
locale/programs/ld-collate.c | 17 +++++-----
@@ -18,12 +18,12 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
locale/programs/localedef.c | 8 +++++
locale/programs/locfile.c | 5 ++-
locale/programs/locfile.h | 59 +++++++++++++++++++++++++++++++++--
- locale/setlocale.c | 30 ------------------
- 12 files changed, 169 insertions(+), 69 deletions(-)
+ locale/setlocale.c | 29 -----------------
+ 12 files changed, 167 insertions(+), 68 deletions(-)
create mode 100644 locale/catnames.c
diff --git a/locale/Makefile b/locale/Makefile
-index d78cf9b83a..e166f5252e 100644
+index 49c0c78c7d..ebfcf4f4da 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -26,7 +26,8 @@ headers = langinfo.h locale.h bits/locale.h \
@@ -34,14 +34,14 @@ index d78cf9b83a..e166f5252e 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..9fad357db1
+index 0000000000..538f3f5edb
--- /dev/null
+++ b/locale/catnames.c
-@@ -0,0 +1,48 @@
+@@ -0,0 +1,46 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
@@ -63,20 +63,18 @@ index 0000000000..9fad357db1
+#include "localeinfo.h"
+
+/* Define an array of category names (also the environment variable names). */
-+const union catnamestr_t _nl_category_names attribute_hidden =
++const struct catnamestr_t _nl_category_names attribute_hidden =
+ {
-+ {
+#define DEFINE_CATEGORY(category, category_name, items, a) \
-+ category_name,
++ category_name,
+#include "categories.def"
+#undef DEFINE_CATEGORY
-+ }
+ };
+
+const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden =
+ {
+#define DEFINE_CATEGORY(category, category_name, items, a) \
-+ [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)),
++ [category] = offsetof (struct catnamestr_t, CATNAMEMF (__LINE__)),
+#include "categories.def"
+#undef DEFINE_CATEGORY
+ };
@@ -91,10 +89,10 @@ index 0000000000..9fad357db1
+ [LC_ALL] = sizeof ("LC_ALL") - 1
+ };
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
-index 53cb8bfc59..92c466200c 100644
+index fdc283c69a..4eeed35f90 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
-@@ -224,7 +224,7 @@ __libc_tsd_define (extern, locale_t, LOCALE)
+@@ -230,7 +230,7 @@ __libc_tsd_define (extern, locale_t, LOCALE)
unused. We can manage this playing some tricks with weak references.
But with thread-local locale settings, it becomes quite ungainly unless
we can use __thread variables. So only in that case do we attempt this. */
@@ -104,7 +102,7 @@ index 53cb8bfc59..92c466200c 100644
# define NL_CURRENT_INDIRECT 1
#endif
diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c
-index 94c122df68..80e53e12c8 100644
+index 1a526a240d..0fb2daf936 100644
--- a/locale/programs/charmap-dir.c
+++ b/locale/programs/charmap-dir.c
@@ -18,7 +18,9 @@
@@ -150,7 +148,7 @@ index 94c122df68..80e53e12c8 100644
return NULL;
}
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
-index 6baab6cfb0..b12a2fceab 100644
+index feb1a11258..5a8e522470 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -349,7 +349,7 @@ new_element (struct locale_collate_t *collate, const char *mbs, size_t mbslen,
@@ -199,7 +197,7 @@ index 6baab6cfb0..b12a2fceab 100644
== runp->wcnext->wcs[runp->nwcs - 1] + 1));
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
-index cfc9c43fd5..6572cc199c 100644
+index 3328093d0e..d58fb0f4b7 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -915,7 +915,7 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
@@ -281,7 +279,7 @@ index cfc9c43fd5..6572cc199c 100644
srunp = srunp->next;
}
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
-index 8e9849fdba..028d3efa9f 100644
+index f7db873adb..fec3773c9d 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -220,8 +220,10 @@ No definition for %s category found"), "LC_TIME");
@@ -350,7 +348,7 @@ index 8e9849fdba..028d3efa9f 100644
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
-index ed3a9731d0..3178ea057a 100644
+index 7ebd933801..5753750756 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -595,7 +595,7 @@ get_string (struct linereader *lr, const struct charmap_t *charmap,
@@ -363,7 +361,7 @@ index ed3a9731d0..3178ea057a 100644
size_t bufmax = 56;
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
-index b7bcef8248..efeced1e0f 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;
@@ -383,7 +381,7 @@ index b7bcef8248..efeced1e0f 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");
@@ -398,7 +396,7 @@ index b7bcef8248..efeced1e0f 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;
@@ -409,7 +407,7 @@ index b7bcef8248..efeced1e0f 100644
force_output = 1;
break;
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
-index e4ba48e968..e7b0efe887 100644
+index eb2f4634da..d387147323 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -544,6 +544,9 @@ compare_files (const char *filename1, const char *filename2, size_t size,
@@ -432,7 +430,7 @@ index e4ba48e968..e7b0efe887 100644
/* Record that FILE's next element is the 32-bit integer VALUE. */
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
-index c063fc097d..4e7465e55a 100644
+index 7ea10038b4..0888c09762 100644
--- a/locale/programs/locfile.h
+++ b/locale/programs/locfile.h
@@ -71,6 +71,8 @@ extern void write_all_categories (struct localedef_t *definitions,
@@ -521,28 +519,27 @@ index c063fc097d..4e7465e55a 100644
+
#endif /* locfile.h */
diff --git a/locale/setlocale.c b/locale/setlocale.c
-index 9bd35454b9..2a67dc6589 100644
+index 030f1727bd..096d8ed895 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
-@@ -64,36 +64,6 @@ static char *const _nl_current_used[] =
- #endif
+@@ -63,35 +63,6 @@ static char *const _nl_current_used[] =
+ #endif
+-
-/* Define an array of category names (also the environment variable names). */
--const union catnamestr_t _nl_category_names attribute_hidden =
+-const struct catnamestr_t _nl_category_names attribute_hidden =
- {
-- {
-#define DEFINE_CATEGORY(category, category_name, items, a) \
-- category_name,
+- category_name,
-#include "categories.def"
-#undef DEFINE_CATEGORY
-- }
- };
-
-const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden =
- {
-#define DEFINE_CATEGORY(category, category_name, items, a) \
-- [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)),
+- [category] = offsetof (struct catnamestr_t, CATNAMEMF (__LINE__)),
-#include "categories.def"
-#undef DEFINE_CATEGORY
- };
@@ -562,5 +559,5 @@ index 9bd35454b9..2a67dc6589 100644
# define WEAK_POSTLOAD(postload) weak_extern (postload)
#else
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch b/meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch
index 17667da99f..0e93183087 100644
--- a/meta/recipes-core/glibc/glibc/0023-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 afa8d6faeddeb80aca318b33edf49d9f8ce65761 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 23/28] 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
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 3 insertions(+)
diff --git a/locale/programs/config.h b/locale/programs/config.h
-index a1e6e0ec3c..7f75528eae 100644
+index d76d9f7e8b..92b56d7df3 100644
--- a/locale/programs/config.h
+++ b/locale/programs/config.h
@@ -19,6 +19,9 @@
@@ -28,5 +28,5 @@ index a1e6e0ec3c..7f75528eae 100644
#define PACKAGE _libc_intl_domainname
#ifndef VERSION
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0024-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 f68e4f4fa6..7cbf6811a1 100644
--- a/meta/recipes-core/glibc/glibc/0024-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,7 @@
-From c13e18adb634a6fd59129150ab7f9468f64dc931 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 24/28] localedef --add-to-archive uses a hard-coded locale
+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
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 25 insertions(+), 10 deletions(-)
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
-index e6310b18be..f54a76eade 100644
+index dccaf04e3b..ae0b7fe155 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -340,12 +340,24 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
@@ -80,5 +80,5 @@ index e6310b18be..f54a76eade 100644
if (readonly)
{
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0025-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 76a9eb2563..02e73594a0 100644
--- a/meta/recipes-core/glibc/glibc/0025-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 7c9ebe966bb97dd14de5719905b61311211ae3c8 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 25/28] 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 e12c353158..9234daac05 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)
@@ -52,5 +52,5 @@ index e12c353158..9234daac05 100644
}
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0026-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 7589e11d57..700fb28874 100644
--- a/meta/recipes-core/glibc/glibc/0026-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 aa5c758fbb7dbb026df33fc6bdc05548547bdb17 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 26/28] 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.
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/intl/Makefile b/intl/Makefile
-index 9eea8d57e3..627dce4cf1 100644
+index ce3072420f..58457840d9 100644
--- a/intl/Makefile
+++ b/intl/Makefile
@@ -155,7 +155,7 @@ $(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out
@@ -30,5 +30,5 @@ index 9eea8d57e3..627dce4cf1 100644
$(inst_localedir)/locale.alias: locale.alias $(+force)
$(do-install)
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0027-inject-file-assembly-directives.patch b/meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch
index dc205a833f..89eef82e1b 100644
--- a/meta/recipes-core/glibc/glibc/0027-inject-file-assembly-directives.patch
+++ b/meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch
@@ -1,7 +1,7 @@
-From fecd98040a2ae1bc5943a40a1623d76a696e0785 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 27/28] 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 fa1f014a88..098731362a 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 d4e7dfcf5c..e0218df30c 100644
--- a/sysdeps/aarch64/crti.S
+++ b/sysdeps/aarch64/crti.S
@@ -50,6 +50,8 @@
@@ -73,21 +57,16 @@ index d4e7dfcf5c..e0218df30c 100644
#if PREINIT_FUNCTION_WEAK
weak_extern (PREINIT_FUNCTION)
#else
-diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S
-index 363f752460..2fb06fba62 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 4abe6b82a3..8c44b2ff8a 100644
--- a/sysdeps/aarch64/dl-tlsdesc.S
+++ b/sysdeps/aarch64/dl-tlsdesc.S
@@ -22,6 +22,8 @@
@@ -99,8 +78,6 @@ index 4abe6b82a3..8c44b2ff8a 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 19b117e8f9..38c78b5409 100644
--- a/sysdeps/aarch64/dl-trampoline.S
+++ b/sysdeps/aarch64/dl-trampoline.S
@@ -21,6 +21,8 @@
@@ -112,8 +89,6 @@ index 19b117e8f9..38c78b5409 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 f5e9b9c223..ae3e22a6a5 100644
--- a/sysdeps/aarch64/start.S
+++ b/sysdeps/aarch64/start.S
@@ -18,6 +18,8 @@
@@ -125,18 +100,6 @@ index f5e9b9c223..ae3e22a6a5 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 26dbba66a3..dd84ecd566 100644
--- a/sysdeps/arm/crti.S
+++ b/sysdeps/arm/crti.S
@@ -57,6 +57,8 @@
@@ -148,8 +111,6 @@ index 26dbba66a3..dd84ecd566 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 8f91c8d88b..a87fe49e07 100644
--- a/sysdeps/arm/crtn.S
+++ b/sysdeps/arm/crtn.S
@@ -37,6 +37,8 @@
@@ -161,8 +122,6 @@ index 8f91c8d88b..a87fe49e07 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 a929340b42..b724c9776d 100644
--- a/sysdeps/arm/dl-tlsdesc.S
+++ b/sysdeps/arm/dl-tlsdesc.S
@@ -21,6 +21,8 @@
@@ -174,8 +133,6 @@ index a929340b42..b724c9776d 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 325cfcd2ce..4bfdcbce51 100644
--- a/sysdeps/arm/dl-trampoline.S
+++ b/sysdeps/arm/dl-trampoline.S
@@ -21,6 +21,8 @@
@@ -187,8 +144,6 @@ index 325cfcd2ce..4bfdcbce51 100644
.text
.globl _dl_runtime_resolve
.type _dl_runtime_resolve, #function
-diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S
-index a05f8a4651..2f4374fcaa 100644
--- a/sysdeps/arm/start.S
+++ b/sysdeps/arm/start.S
@@ -57,6 +57,8 @@
@@ -200,8 +155,6 @@ index a05f8a4651..2f4374fcaa 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 8638e5b545..93f6564aec 100644
--- a/sysdeps/mips/start.S
+++ b/sysdeps/mips/start.S
@@ -38,6 +38,8 @@
@@ -213,8 +166,6 @@ index 8638e5b545..93f6564aec 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 99a10d643a..e47fc0d245 100644
--- a/sysdeps/powerpc/powerpc32/dl-start.S
+++ b/sysdeps/powerpc/powerpc32/dl-start.S
@@ -18,6 +18,8 @@
@@ -226,8 +177,6 @@ index 99a10d643a..e47fc0d245 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 172fb5a56b..ef1471b861 100644
--- a/sysdeps/powerpc/powerpc32/start.S
+++ b/sysdeps/powerpc/powerpc32/start.S
@@ -35,6 +35,8 @@
@@ -239,8 +188,6 @@ index 172fb5a56b..ef1471b861 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 55fae68ad6..0cb608fe0f 100644
--- a/sysdeps/powerpc/powerpc64/start.S
+++ b/sysdeps/powerpc/powerpc64/start.S
@@ -35,6 +35,8 @@
@@ -252,8 +199,6 @@ index 55fae68ad6..0cb608fe0f 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 30a29b9fb0..07892b383f 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 30a29b9fb0..07892b383f 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 f64c4ffe8a..2da315ab08 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 f64c4ffe8a..2da315ab08 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 0b6237ac55..8cda491c28 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,14 +232,9 @@ index 0b6237ac55..8cda491c28 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 @@
+ .file "dl-brk.S"
+
#include <brk.S>
---
-2.22.0
-
diff --git a/meta/recipes-core/glibc/glibc/0028-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 6c49066fd1..d2c88d2354 100644
--- a/meta/recipes-core/glibc/glibc/0028-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 d934788e3221c28c9a1892235cbe4cfd1b28ced0 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 28/28] 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:
@@ -33,7 +33,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 7 insertions(+)
diff --git a/locale/weight.h b/locale/weight.h
-index 7ca81498b2..d608ca70bb 100644
+index e071253f85..2889c395f1 100644
--- a/locale/weight.h
+++ b/locale/weight.h
@@ -28,7 +28,14 @@ findidx (const int32_t *table,
@@ -52,5 +52,5 @@ index 7ca81498b2..d608ca70bb 100644
const unsigned char *usrc;
--
-2.22.0
+2.27.0
diff --git a/meta/recipes-core/glibc/glibc/0007-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 ae6fb268a5..25c046f5cd 100644
--- a/meta/recipes-core/glibc/glibc/0007-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,7 @@
-From dc715f6c70d01e9c3b31c1825fa5bc447967c847 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 07/28] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known
+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
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/elf/readlib.c b/elf/readlib.c
-index c9743e6692..6307f918fc 100644
+index 994a4426a1..baabf099b1 100644
--- a/elf/readlib.c
+++ b/elf/readlib.c
@@ -51,6 +51,7 @@ static struct known_names interpreters[] =
@@ -29,5 +29,5 @@ index c9743e6692..6307f918fc 100644
static struct known_names known_libs[] =
--
-2.22.0
+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.30.bb b/meta/recipes-core/glibc/glibc_2.32.bb
index 03add3363c..2a0e464385 100644
--- a/meta/recipes-core/glibc/glibc_2.30.bb
+++ b/meta/recipes-core/glibc/glibc_2.32.bb
@@ -1,15 +1,17 @@
require glibc.inc
require glibc-version.inc
+CVE_CHECK_WHITELIST += "CVE-2020-10029"
+
DEPENDS += "gperf-native bison-native make-native"
NATIVESDKFIXES ?= ""
NATIVESDKFIXES_class-nativesdk = "\
- file://0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \
- file://0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \
- file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \
- file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \
- file://0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch \
+ file://0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \
+ file://0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \
+ file://0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \
+ file://0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \
+ file://0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch \
"
SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
@@ -18,29 +20,29 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
file://makedbs.sh \
\
${NATIVESDKFIXES} \
- file://0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \
- file://0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \
- file://0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \
- file://0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
- file://0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \
- file://0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
- file://0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
- file://0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \
- file://0014-Add-unused-attribute.patch \
+ file://0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.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-Clear-cache-lines-on-ppc8xx.patch \
- file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \
- file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \
- file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \
- file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
- file://0025-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \
- file://0026-intl-Emit-no-lines-in-bison-generated-files.patch \
- file://0027-inject-file-assembly-directives.patch \
- file://0028-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.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}"
@@ -67,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)
}
@@ -92,9 +96,8 @@ do_configure () {
CPPFLAGS="" oe_runconf
}
+LDFLAGS += "-fuse-ld=bfd"
do_compile () {
- # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
- LDFLAGS="-fuse-ld=bfd"
base_do_compile
echo "Adjust ldd script"
if [ -n "${RTLDLIST}" ]
diff --git a/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch b/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch
new file mode 100644
index 0000000000..57c8d04fd7
--- /dev/null
+++ b/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch
@@ -0,0 +1,23 @@
+From 7ace0656bd325f9e7749f2cde641eddc057bc98a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 9 Jan 2020 15:38:06 +0100
+Subject: [PATCH] Makefile: do not use dpkg for determining OS type
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 0ce2fa3..739aef2 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION ?= 0.8
+ CFLAGS ?= -Wall -W -Wno-unused-parameter -g -O2
+-ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
++ARCH := linux
+
+ BASEDIR ?= $(DESTDIR)
+
diff --git a/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch b/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch
deleted file mode 100644
index 5b0d51d736..0000000000
--- a/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch
+++ /dev/null
@@ -1,403 +0,0 @@
-From 6fce99c9e42cbacde1855473b745ca1fded3fbf7 Mon Sep 17 00:00:00 2001
-From: "Maxin B. John" <maxin.john@intel.com>
-Date: Wed, 21 Dec 2016 15:32:07 +0200
-Subject: [PATCH 2/2] inet[6].defn: fix inverted checks for loopback
-
-Compared to the hurd link.defn for loopback, we see these
-are inverted, meaning that you would only be able to configure
-a loopback device that was _not_ named "lo" (unlikely to exist).
-
-The result was that we'd update /run/network/ifstate for "lo"
-but never actually do anything for up/down, as shown below:
-
-root@localhost:~# ifconfig -s
-Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
-eth0 1500 0 7736329 0 2016 0 5289422 0 0 0 BMRU
-lo 65536 0 18 0 0 0 18 0 0 0 LRU
-root@localhost:~# ifdown lo
-root@localhost:~# echo $?
-0
-root@localhost:~# ifconfig -s
-Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
-eth0 1500 0 7736406 0 2016 0 5289455 0 0 0 BMRU
-lo 65536 0 18 0 0 0 18 0 0 0 LRU
-root@localhost:~# ifconfig lo down
-root@localhost:~# ifconfig -s
-Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
-eth0 1500 0 7736474 0 2016 0 5289481 0 0 0 BMRU
-root@localhost:~#
-
-Also reverted the commit:
-commit 80b878497663dae08f70b4d3cffe127b57a3cfc
-which uses absolute paths to binaries called by ifup/ifdown.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- inet.defn | 134 +++++++++++++++++++++++++++---------------------------
- 1 file changed, 67 insertions(+), 67 deletions(-)
-
-diff --git a/inet.defn b/inet.defn
-index 182b56b..31067bc 100644
---- a/inet.defn
-+++ b/inet.defn
-@@ -6,10 +6,10 @@ method loopback
- This method may be used to define the IPv4 loopback interface.
-
- up
-- /bin/ip link set dev %iface% up if (!iface_is_lo())
-+ ip link set dev %iface% up if (!iface_is_lo())
-
- down
-- /bin/ip link set dev %iface% down if (!iface_is_lo())
-+ ip link set dev %iface% down if (!iface_is_lo())
-
- method static
- description
-@@ -36,17 +36,17 @@ method static
- broadcast compute_v4_broadcast
-
- up
-- /bin/ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \
-+ ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \
- [[peer %pointopoint%]] [[scope %scope%]] dev %iface% label %iface%
-- /bin/ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up
-+ ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up
-
-- [[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
-+ [[ ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
-
- down
-- [[ /bin/ip route del default via %gateway% [[metric %metric%]] dev %iface% 2>&1 1>/dev/null || true ]]
-- /bin/ip addr del %address%[[/%netmask%]] [[broadcast %broadcast%]] \
-+ [[ ip route del default via %gateway% [[metric %metric%]] dev %iface% 2>&1 1>/dev/null || true ]]
-+ ip addr del %address%[[/%netmask%]] [[broadcast %broadcast%]] \
- [[peer %pointopoint%]] [[scope %scope%]] dev %iface% label %iface%
-- /bin/ip link set dev %iface% down \
-+ ip link set dev %iface% down \
- if (iface_is_link())
-
- method manual
-@@ -63,12 +63,12 @@ method manual
- hwaddress cleanup_hwaddress
-
- up
-- [[/bin/ip link set dev %iface% mtu %mtu%]]
-- [[/bin/ip link set dev %iface% address %hwaddress%]]
-- /bin/ip link set dev %iface% up 2>/dev/null || true
-+ [[ip link set dev %iface% mtu %mtu%]]
-+ [[ip link set dev %iface% address %hwaddress%]]
-+ ip link set dev %iface% up 2>/dev/null || true
-
- down
-- /bin/ip link set dev %iface% down 2>/dev/null || true \
-+ ip link set dev %iface% down 2>/dev/null || true \
- if (iface_is_link() && !do_all)
-
- method dhcp
-@@ -93,33 +93,33 @@ method dhcp
- hwaddress cleanup_hwaddress
-
- up
-- [[/bin/ip link set dev %iface% address %hwaddress%]]
-- /sbin/dhclient -4 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
-+ [[ip link set dev %iface% address %hwaddress%]]
-+ dhclient -4 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
- [[-e IF_METRIC=%metric%]] \
- if (execable("/sbin/dhclient"))
-- /sbin/pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \
-+ pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \
- elsif (execable("/sbin/pump"))
-- /sbin/udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-x hostname:%hostname%]] \
-+ udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-x hostname:%hostname%]] \
- elsif (execable("/sbin/udhcpc"))
-- /sbin/dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
-+ dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
- [[-l %leasetime%]] [[-m %metric%]] %iface% \
- elsif (execable("/sbin/dhcpcd"))
- echo 'No DHCP client software found!' >/dev/stderr; false \
- elsif (1)
-
- down
-- /sbin/dhclient -4 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
-+ dhclient -4 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
- if (execable("/sbin/dhclient"))
-- /sbin/pump -i %iface% -r \
-+ pump -i %iface% -r \
- elsif (execable("/sbin/pump"))
- if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \
- elsif (execable("/sbin/udhcpc"))
-- /sbin/dhcpcd -k %iface% \
-+ dhcpcd -k %iface% \
- elsif (execable("/sbin/dhcpcd"))
- echo 'No DHCP client software found!' >/dev/stderr; false \
- elsif (1)
-
-- /bin/ip link set dev %iface% down \
-+ ip link set dev %iface% down \
- if (iface_is_link())
-
- method bootp
-@@ -134,11 +134,11 @@ method bootp
- whatever it really is.
-
- up
-- /sbin/bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
-+ bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
- [[--hwaddr %hwaddr%]] --returniffail --serverbcast
-
- down
-- /bin/ip link set dev %iface% down \
-+ ip link set dev %iface% down \
- if (iface_is_link())
-
- method tunnel
-@@ -158,13 +158,13 @@ method tunnel
- ttl time -- TTL setting
- mtu size -- MTU size
- up
-- /bin/ip tunnel add %iface% mode %mode% remote %endpoint% [[local %local%]] \
-+ ip tunnel add %iface% mode %mode% remote %endpoint% [[local %local%]] \
- [[ttl %ttl%]]
-- /bin/ip link set %iface% up [[mtu %mtu%]]
-- /bin/ip addr add %address%/%netmask% dev %iface% [[peer %dstaddr%]]
-- [[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
-+ ip link set %iface% up [[mtu %mtu%]]
-+ ip addr add %address%/%netmask% dev %iface% [[peer %dstaddr%]]
-+ [[ ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
- down
-- /bin/ip tunnel del %iface%
-+ ip tunnel del %iface%
-
- method ppp
- description
-@@ -175,9 +175,9 @@ method ppp
- unit number -- Use /number/ as the ppp unit number.
- options string -- Pass /string/ as additional options to pon.
- up
-- /usr/bin/pon [[%provider%]] [[unit %unit%]] [[%options%]]
-+ pon [[%provider%]] [[unit %unit%]] [[%options%]]
- down
-- /usr/bin/poff [[%provider%]]
-+ poff [[%provider%]]
-
- method wvdial
- description
-@@ -186,10 +186,10 @@ method wvdial
- options
- provider name -- Use /name/ as the provider (from /etc/wvdial.conf).
- up
-- /sbin/start-stop-daemon --start -x /usr/bin/wvdial \
-+ start-stop-daemon --start -x /usr/bin/wvdial \
- -p /run/wvdial.%iface%.pid -b -m -- [[ %provider% ]]
- down
-- /sbin/start-stop-daemon --stop -x /usr/bin/wvdial \
-+ start-stop-daemon --stop -x /usr/bin/wvdial \
- -p /run/wvdial.%iface%.pid -s 2
-
-
-@@ -200,9 +200,9 @@ method ipv4ll
- known as APIPA or IPAC, and often colloquially referred to
- as "Zeroconf address".
- up
-- /usr/sbin/avahi-autoipd -D %iface%
-+ avahi-autoipd -D %iface%
- down
-- /usr/sbin/avahi-autoipd --kill %iface%
-+ avahi-autoipd --kill %iface%
-
- architecture kfreebsd
-
-@@ -211,11 +211,11 @@ method loopback
- This method may be used to define the IPv4 loopback interface.
-
- up
-- /sbin/ifconfig %iface% 127.0.0.1 up \
-+ ifconfig %iface% 127.0.0.1 up \
- if (!iface_is_lo())
-
- down
-- /sbin/ifconfig %iface% down \
-+ ifconfig %iface% down \
- if (!iface_is_lo())
-
- method static
-@@ -238,15 +238,15 @@ method static
- hwaddress cleanup_hwaddress
-
- up
-- [[ /sbin/ifconfig %iface% link %hwaddress%]]
-- /sbin/ifconfig %iface% %address% [[netmask %netmask%]] [[broadcast %broadcast%]] \
-+ [[ ifconfig %iface% link %hwaddress%]]
-+ ifconfig %iface% %address% [[netmask %netmask%]] [[broadcast %broadcast%]] \
- [[pointopoint %pointopoint%]] [[media %media%]] [[mtu %mtu%]] \
- up
-- [[ /sbin/route add default %gateway% ]]
-+ [[ route add default %gateway% ]]
-
- down
-- [[ /sbin/route del default %gateway% 2>&1 1>/dev/null || true ]]
-- /sbin/ifconfig %iface% down
-+ [[ route del default %gateway% 2>&1 1>/dev/null || true ]]
-+ ifconfig %iface% down
-
- method manual
- description
-@@ -279,30 +279,30 @@ method dhcp
- hwaddress cleanup_hwaddress
-
- up
-- [[/sbin/ifconfig %iface% link %hwaddress%]]
-- /sbin/dhclient -4 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
-+ [[ifconfig %iface% link %hwaddress%]]
-+ dhclient -4 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
- [[-e IF_METRIC=%metric%]] \
- if (execable("/sbin/dhclient"))
-- /sbin/udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-H %hostname%]] \
-+ udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-H %hostname%]] \
- [[-c %client%]] \
- elsif (execable("/sbin/udhcpc"))
-- /sbin/dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
-+ dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
- [[-l %leasetime%]] %iface% \
- elsif (execable("/sbin/dhcpcd"))
- echo 'No DHCP client software found!' >/dev/stderr; false \
- elsif (1)
-
- down
-- /sbin/dhclient -4 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
-+ dhclient -4 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
- if (execable("/sbin/dhclient"))
- if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \
- elsif (execable("/sbin/udhcpc"))
-- /sbin/dhcpcd -k %iface% \
-+ dhcpcd -k %iface% \
- elsif (execable("/sbin/dhcpcd"))
- echo 'No DHCP client software found!' >/dev/stderr; false \
- elsif (1)
-
-- /sbin/ifconfig %iface% down
-+ ifconfig %iface% down
-
- method bootp
- description
-@@ -316,11 +316,11 @@ method bootp
- whatever it really is.
-
- up
-- /sbin/bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
-+ bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
- [[--hwaddr %hwaddr%]] --returniffail --serverbcast
-
- down
-- /sbin/ifconfig %iface% down
-+ ifconfig %iface% down
-
- method ppp
- description
-@@ -331,9 +331,9 @@ method ppp
- unit number -- Use /number/ as the ppp unit number.
- options string -- Pass /string/ as additional options to pon.
- up
-- /usr/bin/pon [[%provider%]] [[unit %unit%]] [[%options%]]
-+ pon [[%provider%]] [[unit %unit%]] [[%options%]]
- down
-- /usr/bin/poff [[%provider%]]
-+ poff [[%provider%]]
-
- method wvdial
- description
-@@ -342,10 +342,10 @@ method wvdial
- options
- provider name -- Use /name/ as the provider (from /etc/wvdial.conf).
- up
-- /sbin/start-stop-daemon --start -x /usr/bin/wvdial \
-+ start-stop-daemon --start -x /usr/bin/wvdial \
- -p /run/wvdial.%iface%.pid -b -m -- [[ %provider% ]]
- down
-- /sbin/start-stop-daemon --stop -x /usr/bin/wvdial \
-+ start-stop-daemon --stop -x /usr/bin/wvdial \
- -p /run/wvdial.%iface%.pid -s 2
-
-
-@@ -356,9 +356,9 @@ method ipv4ll
- known as APIPA or IPAC, and often colloquially referred to
- as "Zeroconf address".
- up
-- /usr/sbin/avahi-autoipd -D %iface%
-+ avahi-autoipd -D %iface%
- down
-- /usr/sbin/avahi-autoipd --kill %iface%
-+ avahi-autoipd --kill %iface%
- architecture hurd
-
- method loopback
-@@ -432,23 +432,23 @@ method dhcp
-
- up
- [[Warning: Option hwaddress: %hwaddress% not yet supported]]
-- /sbin/dhclient -4 -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
-+ dhclient -4 -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
- if (execable("/sbin/dhclient"))
-- /sbin/udhcpc -n -p /run/udhcpc.%iface///.%.pid -i %iface% [[-H %hostname%]] \
-+ udhcpc -n -p /run/udhcpc.%iface///.%.pid -i %iface% [[-H %hostname%]] \
- [[-c %client%]] \
- elsif (execable("/sbin/udhcpc"))
-- /sbin/dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
-+ dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
- [[-l %leasetime%]] %iface% \
- elsif (execable("/sbin/dhcpcd"))
- echo 'No DHCP client software found!' >/dev/stderr; false \
- elsif (1)
-
- down
-- /sbin/dhclient -4 -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
-+ dhclient -4 -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
- if (execable("/sbin/dhclient"))
- if test -f /run/udhcpc.%iface///.%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface///.%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface///.%.pid); fi \
- elsif (execable("/sbin/udhcpc"))
-- /sbin/dhcpcd -k %iface% \
-+ dhcpcd -k %iface% \
- elsif (execable("/sbin/dhcpcd"))
- echo 'No DHCP client software found!' >/dev/stderr; false \
- elsif (1)
-@@ -482,9 +482,9 @@ method ppp
- unit number -- Use /number/ as the ppp unit number.
- options string -- Pass /string/ as additional options to pon.
- up
-- /usr/bin/pon [[%provider%]] [[unit %unit%]] [[%options%]]
-+ pon [[%provider%]] [[unit %unit%]] [[%options%]]
- down
-- /usr/bin/poff [[%provider%]]
-+ poff [[%provider%]]
-
- method wvdial
- description
-@@ -493,10 +493,10 @@ method wvdial
- options
- provider name -- Use /name/ as the provider (from /etc/wvdial.conf).
- up
-- /sbin/start-stop-daemon --start -x /usr/bin/wvdial \
-+ start-stop-daemon --start -x /usr/bin/wvdial \
- -p /run/wvdial.%iface///.%.pid -b -m -- [[ %provider% ]]
- down
-- /sbin/start-stop-daemon --stop -x /usr/bin/wvdial \
-+ start-stop-daemon --stop -x /usr/bin/wvdial \
- -p /run/wvdial.%iface///.%.pid -s 2
-
-
-@@ -507,6 +507,6 @@ method ipv4ll
- known as APIPA or IPAC, and often colloquially referred to
- as "Zeroconf address".
- up
-- /usr/sbin/avahi-autoipd -D %iface%
-+ avahi-autoipd -D %iface%
- down
-- /usr/sbin/avahi-autoipd --kill %iface%
-+ avahi-autoipd --kill %iface%
---
-2.17.1
-
diff --git a/meta/recipes-core/kbd/kbd/run-ptest b/meta/recipes-core/ifupdown/files/run-ptest
index 7a2d205f54..8694042392 100644
--- a/meta/recipes-core/kbd/kbd/run-ptest
+++ b/meta/recipes-core/ifupdown/files/run-ptest
@@ -1,4 +1,4 @@
#!/bin/sh
CURDIR=$(dirname `readlink -f $0`)
-make -k -C ${CURDIR}/tests check-TESTS
+cd $CURDIR/tests && ./testbuild-linux
diff --git a/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch b/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch
new file mode 100644
index 0000000000..d7600cf243
--- /dev/null
+++ b/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch
@@ -0,0 +1,49 @@
+Tweak tests of ifupdown to make it work with oe-core ptest framework.
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+diff --git a/tests/testbuild-linux b/tests/testbuild-linux
+index 1181ea0..d5c1814 100755
+--- a/tests/testbuild-linux
++++ b/tests/testbuild-linux
+@@ -1,6 +1,7 @@
+ #!/bin/sh -e
+
+-dir=tests/linux
++curdir=$(dirname `readlink -f $0`)
++dir=$curdir/linux
+
+ result=true
+ for test in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do
+@@ -12,7 +13,7 @@ for test in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do
+ echo "Testcase $test: $args"
+
+ exitcode=0
+- ./ifup -v --no-act-commands --force -i $dir/testcase.$test --state-dir=$dir/state.$test $args \
++ ifup -v --no-act-commands --force -i $dir/testcase.$test --state-dir=$dir/state.$test $args \
+ >$dir/up-res-out.$test 2>$dir/up-res-err.$test || exitcode=$?
+
+ (echo "exit code: $exitcode";
+@@ -20,7 +21,7 @@ for test in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do
+ echo "====stderr===="; cat $dir/up-res-err.$test) > $dir/up-res.$test
+
+ exitcode=0
+- ./ifdown -v --no-act-commands --force -i $dir/testcase.$test --state-dir=$dir/state.$test $args \
++ ifdown -v --no-act-commands --force -i $dir/testcase.$test --state-dir=$dir/state.$test $args \
+ >$dir/down-res-out.$test 2>$dir/down-res-err.$test || exitcode=$?
+
+ (echo "exit code: $exitcode";
+@@ -28,9 +29,9 @@ for test in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do
+ echo "====stderr===="; cat $dir/down-res-err.$test) > $dir/down-res.$test
+
+ if diff -ub $dir/up.$test $dir/up-res.$test && diff -ub $dir/down.$test $dir/down-res.$test; then
+- echo "(okay)"
++ echo "PASS: $test"
+ else
+- echo "(failed)"
++ echo "FAIL: $test"
+ result=false
+ fi
+ echo "=========="
diff --git a/meta/recipes-core/ifupdown/ifupdown_0.8.22.bb b/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb
index bd0989e885..53cb971d33 100644
--- a/meta/recipes-core/ifupdown/ifupdown_0.8.22.bb
+++ b/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb
@@ -7,17 +7,19 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https \
- file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \
- file://inet-6-.defn-fix-inverted-checks-for-loopback.patch \
- file://99_network \
- file://0001-Define-FNM_EXTMATCH-for-musl.patch \
- "
-SRCREV = "ab5a0f464e53e172316a5ca8b5dcdc49e8848999"
+ file://defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch \
+ file://99_network \
+ file://0001-Define-FNM_EXTMATCH-for-musl.patch \
+ file://0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch \
+ file://run-ptest \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://tweak-ptest-script.patch', '', d)} \
+ "
+SRCREV = "4af76318cfc57f8e4a44d357104188666213bd4b"
S = "${WORKDIR}/git"
-inherit update-alternatives
+inherit ptest update-alternatives
do_compile () {
chmod a+rx *.pl *.sh
@@ -40,6 +42,12 @@ do_install () {
cd ${D}${mandir}/man8 && ln -s ifup.8 ifdown.8
}
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -r ${S}/tests/testbuild-linux ${D}${PTEST_PATH}/tests/
+ cp -r ${S}/tests/linux ${D}${PTEST_PATH}/tests/
+}
+
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN} = "ifup ifdown"
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 1d74ee5198..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 ?= "8181681b33da272fef83276104d5c7a93f84da46"
+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/sysfs.sh b/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh
index f5b5b9904b..4871ee94e5 100644
--- a/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh
@@ -26,6 +26,10 @@ if [ -e /sys/kernel/config ] && grep -q configfs /proc/filesystems; then
mount -t configfs configfs /sys/kernel/config
fi
+if [ -e /sys/firmware/efi/efivars ] && grep -q efivarfs /proc/filesystems; then
+ mount -t efivarfs efivarfs /sys/firmware/efi/efivars
+fi
+
if ! [ -e /dev/zero ] && [ -e /dev ] && grep -q devtmpfs /proc/filesystems; then
mount -n -t devtmpfs devtmpfs /dev
fi
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/set-proper-path-of-resources.patch b/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch
deleted file mode 100644
index a9a3ab8abf..0000000000
--- a/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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>
-
-Index: kbd-2.0.4/tests/Makefile.am
-===================================================================
---- kbd-2.0.4.orig/tests/Makefile.am
-+++ kbd-2.0.4/tests/Makefile.am
-@@ -1,7 +1,7 @@
- AM_CPPFLAGS = \
- -I$(srcdir)/../src/libkeymap \
- -I$(builddir)/../src/libkeymap \
-- -DDATADIR=\"$(srcdir)\" -DBUILDDIR=\"$(builddir)\"
-+ -DDATADIR=\".\" -DBUILDDIR=\"$(builddir)\"
-
- AM_CFLAGS = $(CHECK_CFLAGS)
- LDADD = $(top_builddir)/src/libkeymap/libkeymap.la $(CHECK_LIBS) @INTLLIBS@
-Index: kbd-2.0.4/tests/alt-is-meta.in
-===================================================================
---- kbd-2.0.4.orig/tests/alt-is-meta.in
-+++ kbd-2.0.4/tests/alt-is-meta.in
-@@ -7,8 +7,8 @@ cd "$cwd"
- rc=0
- temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")"
-
--./libkeymap-showmaps "@DATADIR@"/alt-is-meta.map > "$temp" || rc=$?
--cmp -s "@DATADIR@//alt-is-meta.output" "$temp" || rc=$?
-+./libkeymap-showmaps ./alt-is-meta.map > "$temp" || rc=$?
-+cmp -s "./alt-is-meta.output" "$temp" || rc=$?
-
- if [ "$rc" != 0 ]; then
- printf 'failed\n'
-Index: kbd-2.0.4/tests/dumpkeys-fulltable.in
-===================================================================
---- kbd-2.0.4.orig/tests/dumpkeys-fulltable.in
-+++ kbd-2.0.4/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/meta/recipes-core/kbd/kbd_2.0.4.bb b/meta/recipes-core/kbd/kbd_2.0.4.bb
deleted file mode 100644
index 4af3256fff..0000000000
--- a/meta/recipes-core/kbd/kbd_2.0.4.bb
+++ /dev/null
@@ -1,64 +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=a5fcc36121d93e1f69d96a313078c8b5"
-
-inherit autotools gettext ptest pkgconfig
-
-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)} \
- "
-
-SRC_URI[md5sum] = "c1635a5a83b63aca7f97a3eab39ebaa6"
-SRC_URI[sha256sum] = "5fd90af6beb225a9bb9b9fb414c090fba53c9a55793e172f508cd43652e59a88"
-
-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 dumpkeys-fulltable alt-is-meta
-}
-
-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 '/libkeymap_.*_SOURCES =/d' -e '/$(EXEEXT):/,/^$/d' ${D}${PTEST_PATH}/tests/Makefile
-
- find ${B}/tests -executable -exec install {} ${D}${PTEST_PATH}/tests \;
- find ${S}/tests \( -name \*.map -o -name \*.bin -o -name \*.output \) -exec install {} ${D}${PTEST_PATH}/tests \;
-
- 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"
-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.8.bb b/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.17.bb
index ebc4648a18..ba74eb1f94 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.8.bb
+++ b/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.17.bb
@@ -2,7 +2,7 @@
# This provides libcrypto.so.1 which contains obsolete APIs, needed for uninative in particular
#
-require libxcrypt_${PV}.bb
+require libxcrypt.inc
PROVIDES = ""
AUTO_LIBNAME_PKGS = ""
diff --git a/meta/recipes-core/libxcrypt/libxcrypt_4.4.8.bb b/meta/recipes-core/libxcrypt/libxcrypt.inc
index 1787f6921e..104a2af4d2 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt_4.4.8.bb
+++ 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 = "acd84997a5a8b2badd28b70a642abee11272fad2"
+SRCREV = "6b110bcd4f4caa61fc39c7339d30adc20a7dd177"
SRCBRANCH ?= "develop"
PROVIDES = "virtual/crypt"
@@ -30,4 +30,4 @@ CPPFLAGS_append_class-nativesdk = " -Wno-error"
API = "--disable-obsolete-api"
EXTRA_OECONF += "${API}"
-BBCLASSEXTEND = "nativesdk"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/libxcrypt/libxcrypt_4.4.17.bb b/meta/recipes-core/libxcrypt/libxcrypt_4.4.17.bb
new file mode 100644
index 0000000000..79dba2f6dc
--- /dev/null
+++ b/meta/recipes-core/libxcrypt/libxcrypt_4.4.17.bb
@@ -0,0 +1,2 @@
+require libxcrypt.inc
+
diff --git a/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch b/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch
index 2b92dbc8dc..5e9a0a506b 100644
--- a/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch
+++ b/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch
@@ -1,4 +1,4 @@
-From 78dbd4c09d617a9cb730d796f94ee4d93840d3cc Mon Sep 17 00:00:00 2001
+From 2b5fb416aa275fd2a17a0139a2f783998bcb42cc Mon Sep 17 00:00:00 2001
From: Peter Kjellerstedt <pkj@axis.com>
Date: Fri, 9 Jun 2017 17:50:46 +0200
Subject: [PATCH] Make ptest run the python tests if python is enabled
@@ -8,18 +8,19 @@ be due to the fact that the tests are forced to run with Python 3.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
+
---
Makefile.am | 2 +-
python/Makefile.am | 9 +++++++++
- python/tests/Makefile.am | 12 ++++++++++--
+ python/tests/Makefile.am | 10 ++++++++++
python/tests/tstLastError.py | 2 +-
- 4 files changed, 21 insertions(+), 4 deletions(-)
+ 4 files changed, 21 insertions(+), 2 deletions(-)
-Index: libxml2-2.9.7/Makefile.am
-===================================================================
---- libxml2-2.9.7.orig/Makefile.am
-+++ libxml2-2.9.7/Makefile.am
-@@ -207,9 +207,9 @@ install-ptest:
+diff --git a/Makefile.am b/Makefile.am
+index ae62274..bd1e425 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -203,9 +203,9 @@ install-ptest:
install $(check_PROGRAMS) $(DESTDIR))
cp -r $(srcdir)/test $(DESTDIR)
cp -r $(srcdir)/result $(DESTDIR)
@@ -30,11 +31,11 @@ Index: libxml2-2.9.7/Makefile.am
runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \
testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)
-Index: libxml2-2.9.7/python/Makefile.am
-===================================================================
---- libxml2-2.9.7.orig/python/Makefile.am
-+++ libxml2-2.9.7/python/Makefile.am
-@@ -48,7 +48,16 @@ GENERATED = libxml2class.py libxml2class
+diff --git a/python/Makefile.am b/python/Makefile.am
+index 34aed96..ba3ec6a 100644
+--- a/python/Makefile.am
++++ b/python/Makefile.am
+@@ -48,7 +48,16 @@ GENERATED = libxml2class.py libxml2class.txt $(BUILT_SOURCES)
$(GENERATED): $(srcdir)/generator.py $(API_DESC)
$(PYTHON) $(srcdir)/generator.py $(srcdir)
@@ -51,10 +52,10 @@ Index: libxml2-2.9.7/python/Makefile.am
+.PHONY: tests test
tests test: all
cd tests && $(MAKE) tests
-Index: libxml2-2.9.7/python/tests/Makefile.am
-===================================================================
---- libxml2-2.9.7.orig/python/tests/Makefile.am
-+++ libxml2-2.9.7/python/tests/Makefile.am
+diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am
+index 227e24d..021bb29 100644
+--- a/python/tests/Makefile.am
++++ b/python/tests/Makefile.am
@@ -59,6 +59,11 @@ XMLS= \
CLEANFILES = core tmp.xml *.pyc
@@ -67,24 +68,25 @@ Index: libxml2-2.9.7/python/tests/Makefile.am
tests: $(PYTESTS)
@for f in $(XMLS) ; do test -f $$f || $(LN_S) $(srcdir)/$$f . ; done
@echo "## running Python regression tests"
-@@ -68,8 +73,11 @@ tests: $(PYTESTS)
- export LD_LIBRARY_PATH; \
- for test in $(PYTESTS) ; \
- do log=`$(PYTHON) $(srcdir)/$$test` ; \
-- if [ "`echo $$log | grep OK`" = "" ] ; then \
-- echo "-- $$test" ; echo "$$log" ; fi ; done)
-+ if [ "`echo $$log | grep OK`" ]; then \
-+ echo "PASS: $$test"; else \
-+ echo "$$log"; echo "FAIL: $$test"; fi; done)
+@@ -70,9 +75,14 @@ tests: $(PYTESTS)
+ if [ "$$?" -ne 0 ] ; then \
+ echo "-- $$test" ; \
+ echo "$$log" ; \
++ echo "FAIL: $$test"; \
+ exit 1 ; \
++ else \
++ echo "PASS: $$test"; \
+ fi ; \
+ done)
else
+install-ptest:
+
tests:
endif
-Index: libxml2-2.9.7/python/tests/tstLastError.py
-===================================================================
---- libxml2-2.9.7.orig/python/tests/tstLastError.py
-+++ libxml2-2.9.7/python/tests/tstLastError.py
+diff --git a/python/tests/tstLastError.py b/python/tests/tstLastError.py
+index 81d0acc..162c8db 100755
+--- a/python/tests/tstLastError.py
++++ b/python/tests/tstLastError.py
@@ -25,7 +25,7 @@ class TestCase(unittest.TestCase):
when the exception is raised, check the libxml2.lastError for
expected values."""
diff --git a/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch b/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch
new file mode 100644
index 0000000000..88eb65a6a5
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch
@@ -0,0 +1,37 @@
+From 7ffcd44d7e6c46704f8af0321d9314cd26e0e18a Mon Sep 17 00:00:00 2001
+From: Zhipeng Xie <xiezhipeng1@huawei.com>
+Date: Tue, 20 Aug 2019 16:33:06 +0800
+Subject: [PATCH] Fix memory leak in xmlSchemaValidateStream
+
+When ctxt->schema is NULL, xmlSchemaSAXPlug->xmlSchemaPreRun
+alloc a new schema for ctxt->schema and set vctxt->xsiAssemble
+to 1. Then xmlSchemaVStart->xmlSchemaPreRun initialize
+vctxt->xsiAssemble to 0 again which cause the alloced schema
+can not be freed anymore.
+
+Found with libFuzzer.
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/commit/7ffcd44d7e6c46704f8af0321d9314cd26e0e18a]
+CVE: CVE-2019-20388
+
+Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com>
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+---
+ xmlschemas.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/xmlschemas.c b/xmlschemas.c
+index 301c8449..39d92182 100644
+--- a/xmlschemas.c
++++ b/xmlschemas.c
+@@ -28090,7 +28090,6 @@ xmlSchemaPreRun(xmlSchemaValidCtxtPtr vctxt) {
+ vctxt->nberrors = 0;
+ vctxt->depth = -1;
+ vctxt->skipDepth = -1;
+- vctxt->xsiAssemble = 0;
+ vctxt->hasKeyrefs = 0;
+ #ifdef ENABLE_IDC_NODE_TABLES_TEST
+ vctxt->createIDCNodeTables = 1;
+--
+2.24.1
+
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/CVE-2020-7595.patch b/meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch
new file mode 100644
index 0000000000..facfefd362
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch
@@ -0,0 +1,36 @@
+From 0e1a49c8907645d2e155f0d89d4d9895ac5112b5 Mon Sep 17 00:00:00 2001
+From: Zhipeng Xie <xiezhipeng1@huawei.com>
+Date: Thu, 12 Dec 2019 17:30:55 +0800
+Subject: [PATCH] Fix infinite loop in xmlStringLenDecodeEntities
+
+When ctxt->instate == XML_PARSER_EOF,xmlParseStringEntityRef
+return NULL which cause a infinite loop in xmlStringLenDecodeEntities
+
+Found with libFuzzer.
+
+Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com>
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/commit/0e1a49c89076]
+CVE: CVE-2020-7595
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ parser.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/parser.c b/parser.c
+index d1c31963..a34bb6cd 100644
+--- a/parser.c
++++ b/parser.c
+@@ -2646,7 +2646,8 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len,
+ else
+ c = 0;
+ while ((c != 0) && (c != end) && /* non input consuming loop */
+- (c != end2) && (c != end3)) {
++ (c != end2) && (c != end3) &&
++ (ctxt->instate != XML_PARSER_EOF)) {
+
+ if (c == 0) break;
+ if ((c == '&') && (str[1] == '#')) {
+--
+2.24.1
+
diff --git a/meta/recipes-core/libxml/libxml2_2.9.9.bb b/meta/recipes-core/libxml/libxml2_2.9.10.bb
index c38f883e44..90890ffaed 100644
--- a/meta/recipes-core/libxml/libxml2_2.9.9.bb
+++ b/meta/recipes-core/libxml/libxml2_2.9.10.bb
@@ -20,10 +20,13 @@ SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \
file://libxml-m4-use-pkgconfig.patch \
file://0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch \
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] = "c04a5a0a042eaa157e8e8c9eabe76bd6"
-SRC_URI[libtar.sha256sum] = "94fb70890143e3c6549f265cee93ec064c80a84c42ad0f23e85ee1fd6540a871"
+SRC_URI[libtar.md5sum] = "10942a1dc23137a8aa07f0639cbfece5"
+SRC_URI[libtar.sha256sum] = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f"
SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a"
SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7"
@@ -35,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 distro_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
new file mode 100644
index 0000000000..c32d0107c3
--- /dev/null
+++ b/meta/recipes-core/meta/buildtools-extended-tarball.bb
@@ -0,0 +1,36 @@
+require recipes-core/meta/buildtools-tarball.bb
+
+DESCRIPTION = "SDK type target for building a standalone tarball containing build-essentials, python3, chrpath, \
+ make, git and tar. The tarball can be used to run bitbake builds on systems which don't meet the \
+ usual version requirements and have ancient compilers."
+SUMMARY = "Standalone tarball for running builds on systems with inadequate software and ancient compilers"
+LICENSE = "MIT"
+
+# Add nativesdk equivalent of build-essentials
+TOOLCHAIN_HOST_TASK += "\
+ nativesdk-automake \
+ nativesdk-autoconf \
+ nativesdk-binutils \
+ nativesdk-binutils-symlinks \
+ nativesdk-cpp \
+ nativesdk-cpp-symlinks \
+ nativesdk-gcc \
+ nativesdk-gcc-symlinks \
+ nativesdk-g++ \
+ nativesdk-g++-symlinks \
+ 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}"
+
+SDK_TITLE = "Extended Build tools"
diff --git a/meta/recipes-core/meta/buildtools-tarball.bb b/meta/recipes-core/meta/buildtools-tarball.bb
index 91df6f1ae9..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 \
@@ -25,6 +27,8 @@ TOOLCHAIN_HOST_TASK ?= "\
nativesdk-texinfo \
nativesdk-libnss-nis \
nativesdk-rpcsvc-proto \
+ nativesdk-patch \
+ nativesdk-mtools \
"
MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
@@ -64,14 +68,22 @@ 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
+ 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
if [ "${SDKMACHINE}" = "i686" ]; then
echo 'export NO32LIBS="0"' >>$script
diff --git a/meta/recipes-core/meta/cve-update-db-native.bb b/meta/recipes-core/meta/cve-update-db-native.bb
index 2c427a5884..cf2b251e21 100644
--- a/meta/recipes-core/meta/cve-update-db-native.bb
+++ b/meta/recipes-core/meta/cve-update-db-native.bb
@@ -13,39 +13,45 @@ 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 sqlite3, urllib, urllib.parse, shutil, gzip
+ import bb.utils
+ import bb.progress
+ import sqlite3, urllib, urllib.parse, gzip
from datetime import date
- BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-"
+ bb.utils.export_proxies(d)
+
+ BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-"
YEAR_START = 2002
- db_dir = os.path.join(d.getVar("DL_DIR"), 'CVE_CHECK')
- db_file = os.path.join(db_dir, 'nvdcve_1.0.db')
- json_tmpfile = os.path.join(db_dir, 'nvd.json.gz')
- proxy = d.getVar("https_proxy")
+ db_file = d.getVar("CVE_CHECK_DB_FILE")
+ db_dir = os.path.dirname(db_file)
+
+ 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 proxy:
- # instantiate an opener but do not install it as the global
- # opener unless if we're really sure it's applicable for all
- # urllib requests
- proxy_handler = urllib.request.ProxyHandler({'https': proxy})
- proxy_opener = urllib.request.build_opener(proxy_handler)
- else:
- proxy_opener = None
+ if os.path.exists(db_file):
+ os.remove(db_file)
- cve_f = open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a')
+ # 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
- 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,70 +59,75 @@ 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 = None
-
- if proxy_opener:
- response = proxy_opener.open(meta_url)
- else:
- req = urllib.request.Request(meta_url)
- response = urllib.request.urlopen(req)
-
- 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:
- if proxy_opener:
- response = proxy_opener.open(json_url)
- else:
- req = urllib.request.Request(json_url)
- response = urllib.request.urlopen(req)
-
- 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)")
+
c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)")
+
c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \
VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \
VERSION_END TEXT, OPERATOR_END TEXT)")
+ c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_ID_IDX on PRODUCTS(ID);")
def parse_node_and_insert(c, node, cveId):
# Parse children node if needed
@@ -132,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 = ''
@@ -170,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 (?, ?, ?, ?, ?, ?)",
@@ -189,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/dummy-sdk-package.inc b/meta/recipes-core/meta/dummy-sdk-package.inc
index 4d653706b1..bedde2965c 100644
--- a/meta/recipes-core/meta/dummy-sdk-package.inc
+++ b/meta/recipes-core/meta/dummy-sdk-package.inc
@@ -16,11 +16,16 @@ python() {
ALLOW_EMPTY_${PN} = "1"
PR[vardeps] += "DUMMYPROVIDES"
+PR[vardeps] += "DUMMYPROVIDES_PACKAGES"
+
+DUMMYPROVIDES_PACKAGES ??= ""
+DUMMYPROVIDES_PACKAGES_MULTILIB = "${@' '.join([multilib_pkg_extend(d, pkg) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES').split()])}"
+DUMMYPROVIDES += "${DUMMYPROVIDES_PACKAGES_MULTILIB}"
python populate_packages_prepend() {
p = d.getVar("PN")
d.appendVar("RPROVIDES_%s" % p, "${DUMMYPROVIDES}")
d.appendVar("RCONFLICTS_%s" % p, "${DUMMYPROVIDES}")
- d.appendVar("RREPLACES_%s" % p, "${DUMMYPROVIDES}")
+ d.appendVar("RREPLACES_%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}")
}
diff --git a/meta/recipes-core/meta/meta-extsdk-toolchain.bb b/meta/recipes-core/meta/meta-extsdk-toolchain.bb
index 235d6ecc0f..0df681ac73 100644
--- a/meta/recipes-core/meta/meta-extsdk-toolchain.bb
+++ b/meta/recipes-core/meta/meta-extsdk-toolchain.bb
@@ -16,6 +16,9 @@ addtask do_locked_sigs after do_populate_sysroot
SSTATETASKS += "do_locked_sigs"
do_locked_sigs[sstate-inputdirs] = "${LOCKED_SIGS_INDIR}"
do_locked_sigs[sstate-outputdirs] = "${STAGING_DIR}/${PACKAGE_ARCH}/${PN}/locked-sigs"
+# If a taskhash changes we need to use the latest hash changes. With unihash we may not rebuild.
+# eSDK which uses this is nostamp anyway
+do_locked_sigs[nostamp] = "1"
python do_locked_sigs() {
import oe.copy_buildsystem
diff --git a/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb b/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
index 6a8748acdf..cfa41c4ae6 100644
--- a/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
+++ b/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
@@ -1,6 +1,6 @@
DUMMYARCH = "buildtools-dummy-${SDKPKGSUFFIX}"
-DUMMYPROVIDES = "\
+DUMMYPROVIDES_PACKAGES = "\
nativesdk-perl \
nativesdk-libxml-parser-perl \
nativesdk-perl-module-bytes \
@@ -15,12 +15,18 @@ DUMMYPROVIDES = "\
nativesdk-perl-module-file-find \
nativesdk-perl-module-file-glob \
nativesdk-perl-module-file-path \
+ nativesdk-perl-module-file-spec \
nativesdk-perl-module-file-stat \
nativesdk-perl-module-getopt-long \
nativesdk-perl-module-io-file \
+ nativesdk-perl-module-overloading \
nativesdk-perl-module-posix \
nativesdk-perl-module-thread-queue \
nativesdk-perl-module-threads \
+ nativesdk-perl-module-warnings \
+"
+
+DUMMYPROVIDES = "\
/usr/bin/perl \
"
diff --git a/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb b/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb
index b891efa5ef..1d71f373a4 100644
--- a/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb
+++ b/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb
@@ -1,10 +1,13 @@
DUMMYARCH = "sdk-provides-dummy-${SDKPKGSUFFIX}"
-# Add /bin/sh?
+DUMMYPROVIDES_PACKAGES = "\
+ pkgconfig \
+"
+
DUMMYPROVIDES = "\
+ /bin/sh \
/bin/bash \
/usr/bin/env \
- pkgconfig \
libGL.so()(64bit) \
libGL.so \
"
diff --git a/meta/recipes-core/meta/package-index.bb b/meta/recipes-core/meta/package-index.bb
index a4123b7622..98c5bcb372 100644
--- a/meta/recipes-core/meta/package-index.bb
+++ b/meta/recipes-core/meta/package-index.bb
@@ -12,6 +12,7 @@ deltask do_patch
deltask do_configure
deltask do_compile
deltask do_install
+deltask do_populate_lic
deltask do_populate_sysroot
do_package_index[nostamp] = "1"
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/target-sdk-provides-dummy.bb b/meta/recipes-core/meta/target-sdk-provides-dummy.bb
index 87b8bfab9c..e3beeb796c 100644
--- a/meta/recipes-core/meta/target-sdk-provides-dummy.bb
+++ b/meta/recipes-core/meta/target-sdk-provides-dummy.bb
@@ -48,7 +48,6 @@ DUMMYPROVIDES_PACKAGES = "\
"
DUMMYPROVIDES = "\
- ${@' '.join([multilib_pkg_extend(d, pkg) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES').split()])} \
/bin/sh \
/bin/bash \
/usr/bin/env \
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_git.bb b/meta/recipes-core/musl/libucontext_git.bb
new file mode 100644
index 0000000000..734ad9c953
--- /dev/null
+++ b/meta/recipes-core/musl/libucontext_git.bb
@@ -0,0 +1,64 @@
+# Copyright (C) 2019 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "ucontext implementation featuring glibc-compatible ABI"
+HOMEPAGE = "https://github.com/kaniini/libucontext"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6eed01fa0e673c76f5a5715438f65b1d"
+SECTION = "libs"
+DEPENDS = ""
+
+PV = "0.10+${SRCPV}"
+SRCREV = "19fa1bbfc26efb92147b5e85cc0ca02a0e837561"
+SRC_URI = "git://github.com/kaniini/libucontext \
+"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = ".*-musl.*"
+
+valid_archs = " \
+ x86 x86_64 \
+ ppc ppc64 \
+ mips mips64 \
+ arm aarch64 \
+ s390x \
+"
+
+def map_kernel_arch(a, d):
+ import re
+
+ valid_archs = d.getVar('valid_archs').split()
+
+ 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
+ bb.error("cannot map '%s' to a linux kernel architecture" % a)
+
+export ARCH = "${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
+
+CFLAGS += "-Iarch/${ARCH} -Iarch/common"
+
+EXTRA_OEMAKE = "CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' LIBDIR='${base_libdir}'"
+
+do_compile() {
+ oe_runmake ARCH=${ARCH}
+}
+
+do_install() {
+ oe_runmake ARCH="${ARCH}" DESTDIR="${D}" install
+}
diff --git a/meta/recipes-core/musl/musl.inc b/meta/recipes-core/musl/musl.inc
index 0683bf85ed..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=d0fe2be17bc45ff4a42ade1c13ed6340"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=b03f1cc25363d094011f8f4fd8bcfb68"
INHIBIT_DEFAULT_DEPS = "1"
@@ -25,3 +25,7 @@ MIPS_INSTRUCTION_SET = "mips"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv4 = "arm"
+# Enable out of tree build
+B = "${WORKDIR}/build"
+
+do_configure[cleandirs] = "${B}"
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/0001-riscv-Define-sigcontext-again.patch b/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch
deleted file mode 100644
index fcb324e15f..0000000000
--- a/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-commit a0993f8f0f161423ecdcb754f282ffd2fe47a7b5
-Author: Rich Felker <dalias@aerifal.cx>
-Date: Wed Oct 2 09:28:03 2019 -0400
-
- reintroduce riscv64 struct sigcontext
-
- commit ab3eb89a8b83353cdaab12ed017a67a7730f90e9 removed it as part of
- correcting the mcontext_t definition, but there is still code using
- struct sigcontext and expecting the member names present in it, most
- notably libgcc_eh. almost all such usage is incorrect, but bring back
- struct sigcontext at least for now so as not to introduce regressions.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-diff --git a/arch/riscv64/bits/signal.h b/arch/riscv64/bits/signal.h
-index 03fe48c1..2ff4be30 100644
---- a/arch/riscv64/bits/signal.h
-+++ b/arch/riscv64/bits/signal.h
-@@ -6,12 +6,6 @@
- # define SIGSTKSZ 8192
- #endif
-
--#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
--typedef unsigned long greg_t;
--typedef unsigned long gregset_t[32];
--typedef union __riscv_mc_fp_state fpregset_t;
--#endif
--
- typedef unsigned long __riscv_mc_gp_state[32];
-
- struct __riscv_mc_f_ext_state {
-@@ -41,6 +35,16 @@ typedef struct mcontext_t {
- union __riscv_mc_fp_state __fpregs;
- } mcontext_t;
-
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+typedef unsigned long greg_t;
-+typedef unsigned long gregset_t[32];
-+typedef union __riscv_mc_fp_state fpregset_t;
-+struct sigcontext {
-+ gregset_t gregs;
-+ fpregset_t fpregs;
-+};
-+#endif
-+
- struct sigaltstack {
- void *ss_sp;
- int ss_flags;
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 aacff79f7c..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 = "2c2477da9a553c0b9b2fa18073a5dcdbe6d395af"
+SRCREV = "a5aff1972c9e3981566414b09a28e331ccd2be5d"
-BASEVER = "1.1.23"
+BASEVER = "1.2.1"
PV = "${BASEVER}+git${SRCPV}"
@@ -15,7 +15,6 @@ PV = "${BASEVER}+git${SRCPV}"
SRC_URI = "git://git.musl-libc.org/musl \
file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
- file://0001-riscv-Define-sigcontext-again.patch \
"
S = "${WORKDIR}/git"
@@ -30,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}"
@@ -49,7 +49,7 @@ CONFIGUREOPTS = " \
--bindir=${bindir} \
--libdir=${libdir} \
--includedir=${includedir} \
- --syslibdir=${base_libdir} \
+ --syslibdir=/lib \
"
do_configure() {
@@ -62,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 5f2cc35823..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}'"
@@ -87,6 +88,7 @@ ncurses_configure() {
--disable-rpath-hack \
${EXCONFIG_ARGS} \
--with-manpage-format=normal \
+ --without-manpage-renames \
--disable-stripping \
"$@" || return 1
cd ..
@@ -271,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+20190803.bb b/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
deleted file mode 100644
index a44d78e4fe..0000000000
--- a/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
+++ /dev/null
@@ -1,11 +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 = "3c9b2677c96c645496997321bf2fe465a5e7e21f"
-S = "${WORKDIR}/git"
-EXTRA_OECONF += "--with-abi-version=5 --cache-file=${B}/config.cache"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+(\+\d+)*)"
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/netbase-add-rpcbind-as-an-alias-to-sunrpc.patch b/meta/recipes-core/netbase/netbase/netbase-add-rpcbind-as-an-alias-to-sunrpc.patch
deleted file mode 100644
index 27ba2f68a2..0000000000
--- a/meta/recipes-core/netbase/netbase/netbase-add-rpcbind-as-an-alias-to-sunrpc.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 52d46c4d1fbd4c88d69c2fcf7837b2f2ba7ef6f2 Mon Sep 17 00:00:00 2001
-From: "Maxin B. John" <maxin.john@intel.com>
-Date: Thu, 12 Jan 2017 16:50:58 +0200
-Subject: [PATCH] netbase: add rpcbind as an alias to sunrpc
-
-the patch comes from:
-https://bugs.archlinux.org/task/20273
-
-Upstream-Status: Pending
-
-Signed-off-by: Li Wang <li.wang@windriver.com>
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
-
----
- etc-rpc | 2 +-
- etc-services | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/etc-rpc b/etc-rpc
-index 1b30625..9a9a81a 100644
---- a/etc-rpc
-+++ b/etc-rpc
-@@ -1,7 +1,7 @@
- # This file contains user readable names that can be used in place of rpc
- # program numbers.
-
--portmapper 100000 portmap sunrpc
-+portmapper 100000 portmap sunrpc rpcbind
- rstatd 100001 rstat rstat_svc rup perfmeter
- rusersd 100002 rusers
- nfs 100003 nfsprog
-diff --git a/etc-services b/etc-services
-index fa7ae24..10ba2bc 100644
---- a/etc-services
-+++ b/etc-services
-@@ -51,8 +51,8 @@ kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5
- iso-tsap 102/tcp tsap # part of ISODE
- acr-nema 104/tcp dicom # Digital Imag. & Comm. 300
- pop3 110/tcp pop-3 # POP version 3
--sunrpc 111/tcp portmapper # RPC 4.0 portmapper
--sunrpc 111/udp portmapper
-+sunrpc 111/tcp portmapper rpcbind # RPC 4.0 portmapper
-+sunrpc 111/udp portmapper rpcbind
- auth 113/tcp authentication tap ident
- sftp 115/tcp
- nntp 119/tcp readnews untp # USENET News Transfer Protocol
diff --git a/meta/recipes-core/netbase/netbase_5.6.bb b/meta/recipes-core/netbase/netbase_6.1.bb
index 2aa49711cc..bc0049c020 100644
--- a/meta/recipes-core/netbase/netbase_5.6.bb
+++ b/meta/recipes-core/netbase/netbase_6.1.bb
@@ -6,16 +6,15 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
PE = "1"
-SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.tar.xz \
- file://netbase-add-rpcbind-as-an-alias-to-sunrpc.patch"
+SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.tar.xz"
-SRC_URI[md5sum] = "7ad156272c5a42f49c73386ff39c8624"
-SRC_URI[sha256sum] = "5d93a099deb28869b7306e914700fafbd293b55bdb5df05a5aa6effd0af5930c"
+SRC_URI[md5sum] = "e5871a3a5c8390557b8033cf19316a55"
+SRC_URI[sha256sum] = "084d743bd84d4d9380bac4c71c51e57406dce44f5a69289bb823c903e9b035d8"
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netbase/"
do_install () {
install -d ${D}/${mandir}/man8 ${D}${sysconfdir}
- install -m 0644 etc-rpc ${D}${sysconfdir}/rpc
- install -m 0644 etc-protocols ${D}${sysconfdir}/protocols
- install -m 0644 etc-services ${D}${sysconfdir}/services
+ install -m 0644 ${S}/etc/rpc ${D}${sysconfdir}/rpc
+ install -m 0644 ${S}/etc/protocols ${D}${sysconfdir}/protocols
+ install -m 0644 ${S}/etc/services ${D}${sysconfdir}/services
}
diff --git a/meta/recipes-core/newlib/libgloss_3.1.0.bb b/meta/recipes-core/newlib/libgloss_3.3.0.bb
index c9ed30d988..c9ed30d988 100644
--- a/meta/recipes-core/newlib/libgloss_3.1.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 2f0553bd63..96e230f985 100644
--- a/meta/recipes-core/newlib/newlib.inc
+++ b/meta/recipes-core/newlib/newlib.inc
@@ -3,21 +3,20 @@ HOMEPAGE = "https://sourceware.org/newlib/"
DESCRIPTION = "C library intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products."
SECTION = "libs"
-LICENSE = "GPLv2 & LGPLv3 & GPLv3 & LGPLv2 & BSD-2-Clause"
+LICENSE = "GPLv2 & LGPLv3 & GPLv3 & LGPLv2 & BSD-2-Clause & tcl"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LIBGLOSS;md5=73f5c98779aea7dba4a6c94a74ab0ae2 \
+ file://COPYING.LIBGLOSS;md5=54b778d585443cd7fbfa1b47cbd63a89 \
file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://COPYING.NEWLIB;md5=100d470af54e2d1d79fbd8498a32ff26 \
+ file://COPYING.NEWLIB;md5=ac17c68751aad7a5298ce3f249121070 \
file://newlib/libc/posix/COPYRIGHT;md5=103468ff1982be840fdf4ee9f8b51bbf \
file://newlib/libc/sys/linux/linuxthreads/LICENSE;md5=73640207fbc79b198c7ffd4ad4d97aa0 \
"
SRC_URI = "https://sourceware.org/pub/newlib/newlib-${PV}.tar.gz"
-SRC_URI[md5sum] = "f84263b7d524df92a9c9fb30b79e0134"
-SRC_URI[sha256sum] = "fb4fa1cc21e9060719208300a61420e4089d6de6ef59cf533b57fe74801d102a"
+SRC_URI[sha256sum] = "58dd9e3eaedf519360d92d84205c3deef0b3fc286685d1c562e245914ef72c66"
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = "virtual/${TARGET_PREFIX}gcc"
@@ -42,6 +41,7 @@ EXTRA_OECONF = " \
--with-gnu-as \
--with-gnu-ld \
--disable-multilib \
+ --disable-newlib-supplied-syscalls \
"
do_configure[cleandirs] = "${B}"
diff --git a/meta/recipes-core/newlib/newlib_3.1.0.bb b/meta/recipes-core/newlib/newlib_3.3.0.bb
index 7ab5b2b94e..7ab5b2b94e 100644
--- a/meta/recipes-core/newlib/newlib_3.1.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/no-stack-protector-all-archs.patch b/meta/recipes-core/ovmf/ovmf/0001-ovmf-Update-to-latest.patch
index 1b65348e84..1d4273cdc1 100644
--- a/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch
+++ b/meta/recipes-core/ovmf/ovmf/0001-ovmf-Update-to-latest.patch
@@ -1,17 +1,26 @@
-Author: Steve Langasek <steve.langasek@ubuntu.com>
+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 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
when building for i386 and amd64. Add this essential argument to the
generic rules for gcc 4.4 and later.
Last-Updated: 2016-04-12
Upstream-Status: Pending
-Index: git/BaseTools/Conf/tools_def.template
-===================================================================
---- git.orig/BaseTools/Conf/tools_def.template
-+++ git/BaseTools/Conf/tools_def.template
-@@ -1736,10 +1736,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
+
+---
+ BaseTools/Conf/tools_def.template | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
+index 2b17d3b297..4cd2567c2a 100755
+--- a/BaseTools/Conf/tools_def.template
++++ b/BaseTools/Conf/tools_def.template
+@@ -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
@@ -23,7 +32,7 @@ Index: git/BaseTools/Conf/tools_def.template
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)
-@@ -1748,7 +1748,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
@@ -32,3 +41,6 @@ Index: git/BaseTools/Conf/tools_def.template
DEFINE GCC48_ARM_CC_XIPFLAGS = DEF(GCC_ARM_CC_XIPFLAGS)
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.24.0
+
diff --git a/meta/recipes-core/ovmf/ovmf/0002-ovmf-update-path-to-native-BaseTools.patch b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
index 94ae5d4496..6ecb23b29f 100644
--- a/meta/recipes-core/ovmf/ovmf/0002-ovmf-update-path-to-native-BaseTools.patch
+++ b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
@@ -1,7 +1,7 @@
-From 9e632e3f9edd09632cc877dff6ea57608f979aab Mon Sep 17 00:00:00 2001
+From 0a8362cfb9f00870d70687475665b131dd82c947 Mon Sep 17 00:00:00 2001
From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Date: Thu, 9 Jun 2016 02:23:01 -0700
-Subject: [PATCH] ovmf: update path to native BaseTools
+Subject: [PATCH 1/5] ovmf: update path to native BaseTools
BaseTools is a set of utilities to build EDK-based firmware. These utilities
are used during the build process. Thus, they need to be built natively.
@@ -11,15 +11,16 @@ with the appropriate location before building.
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Upstream-Status: Pending
+
---
OvmfPkg/build.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh
-index eb5eb73..9058fca 100755
+index 91b1442ade..1858dae31a 100755
--- a/OvmfPkg/build.sh
+++ b/OvmfPkg/build.sh
-@@ -30,7 +30,7 @@ then
+@@ -24,7 +24,7 @@ then
# this assumes svn pulls have the same root dir
# export EDK_TOOLS_PATH=`pwd`/../BaseTools
# This version is for the tools source in edk2
@@ -29,5 +30,5 @@ index eb5eb73..9058fca 100755
source edksetup.sh BaseTools
else
--
-2.8.1
+2.17.1
diff --git a/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
index 070b0ac5a6..f37ed018ab 100644
--- a/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
+++ b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
@@ -1,25 +1,26 @@
-From 2320650c6d381b914fe91b2dedaa5870279a8bcf Mon Sep 17 00:00:00 2001
+From a8bceaec1b16fffbf6810df05503d8ae9092b735 Mon Sep 17 00:00:00 2001
From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Date: Fri, 26 Jul 2019 17:34:26 -0400
-Subject: [PATCH] BaseTools: makefile: adjust to build in under bitbake
+Subject: [PATCH 2/5] BaseTools: makefile: adjust to build in under bitbake
Prepend the build flags with those of bitbake. This is to build
using the bitbake native sysroot include and library directories.
Signed-off-by: Ricardo Neri <ricardo.neri@linux.intel.com>
Upstream-Status: Pending
+
---
BaseTools/Source/C/Makefiles/header.makefile | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
-Index: git/BaseTools/Source/C/Makefiles/header.makefile
-===================================================================
---- git.orig/BaseTools/Source/C/Makefiles/header.makefile
-+++ git/BaseTools/Source/C/Makefiles/header.makefile
+diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
+index 4e9b36d98b..eb03ee33fa 100644
+--- a/BaseTools/Source/C/Makefiles/header.makefile
++++ b/BaseTools/Source/C/Makefiles/header.makefile
@@ -62,23 +62,23 @@ $(error Bad HOST_ARCH)
endif
- INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)
+ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)
-BUILD_CPPFLAGS = $(INCLUDE)
+BUILD_CPPFLAGS += $(INCLUDE)
@@ -46,5 +47,5 @@ Index: git/BaseTools/Source/C/Makefiles/header.makefile
ifeq ($(HOST_ARCH), IA32)
#
--
-2.20.1
+2.17.1
diff --git a/meta/recipes-core/ovmf/ovmf/0004-ovmf-enable-long-path-file.patch b/meta/recipes-core/ovmf/ovmf/0003-ovmf-enable-long-path-file.patch
index d954fbe314..ab1e7db31f 100644
--- a/meta/recipes-core/ovmf/ovmf/0004-ovmf-enable-long-path-file.patch
+++ b/meta/recipes-core/ovmf/ovmf/0003-ovmf-enable-long-path-file.patch
@@ -1,18 +1,28 @@
-From 032fc6b1f7691bd537fd2a6bd13821fcf3c45e64 Mon Sep 17 00:00:00 2001
+From 60a5f953f747e1e9e05a40157b651cba8ea57b91 Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@windriver.com>
Date: Mon, 11 Sep 2017 02:21:55 -0400
-Subject: [PATCH] ovmf: enable long path file
+Subject: [PATCH 3/5] ovmf: enable long path file
Upstream-Status: Pending
Signed-off-by: Dengke Du <dengke.du@windriver.com>
+
---
BaseTools/Source/C/Common/CommonLib.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BaseTools/Source/C/Common/CommonLib.h b/BaseTools/Source/C/Common/CommonLib.h
-index 2041b89e2d..8116aa2e35 100644
+index e1cce985f7..d67d03c70c 100644
--- a/BaseTools/Source/C/Common/CommonLib.h
+++ b/BaseTools/Source/C/Common/CommonLib.h
-@@ -22 +22 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
+ #include <assert.h>
+ #define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination
+
-#define MAX_LONG_FILE_PATH 500
+#define MAX_LONG_FILE_PATH 1023
+
+ #define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFFULL)
+ #define MAX_UINT32 ((UINT32)0xFFFFFFFF)
+--
+2.17.1
+
diff --git a/meta/recipes-core/ovmf/ovmf/VfrCompile-increase-path-length-limit.patch b/meta/recipes-core/ovmf/ovmf/VfrCompile-increase-path-length-limit.patch
deleted file mode 100644
index bb12d8beba..0000000000
--- a/meta/recipes-core/ovmf/ovmf/VfrCompile-increase-path-length-limit.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From c7722d10c7bcf6be0adcf54abb1d406599dd7914 Mon Sep 17 00:00:00 2001
-From: Patrick Ohly <patrick.ohly@intel.com>
-Date: Fri, 24 Feb 2017 01:40:02 +0100
-Subject: [PATCH] VfrCompile: increase path length limit
-
-The VfrCompile tool has a hard-coded maximum length for path names
-which turned out to be too small by around 20 characters in the Yocto
-autobuilder setup. Increasing the maximum by a factor of 4 is
-relatively easy and makes the problem less likely.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
----
- BaseTools/Source/C/VfrCompile/EfiVfr.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/BaseTools/Source/C/VfrCompile/EfiVfr.h b/BaseTools/Source/C/VfrCompile/EfiVfr.h
-index d187902..9ad4a7b 100644
---- a/BaseTools/Source/C/VfrCompile/EfiVfr.h
-+++ b/BaseTools/Source/C/VfrCompile/EfiVfr.h
-@@ -19,7 +19,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
- #include "Common/UefiInternalFormRepresentation.h"
- #include "Common/MdeModuleHii.h"
-
--#define MAX_PATH 255
-+#define MAX_PATH 1023
- #define MAX_VFR_LINE_LEN 4096
-
- #define EFI_IFR_MAX_LENGTH 0xFF
---
-2.1.4
-
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index b569b593fc..84547630e8 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -2,7 +2,7 @@ SUMMARY = "OVMF - UEFI firmware for Qemu and KVM"
DESCRIPTION = "OVMF is an EDK II based project to enable UEFI support for \
Virtual Machines. OVMF contains sample UEFI firmware for QEMU and KVM"
HOMEPAGE = "https://github.com/tianocore/tianocore.github.io/wiki/OVMF"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LICENSE_class-target = "${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'BSD & OpenSSL', 'BSD', d)}"
LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=06357ddc23f46577c2aeaeaf7b776d65"
@@ -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 \
- file://0002-ovmf-update-path-to-native-BaseTools.patch \
- file://0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
- file://0004-ovmf-enable-long-path-file.patch \
- file://no-stack-protector-all-archs.patch \
+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://0001-ovmf-Update-to-latest.patch \
"
-PV = "edk2-stable201905"
-SRCREV="20d2e5a125e34fc8501026613a71549b2a1a3e54"
+PV = "edk2-stable202005"
+SRCREV = "ca407c7246bf405da6d9b1b9d93e5e7f17b4b1f9"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
inherit deploy
@@ -29,10 +29,7 @@ PARALLEL_MAKE = ""
S = "${WORKDIR}/git"
-DEPENDS_class-native="util-linux-native iasl-native"
-DEPENDS_class-target="ovmf-native bc-native"
-
-DEPENDS_append = " nasm-native"
+DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native"
EDK_TOOLS_DIR="edk2_basetools"
@@ -40,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".
@@ -223,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-sdk.bb b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
index 8854ec4801..03fa5296c1 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
@@ -16,7 +16,6 @@ RDEPENDS_packagegroup-core-sdk = "\
coreutils \
ccache \
diffutils \
- intltool \
perl-module-re \
perl-module-text-wrap \
findutils \
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 3fd423c592..d437e28311 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -10,7 +10,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
-PROFILE_TOOLS_X = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'sysprof', '', d)}"
+PROFILE_TOOLS_X = ""
# sysprof doesn't support aarch64 and nios2
PROFILE_TOOLS_X_aarch64 = ""
PROFILE_TOOLS_X_nios2 = ""
@@ -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/packagegroups/packagegroup-self-hosted.bb b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index ee9d0636f2..9a70b189a4 100644
--- a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -8,7 +8,7 @@ PR = "r13"
PACKAGE_ARCH = "${TUNE_PKGARCH}"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on libx11-dev
REQUIRED_DISTRO_FEATURES = "x11"
@@ -75,7 +75,6 @@ RDEPENDS_packagegroup-self-hosted-sdk = "\
g++-symlinks \
gcc \
gcc-symlinks \
- intltool \
ldd \
less \
libstdc++ \
@@ -109,7 +108,6 @@ RDEPENDS_packagegroup-self-hosted-debug = " \
RDEPENDS_packagegroup-self-hosted-extended = "\
bzip2 \
- chkconfig \
chrpath \
cpio \
curl \
@@ -153,8 +151,6 @@ RDEPENDS_packagegroup-self-hosted-extended = "\
perl-misc \
perl-modules \
perl-pod \
- python \
- python-modules \
python3 \
python3-modules \
python3-git \
@@ -168,7 +164,6 @@ RDEPENDS_packagegroup-self-hosted-extended = "\
sysstat \
tar \
tcl \
- texi2html \
texinfo \
unzip \
usbutils \
diff --git a/meta/recipes-core/psplash/files/psplash-init b/meta/recipes-core/psplash/files/psplash-init
index dcb751907f..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_243.bb b/meta/recipes-core/systemd/systemd-boot_246.2.bb
index 515abc289b..f92c639810 100644
--- a/meta/recipes-core/systemd/systemd-boot_243.bb
+++ b/meta/recipes-core/systemd/systemd-boot_246.2.bb
@@ -5,27 +5,27 @@ require conf/image-uefi.conf
DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native"
-# NOTE: These three patches are in theory not needed, but we haven't
-# figured out how to correctly pass efi-cc parameter if it's an array.
-SRC_URI += "file://0001-Revert-meson-use-an-array-option-for-efi-cc.patch \
- file://0001-Revert-meson-print-EFI-CC-configuration-nicely.patch \
- file://0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch \
- file://0001-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch \
- "
-
inherit meson pkgconfig gettext
inherit deploy
-EFI_CC ?= "${CC}"
+LDFLAGS_prepend = "${@ " ".join(d.getVar('LD').split()[1:])} "
+
+do_write_config[vardeps] += "CC OBJCOPY"
+do_write_config_append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+efi_cc = ${@meson_array('CC', d)}
+objcopy = ${@meson_array('OBJCOPY', d)}
+EOF
+}
+
EXTRA_OEMESON += "-Defi=true \
-Dgnu-efi=true \
-Defi-includedir=${STAGING_INCDIR}/efi \
- -Defi-ldsdir=${STAGING_LIBDIR} \
-Defi-libdir=${STAGING_LIBDIR} \
+ -Defi-ld=${@ d.getVar('LD').split()[0]} \
-Dman=false \
- -Defi-cc='${EFI_CC}' \
- -Defi-ld='${LD}' \
- -Defi-objcopy='${OBJCOPY}' \
+ --cross-file ${WORKDIR}/meson-${PN}.cross \
"
# install to the image as boot*.efi if its the EFI_PROVIDER,
diff --git a/meta/recipes-core/systemd/systemd-compat-units.bb b/meta/recipes-core/systemd/systemd-compat-units.bb
index d228a51c19..361dc1cbb4 100644
--- a/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -8,7 +8,9 @@ PACKAGE_WRITE_DEPS += "systemd-systemctl-native"
S = "${WORKDIR}"
-inherit distro_features_check
+inherit features_check
+
+INHIBIT_DEFAULT_DEPS = "1"
ALLOW_EMPTY_${PN} = "1"
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_243.bb b/meta/recipes-core/systemd/systemd-conf_246.1.bb
index d9ec023bfd..d9ec023bfd 100644
--- a/meta/recipes-core/systemd/systemd-conf_243.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 65a931f418..0cc0dc8c79 100644
--- a/meta/recipes-core/systemd/systemd-serialgetty.bb
+++ b/meta/recipes-core/systemd/systemd-serialgetty.bb
@@ -12,7 +12,7 @@ SRC_URI = "file://serial-getty@.service"
S = "${WORKDIR}"
# As this package is tied to systemd, only build it when we're also building systemd.
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "systemd"
do_install() {
@@ -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-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl
index ebac863739..990de1ab39 100755
--- a/meta/recipes-core/systemd/systemd-systemctl/systemctl
+++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl
@@ -172,7 +172,7 @@ class SystemdUnit():
def _path_for_unit(self, unit):
for location in locations:
path = self.root / location / "system" / unit
- if path.exists():
+ if path.exists() or path.is_symlink():
return path
raise SystemdUnitNotFoundError(self.root, unit)
diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc
index 7f3a59c208..1733565fc0 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -14,10 +14,8 @@ LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
-SRCREV = "efb536d0cbe2e58f80e501d19999928c75e08f6a"
-SRCBRANCH = "v243-stable"
+SRCREV = "2ee1c57c4ff4fd3349cf03c2e89fbd18ca0b3a4a"
+SRCBRANCH = "v246-stable"
SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
S = "${WORKDIR}/git"
-
-PV_append = "+${SRCPV}"
diff --git a/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch b/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch
deleted file mode 100644
index e2e19ba068..0000000000
--- a/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 527413ec243564a89ffaad6368d446de44415970 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Tue, 27 Feb 2018 21:42:23 -0800
-Subject: [PATCH] Fix to run efi_cc and efi_ld correctly when cross-compiling
-
-When cross-compiling, efi_cc and efi_ld may take the form of
-'xxx-gcc --sysroot=xxx', and this would cause run_command and
-the alike fail.
-
-Fix to split them to make commands run correctly.
-
-Upstream-Status: Pending
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/boot/efi/meson.build | 16 +++++++++++++---
- 1 file changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
-index 992a3ba4c..9f9ec4911 100644
---- a/src/boot/efi/meson.build
-+++ b/src/boot/efi/meson.build
-@@ -157,7 +157,7 @@ if have_gnu_efi
- o_file = custom_target(file + '.o',
- input : file,
- output : file + '.o',
-- command : [efi_cc, '-c', '@INPUT@', '-o', '@OUTPUT@']
-+ command : efi_cc.split() + ['-c', '@INPUT@', '-o', '@OUTPUT@']
- + compile_args,
- depend_files : efi_headers)
- if (common_sources + systemd_boot_sources).contains(file)
-@@ -168,7 +168,17 @@ if have_gnu_efi
- endif
- endforeach
-
-- libgcc_file_name = run_command(efi_cc, '-print-libgcc-file-name').stdout().strip()
-+ find_libgcc_cmd_all = efi_cc + ' -print-libgcc-file-name'
-+ find_libgcc_cmd = find_libgcc_cmd_all.split()[0]
-+ find_libgcc_args = []
-+ cmd_args_all = find_libgcc_cmd_all.split()
-+ foreach arg : cmd_args_all
-+ if arg != find_libgcc_cmd
-+ find_libgcc_args += arg
-+ endif
-+ endforeach
-+
-+ libgcc_file_name = run_command(find_libgcc_cmd, find_libgcc_args).stdout().strip()
- systemd_boot_efi_name = 'systemd-boot@0@.efi'.format(EFI_MACHINE_TYPE_NAME)
- stub_efi_name = 'linux@0@.efi.stub'.format(EFI_MACHINE_TYPE_NAME)
- no_undefined_symbols = find_program('no-undefined-symbols.sh')
-@@ -179,7 +189,7 @@ if have_gnu_efi
- tuple[0],
- input : tuple[2],
- output : tuple[0],
-- command : [efi_ld, '-o', '@OUTPUT@'] +
-+ command : efi_ld.split() + ['-o', '@OUTPUT@'] +
- efi_ldflags + tuple[2] +
- ['-lefi', '-lgnuefi', libgcc_file_name])
-
---
-2.13.0
-
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-Revert-meson-print-EFI-CC-configuration-nicely.patch b/meta/recipes-core/systemd/systemd/0001-Revert-meson-print-EFI-CC-configuration-nicely.patch
deleted file mode 100644
index ed14e25bce..0000000000
--- a/meta/recipes-core/systemd/systemd/0001-Revert-meson-print-EFI-CC-configuration-nicely.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 0bf530aac152630500939db31f98d933158fdabd Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Tue, 26 Feb 2019 14:27:49 +0800
-Subject: [PATCH] Revert "meson: print EFI CC configuration nicely"
-
-This reverts commit c512dfb9ac948ddb1ced0dab07b9dac88b198293.
-
-This patch is here because we haven't figured out how to pass
-parameter to efi-cc if it's an array in systemd-boot recipe.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 70fb218..30df834 100644
---- a/meson.build
-+++ b/meson.build
-@@ -3138,7 +3138,7 @@ if conf.get('ENABLE_EFI') == 1
- if have_gnu_efi
- status += [
- 'EFI machine type: @0@'.format(EFI_MACHINE_TYPE_NAME),
-- 'EFI CC @0@'.format(' '.join(efi_cc)),
-+ 'EFI CC @0@'.format(efi_cc),
- 'EFI lib directory: @0@'.format(efi_libdir),
- 'EFI lds directory: @0@'.format(efi_ldsdir),
- 'EFI include directory: @0@'.format(efi_incdir)]
---
-2.7.4
-
diff --git a/meta/recipes-core/systemd/systemd/0001-Revert-meson-use-an-array-option-for-efi-cc.patch b/meta/recipes-core/systemd/systemd/0001-Revert-meson-use-an-array-option-for-efi-cc.patch
deleted file mode 100644
index 0d2ebf62bd..0000000000
--- a/meta/recipes-core/systemd/systemd/0001-Revert-meson-use-an-array-option-for-efi-cc.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 0030dcbac1a9177ef7a28af209ac67149b899f5f Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Tue, 26 Feb 2019 14:17:25 +0800
-Subject: [PATCH] Revert "meson: use an array option for efi-cc"
-
-This reverts commit 595343fb4c99c2679d347ef7c19debfbfed6342e.
-
-This patch is here because we haven't figured out how to pass
-parameter to efi-cc if it's an array in systemd-boot recipe.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- meson_options.txt | 2 +-
- src/boot/efi/meson.build | 11 ++++++-----
- 2 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/meson_options.txt b/meson_options.txt
-index 044bb79..3d28bfd 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -292,7 +292,7 @@ option('dbus', type : 'combo', choices : ['auto', 'true', 'false'],
-
- option('gnu-efi', type : 'combo', choices : ['auto', 'true', 'false'],
- description : 'gnu-efi support for sd-boot')
--option('efi-cc', type : 'array',
-+option('efi-cc', type : 'string',
- description : 'the compiler to use for EFI modules')
- option('efi-ld', type : 'string',
- description : 'the linker to use for EFI modules')
-diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
-index 2140151..d8db3a1 100644
---- a/src/boot/efi/meson.build
-+++ b/src/boot/efi/meson.build
-@@ -34,8 +34,8 @@ stub_sources = '''
-
- if conf.get('ENABLE_EFI') == 1 and get_option('gnu-efi') != 'false'
- efi_cc = get_option('efi-cc')
-- if efi_cc.length() == 0
-- efi_cc = cc.cmd_array()
-+ if efi_cc == ''
-+ efi_cc = ' '.join(cc.cmd_array())
- endif
- efi_ld = get_option('efi-ld')
- if efi_ld == ''
-@@ -57,7 +57,8 @@ if conf.get('ENABLE_EFI') == 1 and get_option('gnu-efi') != 'false'
-
- efi_libdir = get_option('efi-libdir')
- if efi_libdir == ''
-- ret = run_command(efi_cc + ['-print-multi-os-directory'])
-+ cmd = 'cd /usr/lib/$(@0@ -print-multi-os-directory) && pwd'.format(efi_cc)
-+ ret = run_command('sh', '-c', cmd)
- if ret.returncode() == 0
- path = join_paths('/usr/lib', ret.stdout().strip())
- ret = run_command('realpath', '-e', path)
-@@ -152,7 +153,7 @@ if have_gnu_efi
- o_file = custom_target(file + '.o',
- input : file,
- output : file + '.o',
-- command : efi_cc + ['-c', '@INPUT@', '-o', '@OUTPUT@']
-+ command : [efi_cc, '-c', '@INPUT@', '-o', '@OUTPUT@']
- + compile_args,
- depend_files : efi_headers)
- if (common_sources + systemd_boot_sources).contains(file)
-@@ -163,7 +164,7 @@ if have_gnu_efi
- endif
- endforeach
-
-- libgcc_file_name = run_command(efi_cc + ['-print-libgcc-file-name']).stdout().strip()
-+ libgcc_file_name = run_command(efi_cc, '-print-libgcc-file-name').stdout().strip()
- systemd_boot_efi_name = 'systemd-boot@0@.efi'.format(EFI_MACHINE_TYPE_NAME)
- stub_efi_name = 'linux@0@.efi.stub'.format(EFI_MACHINE_TYPE_NAME)
- no_undefined_symbols = find_program('no-undefined-symbols.sh')
---
-2.7.4
-
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 73e65ff798..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,8 +1,8 @@
-From 98254e4798e79d52ac6b562616cd244120f6e239 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 1/5] binfmt: Don't install dependency links at install time
- for the binfmt services
+Subject: [PATCH] binfmt: Don't install dependency links at install time for
+ the binfmt services
use [Install] blocks so that they get created when the service is enabled
like a traditional service.
@@ -18,40 +18,41 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
---
units/meson.build | 6 ++----
units/proc-sys-fs-binfmt_misc.automount | 3 +++
units/systemd-binfmt.service.in | 4 ++++
3 files changed, 9 insertions(+), 4 deletions(-)
-diff --git a/units/meson.build b/units/meson.build
-index e1ee9f86c3..6bb7771b36 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 30a6bc9918..4231f3b70f 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]
@@ -59,21 +60,21 @@ index 30a6bc9918..4231f3b70f 100644
+
+[Install]
+WantedBy=sysinit.target
-diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
-index e940c7c9ad..6be7f5cc9b 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
+Wants=proc-sys-fs-binfmt_misc.automount
After=proc-sys-fs-binfmt_misc.automount
+ After=proc-sys-fs-binfmt_misc.mount
Before=sysinit.target shutdown.target
- ConditionPathIsReadWrite=/proc/sys/
-@@ -28,3 +29,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 2f4daf8665..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 85e3c3046562ec24fc2f09ebfd08bf9f168091d5 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
@@ -18,8 +18,9 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
---
- src/basic/cgroup-util.c | 14 +++++++-------
+ src/basic/cgroup-util.c | 10 +++++-----
src/basic/procfs-util.c | 4 ++--
src/basic/smack-util.c | 2 +-
src/basic/util.c | 2 +-
@@ -31,27 +32,19 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/login/logind-dbus.c | 2 +-
src/nspawn/nspawn-cgroup.c | 2 +-
src/nspawn/nspawn.c | 6 +++---
+ src/shared/cgroup-setup.c | 4 ++--
src/shared/sysctl-util.c | 2 +-
- src/sleep/sleep.c | 10 +++++-----
+ src/sleep/sleep.c | 8 ++++----
src/udev/udevadm-trigger.c | 2 +-
src/udev/udevd.c | 2 +-
src/vconsole/vconsole-setup.c | 2 +-
- 17 files changed, 36 insertions(+), 36 deletions(-)
+ 18 files changed, 35 insertions(+), 35 deletions(-)
-diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
-index 7b5839ccd6..18f6e8ffc8 100644
---- a/src/basic/cgroup-util.c
-+++ b/src/basic/cgroup-util.c
-@@ -860,7 +860,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
-
- xsprintf(c, PID_FMT "\n", pid);
-
-- r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(fs, c, 0);
- if (r < 0)
- return r;
-
-@@ -1142,7 +1142,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)) {
@@ -60,7 +53,7 @@ index 7b5839ccd6..18f6e8ffc8 100644
if (r < 0)
return r;
} else if (!path_equal(sc, agent))
-@@ -1160,7 +1160,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")) {
@@ -69,7 +62,7 @@ index 7b5839ccd6..18f6e8ffc8 100644
if (r < 0)
return r;
-@@ -1187,7 +1187,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;
@@ -78,7 +71,7 @@ index 7b5839ccd6..18f6e8ffc8 100644
if (r < 0)
return r;
-@@ -1197,7 +1197,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;
@@ -87,7 +80,7 @@ index 7b5839ccd6..18f6e8ffc8 100644
if (r < 0)
return r;
-@@ -2053,7 +2053,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;
@@ -96,20 +89,11 @@ index 7b5839ccd6..18f6e8ffc8 100644
}
int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
-@@ -2697,7 +2697,7 @@ int cg_enable_everywhere(
- return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
- }
-
-- r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_stream(f, s, 0);
- 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/basic/procfs-util.c b/src/basic/procfs-util.c
-index 42ce53d5aa..57512532a6 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 */
@@ -125,11 +109,11 @@ index 42ce53d5aa..57512532a6 100644
if (r < 0) {
uint64_t threads_max;
-diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c
-index 123d00e13e..e7ea78f349 100644
---- a/src/basic/smack-util.c
-+++ b/src/basic/smack-util.c
-@@ -115,7 +115,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");
@@ -138,11 +122,11 @@ index 123d00e13e..e7ea78f349 100644
if (r < 0)
return r;
-diff --git a/src/basic/util.c b/src/basic/util.c
-index 93d610bc98..97dca64f73 100644
---- a/src/basic/util.c
-+++ b/src/basic/util.c
-@@ -294,7 +294,7 @@ void disable_coredumps(void) {
+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;
@@ -151,11 +135,11 @@ index 93d610bc98..97dca64f73 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 aa9d811f2e..8c7f2dae7a 100644
---- a/src/binfmt/binfmt.c
-+++ b/src/binfmt/binfmt.c
-@@ -48,7 +48,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();
@@ -164,7 +148,7 @@ index aa9d811f2e..8c7f2dae7a 100644
}
static int apply_rule(const char *rule) {
-@@ -56,7 +56,7 @@ static int apply_rule(const char *rule) {
+@@ -56,7 +56,7 @@ static int apply_rule(const char *rule)
(void) delete_rule(rule);
@@ -173,7 +157,7 @@ index aa9d811f2e..8c7f2dae7a 100644
if (r < 0)
return log_error_errno(r, "Failed to add binary format: %m");
-@@ -213,7 +213,7 @@ static int run(int argc, char *argv[]) {
+@@ -223,7 +223,7 @@ static int run(int argc, char *argv[]) {
}
/* Flush out all rules */
@@ -182,11 +166,11 @@ index aa9d811f2e..8c7f2dae7a 100644
STRV_FOREACH(f, files) {
k = apply_file(*f, true);
-diff --git a/src/core/main.c b/src/core/main.c
-index bcce7178a8..4199cedab9 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -1285,7 +1285,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;
@@ -195,7 +179,7 @@ index bcce7178a8..4199cedab9 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");
-@@ -1509,7 +1509,7 @@ static void initialize_core_pattern(bool skip_setup) {
+@@ -1668,7 +1668,7 @@ static void initialize_core_pattern(bool
if (getpid_cached() != 1)
return;
@@ -204,11 +188,11 @@ index bcce7178a8..4199cedab9 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 b95e6239d4..fdbdaaaccb 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
@@ -230,10 +214,10 @@ index b95e6239d4..fdbdaaaccb 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 17e7cd1a00..87a7667716 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;
}
@@ -243,11 +227,11 @@ index 17e7cd1a00..87a7667716 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 c4a7f2f3d3..bcac758284 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;
@@ -256,11 +240,11 @@ index c4a7f2f3d3..bcac758284 100644
if (r < 0) {
if (r == -ELOOP)
return -EINVAL;
-diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
-index 30b9a66334..cc1d577933 100644
---- a/src/login/logind-dbus.c
-+++ b/src/login/logind-dbus.c
-@@ -1325,7 +1325,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;
@@ -269,11 +253,11 @@ index 30b9a66334..cc1d577933 100644
}
return 0;
-diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
-index 0462b46413..7c53d41483 100644
---- a/src/nspawn/nspawn-cgroup.c
-+++ b/src/nspawn/nspawn-cgroup.c
-@@ -123,7 +123,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);
@@ -282,11 +266,11 @@ index 0462b46413..7c53d41483 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 2aec8041f0..841542f2f3 100644
---- a/src/nspawn/nspawn.c
-+++ b/src/nspawn/nspawn.c
-@@ -2357,7 +2357,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;
@@ -295,7 +279,7 @@ index 2aec8041f0..841542f2f3 100644
if (r < 0) {
log_error_errno(r,
"Failed to reset audit login UID. This probably means that your kernel is too\n"
-@@ -3566,13 +3566,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);
@@ -311,11 +295,33 @@ index 2aec8041f0..841542f2f3 100644
if (r < 0)
return log_error_errno(r, "Failed to write GID map: %m");
-diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c
-index 93bdcf11bf..68cddb7a9f 100644
---- a/src/shared/sysctl-util.c
-+++ b/src/shared/sysctl-util.c
-@@ -88,7 +88,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
+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);
+
+- r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(fs, c, 0);
+ if (r < 0)
+ return r;
+
+@@ -817,7 +817,7 @@ int cg_enable_everywhere(
+ return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
+ }
+
+- r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_stream(f, s, 0);
+ 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);
+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);
@@ -324,37 +330,29 @@ index 93bdcf11bf..68cddb7a9f 100644
}
int sysctl_read(const char *property, char **content) {
-diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index b9fe96635d..f168d7f890 100644
---- a/src/sleep/sleep.c
-+++ b/src/sleep/sleep.c
-@@ -54,7 +54,7 @@ static int write_hibernate_location_info(void) {
-
- /* if it's a swap partition, we just write the disk to /sys/power/resume */
- if (streq(type, "partition")) {
-- r = write_string_file("/sys/power/resume", device, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/power/resume", device, 0);
- if (r < 0)
- return log_debug_errno(r, "Failed to write partition device to /sys/power/resume: %m");
-
-@@ -98,14 +98,14 @@ static int write_hibernate_location_info(void) {
+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);
+
+ 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, resume_str);
+@@ -75,7 +75,7 @@ static int write_hibernate_location_info
+ }
- offset = fiemap->fm_extents[0].fe_physical / page_size();
- xsprintf(offset_str, "%" PRIu64, 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 offset '%s': %m", offset_str);
-
- log_debug("Wrote calculated resume_offset value to /sys/power/resume_offset: %s", offset_str);
-
- xsprintf(device_str, "%lx", (unsigned long)stb.st_dev);
-- r = write_string_file("/sys/power/resume", device_str, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/power/resume", device_str, 0);
- if (r < 0)
- return log_debug_errno(r, "Failed to write device '%s': %m", device_str);
-
-@@ -121,7 +121,7 @@ static int write_mode(char **modes) {
+ 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);
+@@ -92,7 +92,7 @@ static int write_mode(char **modes) {
STRV_FOREACH(mode, modes) {
int k;
@@ -363,7 +361,7 @@ index b9fe96635d..f168d7f890 100644
if (k >= 0)
return 0;
-@@ -140,7 +140,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;
@@ -372,24 +370,24 @@ index b9fe96635d..f168d7f890 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 77d95e513f..25ce4abfb1 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();
- r = write_string_file(filename, action, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file(filename, action, 0);
if (r < 0) {
- log_full_errno(r == -ENOENT ? LOG_DEBUG : LOG_ERR, r,
- "Failed to write '%s' to '%s': %m", action, filename);
-diff --git a/src/udev/udevd.c b/src/udev/udevd.c
-index cb5123042a..ea309a9e7f 100644
---- a/src/udev/udevd.c
-+++ b/src/udev/udevd.c
-@@ -1113,7 +1113,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) {
+ bool ignore = IN_SET(r, -ENOENT, -EACCES, -ENODEV, -EROFS);
+
+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);
@@ -398,11 +396,11 @@ index cb5123042a..ea309a9e7f 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 75d052ae70..5a15c939d8 100644
---- a/src/vconsole/vconsole-setup.c
-+++ b/src/vconsole/vconsole-setup.c
-@@ -117,7 +117,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-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch b/meta/recipes-core/systemd/systemd/0001-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch
deleted file mode 100644
index 7d764b4115..0000000000
--- a/meta/recipes-core/systemd/systemd/0001-meson-Add-Defi-objcopy-option-to-specify-objcopy.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 3f37ad5e083dcad51c21c1050b2829b70d240b52 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Aug 2019 03:10:20 +0000
-Subject: [PATCH] meson: Add -Defi-objcopy option to specify objcopy
-
-This helps in cross compiling for x86 target on a aarch64 host e.g.
-Fixes
-TOPDIR/build/tmp/hosttools/objcopy:src/boot/efi/systemd_boot.so: Invalid bfd target
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- meson_options.txt | 2 ++
- src/boot/efi/meson.build | 5 ++++-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/meson_options.txt b/meson_options.txt
-index d4ec37dda2..dc1c96e112 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -296,6 +296,8 @@ option('efi-cc', type : 'array',
- description : 'the compiler to use for EFI modules')
- option('efi-ld', type : 'string',
- description : 'the linker to use for EFI modules')
-+option('efi-objcopy', type : 'string',
-+ description : 'the objcopy to use for EFI')
- option('efi-libdir', type : 'string',
- description : 'path to the EFI lib directory')
- option('efi-ldsdir', type : 'string',
-diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
-index 0ae3191635..5a7137bc84 100644
---- a/src/boot/efi/meson.build
-+++ b/src/boot/efi/meson.build
-@@ -88,7 +88,10 @@ if have_gnu_efi
- output : 'efi_config.h',
- configuration : efi_conf)
-
-- objcopy = find_program('objcopy')
-+ objcopy = get_option('efi-objcopy')
-+ if objcopy == ''
-+ objcopy = find_program('objcopy', required: true)
-+ endif
-
- efi_ldsdir = get_option('efi-ldsdir')
- arch_lds = 'elf_@0@_efi.lds'.format(gnu_efi_path_arch)
---
-2.17.1
-
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/0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch b/meta/recipes-core/systemd/systemd/0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch
deleted file mode 100644
index ba20a0bb46..0000000000
--- a/meta/recipes-core/systemd/systemd/0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d0122c077d2d8fd0fd29b463c501e7ddf9177ff3 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Tue, 24 Sep 2019 17:04:50 +0800
-Subject: [PATCH] unit-file.c: consider symlink on filesystems like NFS
-
-Some filesystems do not fully support readdir, according to the manual,
-so we should also consider DT_UNKNOWN to correctly handle symlinks.
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
-Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/13637]
----
- src/shared/unit-file.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/shared/unit-file.c b/src/shared/unit-file.c
-index 4a5f23e6c1..8373103000 100644
---- a/src/shared/unit-file.c
-+++ b/src/shared/unit-file.c
-@@ -247,6 +247,7 @@ int unit_file_build_name_map(
- _cleanup_free_ char *_filename_free = NULL, *simplified = NULL;
- const char *suffix, *dst = NULL;
- bool valid_unit_name;
-+ struct stat sb;
-
- valid_unit_name = unit_name_is_valid(de->d_name, UNIT_NAME_ANY);
-
-@@ -279,7 +280,10 @@ int unit_file_build_name_map(
- if (hashmap_contains(ids, de->d_name))
- continue;
-
-- if (de->d_type == DT_LNK) {
-+ if (de->d_type == DT_LNK ||
-+ (de->d_type == DT_UNKNOWN &&
-+ lstat(filename, &sb) == 0 &&
-+ (sb.st_mode & S_IFMT) == S_IFLNK)) {
- /* We don't explicitly check for alias loops here. unit_ids_map_get() which
- * limits the number of hops should be used to access the map. */
-
---
-2.17.1
-
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 c6213ab88e..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,7 +1,7 @@
-From 1eb84534dea05d41afed1d898cba212ad7d310dd 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 02/24] don't use glibc-specific qsort_r
+Subject: [PATCH] don't use glibc-specific qsort_r
Upstream-Status: Inappropriate [musl specific]
@@ -10,19 +10,20 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[Rebased for v242]
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+
---
- src/basic/sort-util.h | 14 --------------
- src/libsystemd/sd-hwdb/hwdb-util.c | 19 ++++++++++++++-----
- src/shared/format-table.c | 36 ++++++++++++++++++++++++------------
+ src/basic/sort-util.h | 14 ------------
+ src/libsystemd/sd-hwdb/hwdb-util.c | 19 +++++++++++-----
+ 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 e029f8646e..27d68b341c 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) {
@@ -38,11 +39,11 @@ index e029f8646e..27d68b341c 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 c83575c7c8..72f8f3a050 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);
@@ -59,7 +60,7 @@ index c83575c7c8..72f8f3a050 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,
};
@@ -71,7 +72,7 @@ index c83575c7c8..72f8f3a050 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++;
@@ -82,11 +83,11 @@ index c83575c7c8..72f8f3a050 100644
return 0;
}
-diff --git a/src/shared/format-table.c b/src/shared/format-table.c
-index a5c0a99b08..d595cbe372 100644
---- a/src/shared/format-table.c
-+++ b/src/shared/format-table.c
-@@ -850,31 +850,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);
}
@@ -130,7 +131,7 @@ index a5c0a99b08..d595cbe372 100644
}
/* Order identical lines by the order there were originally added in */
-@@ -1107,7 +1109,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;
@@ -144,7 +145,7 @@ index a5c0a99b08..d595cbe372 100644
}
if (t->display_map)
-@@ -1534,7 +1541,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;
@@ -158,6 +159,3 @@ index a5c0a99b08..d595cbe372 100644
}
if (t->display_map)
---
-2.11.0
-
diff --git a/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch b/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch
index dcae668dcb..ba7424d876 100644
--- a/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch
+++ b/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch
@@ -1,4 +1,7 @@
-Include sys/wait.h
+From 106922335ec502bcb4451c54a89be49f88fa54de 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] Include sys/wait.h
Fixes:
src/login/logind-brightness.c:158:85: error: 'WEXITED' undeclared (first use in this function); did you mean 'WIFEXITED'?
@@ -8,12 +11,13 @@ src/login/logind-brightness.c:158:85: error: 'WEXITED' undeclared (first use in
Upstream-Status: Pending
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
---
src/login/logind-brightness.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/login/logind-brightness.c b/src/login/logind-brightness.c
-index 8dfa97d7ae..bddd4a2727 100644
+index 3f4b65e1fdf1..5af7e3d5ce3f 100644
--- a/src/login/logind-brightness.c
+++ b/src/login/logind-brightness.c
@@ -1,5 +1,6 @@
diff --git a/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch b/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
deleted file mode 100644
index 49a334d090..0000000000
--- a/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From bdbafe18c3bf99b3b691cd52b9ccff60f313892d Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Wed, 27 Jun 2018 16:09:24 +0800
-Subject: [PATCH 2/5] use lnr wrapper instead of looking for --relative option
- for ln
-
-Remove file manually to avoid the 'File Exists' error when creating
-symlink. This is because the original 'ln' command uses '-f' option.
-
-Upstream-Status: Inappropriate [OE-Specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- meson.build | 4 ----
- tools/meson-make-symlink.sh | 3 ++-
- units/meson-add-wants.sh | 7 ++++++-
- 3 files changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index e5ceb1e169..79b762faeb 100644
---- a/meson.build
-+++ b/meson.build
-@@ -579,10 +579,6 @@ endforeach
-
- conf.set_quoted('TELINIT', get_option('telinit-path'))
-
--if run_command('ln', '--relative', '--help').returncode() != 0
-- error('ln does not support --relative (added in coreutils 8.16)')
--endif
--
- ############################################################
-
- gperf = find_program('gperf')
-diff --git a/tools/meson-make-symlink.sh b/tools/meson-make-symlink.sh
-index da0d13a341..90bc0a93c2 100755
---- a/tools/meson-make-symlink.sh
-+++ b/tools/meson-make-symlink.sh
-@@ -8,5 +8,6 @@ mkdir -vp "$(dirname "${DESTDIR:-}$2")"
- if [ "$(dirname $1)" = . ]; then
- ln -vfs -T "$1" "${DESTDIR:-}$2"
- else
-- ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2"
-+ rm -f "${DESTDIR:-}$2"
-+ lnr "${DESTDIR:-}$1" "${DESTDIR:-}$2"
- fi
-diff --git a/units/meson-add-wants.sh b/units/meson-add-wants.sh
-index a483d75b86..3c01c523f1 100755
---- a/units/meson-add-wants.sh
-+++ b/units/meson-add-wants.sh
-@@ -25,4 +25,9 @@ case "$target" in
- ;;
- esac
-
--ln -vfs --relative "$unitpath" "$dir"
-+if [ -d "$dir" ]; then
-+ rm -f "$dir/$unit"
-+ lnr "$unitpath" "$dir/$unit"
-+else
-+ lnr "$unitpath" "$dir"
-+fi
diff --git a/meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch b/meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch
index 6695d56804..c6204786b3 100644
--- a/meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch
+++ b/meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch
@@ -1,7 +1,7 @@
-From 47864989388bcd04d647ecf618ad7e260399dbb6 Mon Sep 17 00:00:00 2001
+From f9078501a1495c9991431d1435d081cd2e830328 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 5 Sep 2015 06:31:47 +0000
-Subject: [PATCH 3/5] implment systemd-sysv-install for OE
+Subject: [PATCH] implment systemd-sysv-install for OE
Use update-rc.d for enabling/disabling and status command
to check the status of the sysv service
@@ -9,12 +9,13 @@ to check the status of the sysv service
Upstream-Status: Inappropriate [OE-Specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/systemctl/systemd-sysv-install.SKELETON | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/systemctl/systemd-sysv-install.SKELETON b/src/systemctl/systemd-sysv-install.SKELETON
-index 8c16cf9..9f078a1 100755
+index 8c16cf99913f..9f078a121469 100755
--- a/src/systemctl/systemd-sysv-install.SKELETON
+++ b/src/systemctl/systemd-sysv-install.SKELETON
@@ -32,17 +32,17 @@ case "$1" in
@@ -38,6 +39,3 @@ index 8c16cf9..9f078a1 100755
;;
*)
usage ;;
---
-2.7.4
-
diff --git a/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch b/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
index 2e39f7a2e1..1404895143 100644
--- a/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
+++ b/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
@@ -1,24 +1,28 @@
-From a9421d55102fc84f77f7c21a2479fcd00652b896 Mon Sep 17 00:00:00 2001
+From 233de872b9b033ec842c2135152d2e006ac44c16 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 13:55:12 +0800
-Subject: [PATCH 03/24] missing_type.h: add __compare_fn_t and comparison_fn_t
+Subject: [PATCH] missing_type.h: add __compare_fn_t and comparison_fn_t
Make it work with musl where comparison_fn_t and __compare_fn_t
is not provided.
Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[Rebased for v244]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[Rebased for v242]
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+
---
src/basic/missing_type.h | 9 +++++++++
src/basic/sort-util.h | 1 +
+ src/core/kmod-setup.c | 1 +
src/journal/catalog.c | 1 +
- 3 files changed, 11 insertions(+)
+ 4 files changed, 12 insertions(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index bf8a6caa1b..2134fe5095 100644
+index bf8a6caa1b46..c487e65e7bde 100644
--- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h
@@ -10,3 +10,12 @@
@@ -35,29 +39,38 @@ index bf8a6caa1b..2134fe5095 100644
+typedef int (*__compar_fn_t)(const void *, const void *);
+#endif
diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
-index e029f86..7247d40 100644
+index 27d68b341cf3..307ea4ac0e8e 100644
--- a/src/basic/sort-util.h
+++ b/src/basic/sort-util.h
@@ -4,6 +4,7 @@
#include <stdlib.h>
#include "macro.h"
-+#include "missing.h"
++#include "missing_type.h"
void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
__compar_d_fn_t compar, void *arg);
+diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
+index 128674327362..09ccd613e32c 100644
+--- a/src/core/kmod-setup.c
++++ b/src/core/kmod-setup.c
+@@ -10,6 +10,7 @@
+ #include "kmod-setup.h"
+ #include "macro.h"
+ #include "string-util.h"
++#include "missing_type.h"
+
+ #if HAVE_KMOD
+ #include "module-util.h"
diff --git a/src/journal/catalog.c b/src/journal/catalog.c
-index 7beffc1e1a..4818a2e5cc 100644
+index 70b2c8b46c4e..d574a64586f1 100644
--- a/src/journal/catalog.c
+++ b/src/journal/catalog.c
-@@ -29,6 +29,7 @@
+@@ -28,6 +28,7 @@
#include "string-util.h"
#include "strv.h"
#include "tmpfile-util.h"
-+#include "missing.h"
++#include "missing_type.h"
const char * const catalog_file_dirs[] = {
"/usr/local/lib/systemd/catalog/",
---
-2.11.0
-
diff --git a/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch b/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch
index 7ee0d48fa6..538a99c7d7 100644
--- a/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch
+++ b/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch
@@ -1,4 +1,7 @@
-Include signal.h
+From 082d2eb2a65525890a913723764e67a36ee75384 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] Include signal.h
Fixes several signal set related errors:
src/basic/copy.c:92:19: error: implicit declaration of function 'sigemptyset' [-Werror=implicit-function-declaration]
@@ -9,17 +12,18 @@ src/basic/copy.c:95:13: error: implicit declaration of function 'sigtimedwait' [
Upstream-Status: Pending
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
---
src/basic/copy.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/basic/copy.c b/src/basic/copy.c
-index ca311e021e..3cf7fc1697 100644
+index 9028868f696d..5168586fa522 100644
--- a/src/basic/copy.c
+++ b/src/basic/copy.c
-@@ -12,6 +12,7 @@
+@@ -8,6 +8,7 @@
+ #include <sys/sendfile.h>
#include <sys/xattr.h>
- #include <time.h>
#include <unistd.h>
+#include <signal.h>
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 a2aad40ac2..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,7 +1,7 @@
-From 7bcf3b166694090497a0acd2c5299e4e04fcc9b6 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 04/24] add fallback parse_printf_format implementation
+Subject: [PATCH] add fallback parse_printf_format implementation
Upstream-Status: Inappropriate [musl specific]
@@ -10,22 +10,23 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
---
meson.build | 1 +
src/basic/meson.build | 5 +
- src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++++++++++
- src/basic/parse-printf-format.h | 57 +++++++++
+ src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++
+ src/basic/parse-printf-format.h | 57 +++++++
src/basic/stdio-util.h | 2 +-
src/journal/journal-send.c | 2 +-
6 files changed, 338 insertions(+), 2 deletions(-)
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 79b762faeb..7f8c679411 100644
---- a/meson.build
-+++ b/meson.build
-@@ -613,6 +613,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',
@@ -33,11 +34,11 @@ index 79b762faeb..7f8c679411 100644
'sys/auxv.h',
'valgrind/memcheck.h',
'valgrind/valgrind.h',
-diff --git a/src/basic/meson.build b/src/basic/meson.build
-index d6caf28f14..32c1acf349 100644
---- a/src/basic/meson.build
-+++ b/src/basic/meson.build
-@@ -312,6 +312,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
@@ -49,11 +50,10 @@ index d6caf28f14..32c1acf349 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 0000000000..49437e5445
+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 -*-*/
+
@@ -328,11 +328,10 @@ index 0000000000..49437e5445
+
+ return last;
+}
-diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
-new file mode 100644
-index 0000000000..47be7522d7
+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 -*-*/
+
@@ -391,10 +390,10 @@ index 0000000000..47be7522d7
+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 c3b9448d4f..2937aa13b1 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
@@ -410,18 +409,18 @@ index c3b9448d4f..2937aa13b1 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 5ef11fa1a4..6384ab620c 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>
#include <fcntl.h>
-#include <printf.h>
#include <stddef.h>
- #include <sys/socket.h>
#include <sys/un.h>
+ #include <unistd.h>
@@ -21,6 +20,7 @@
#include "stdio-util.h"
#include "string-util.h"
diff --git a/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch b/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch
deleted file mode 100644
index f9c5996ffb..0000000000
--- a/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From dc0a6a9fe4da9738efaba942233ad39da625a918 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Thu, 21 Feb 2019 16:28:21 +0800
-Subject: [PATCH 4/5] rules: whitelist hd* devices
-
-qemu by default emulates IDE and the linux-yocto kernel(s) use
-CONFIG_IDE instead of the more modern libsata, so disks appear as
-/dev/hd*. Patch rejected upstream because CONFIG_IDE is deprecated.
-
-Upstream-Status: Denied [https://github.com/systemd/systemd/pull/1276]
-
-Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-[rebased for systemd 241]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- rules/60-persistent-storage.rules | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
-index 7802b1c94f..c0534ae26a 100644
---- a/rules/60-persistent-storage.rules
-+++ b/rules/60-persistent-storage.rules
-@@ -7,7 +7,7 @@ ACTION=="remove", GOTO="persistent_storage_end"
- ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_end"
-
- SUBSYSTEM!="block", GOTO="persistent_storage_end"
--KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*", GOTO="persistent_storage_end"
-+KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*|hd*", GOTO="persistent_storage_end"
-
- # ignore partitions that span the entire disk
- TEST=="whole_disk", GOTO="persistent_storage_end"
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 0f75e8c12d..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,7 @@
-Handle __cpu_mask usage
+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
Fixes errors:
@@ -15,13 +18,14 @@ add a typedef to cpu-set-util.h defining __cpu_mask appropriately.
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
---
src/shared/cpu-set-util.h | 2 ++
src/test/test-sizeof.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
-index 27812dfd59..f698f9df83 100644
+index 27812dfd5923..0ab40731ea93 100644
--- a/src/shared/cpu-set-util.h
+++ b/src/shared/cpu-set-util.h
@@ -6,6 +6,8 @@
@@ -34,7 +38,7 @@ index 27812dfd59..f698f9df83 100644
typedef struct CPUSet {
cpu_set_t *set;
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index a710db5370..d1601ad929 100644
+index c65062d2562c..8b6eefa9cdae 100644
--- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c
@@ -1,6 +1,5 @@
@@ -43,8 +47,8 @@ index a710db5370..d1601ad929 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-rules-watch-metadata-changes-in-ide-devices.patch b/meta/recipes-core/systemd/systemd/0005-rules-watch-metadata-changes-in-ide-devices.patch
deleted file mode 100644
index 96175b5b5e..0000000000
--- a/meta/recipes-core/systemd/systemd/0005-rules-watch-metadata-changes-in-ide-devices.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From d1bccc721dd8f43fee29c5df0e9b78345e69f4b6 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Thu, 21 Feb 2019 16:38:38 +0800
-Subject: [PATCH 5/5] rules: watch metadata changes in ide devices
-
-Formatting IDE storage does not trigger "change" uevents. As a result
-clients using udev API don't get any updates afterwards and get outdated
-information about the device.
-...
-root@qemux86-64:~# mkfs.ext4 -F /dev/hda1
-Creating filesystem with 262144 4k blocks and 65536 inodes
-Filesystem UUID: 98791eb2-2bf3-47ad-b4d8-4cf7e914eee2
-
-root@qemux86-64:~# ls /dev/disk/by-uuid/98791eb2-2bf3-47ad-b4d8-4cf7e914eee2
-ls: cannot access '/dev/disk/by-uuid/98791eb2-2bf3-47ad-b4d8-4cf7e914eee2': No such file or directory
-...
-Include hd* in a match for watch option assignment.
-
-Upstream-Status: Denied
-
-qemu by default emulates IDE and the linux-yocto kernel(s) use
-CONFIG_IDE instead of the more modern libsata, so disks appear as
-/dev/hd*. A similar patch rejected by upstream because CONFIG_IDE
-is deprecated.
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-[rebased for systemd 241]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
----
- rules/60-block.rules | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/rules/60-block.rules b/rules/60-block.rules
-index 3134ab995e..cd72a494a1 100644
---- a/rules/60-block.rules
-+++ b/rules/60-block.rules
-@@ -9,5 +9,5 @@ ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block",
-
- # watch metadata changes, caused by tools closing the device node which was opened for writing
- ACTION!="remove", SUBSYSTEM=="block", \
-- KERNEL=="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*", \
-+ KERNEL=="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*|hd*", \
- OPTIONS+="watch"
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 adfc3b7861..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,7 +1,7 @@
-From 399fd3eda3045636a70da438a0fd1406cc332ed1 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 05/24] src/basic/missing.h: check for missing strndupa
+Subject: [PATCH] src/basic/missing.h: check for missing strndupa
include missing.h for definition of strndupa
@@ -13,77 +13,122 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[rebased for systemd 244]
+
---
meson.build | 1 +
src/backlight/backlight.c | 1 +
+ src/basic/cgroup-util.c | 1 +
src/basic/env-util.c | 1 +
+ src/basic/log.c | 1 +
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 +
src/basic/time-util.c | 1 +
+ src/boot/bless-boot.c | 1 +
src/core/dbus-cgroup.c | 1 +
+ src/core/dbus-execute.c | 1 +
src/core/dbus-util.c | 1 +
+ src/core/execute.c | 1 +
src/core/kmod-setup.c | 1 +
src/core/service.c | 1 +
+ 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 +
+ src/libsystemd/sd-bus/sd-bus.c | 1 +
src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
src/locale/keymap-util.c | 1 +
src/login/pam_systemd.c | 1 +
src/network/generator/network-generator.c | 1 +
src/nspawn/nspawn-settings.c | 1 +
+ 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 +
src/shared/dns-domain.c | 1 +
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 +
- 32 files changed, 43 insertions(+)
+ 50 files changed, 61 insertions(+)
diff --git a/meson.build b/meson.build
-index 7f8c679411..81c061b768 100644
+index 9187439bdd..bea9935a91 100644
--- a/meson.build
+++ b/meson.build
-@@ -506,6 +506,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 dfd6805398..c2b2ace6ec 100644
+index 3a644363e1..73946a829b 100644
--- a/src/backlight/backlight.c
+++ b/src/backlight/backlight.c
@@ -17,6 +17,7 @@
#include "string-util.h"
#include "strv.h"
#include "util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 e94fcfad02..856a7068b0 100644
+--- a/src/basic/cgroup-util.c
++++ b/src/basic/cgroup-util.c
+@@ -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 a6503cf2b6..ceef9a62c8 100644
+index b8dc98915f..5049b37594 100644
--- a/src/basic/env-util.c
+++ b/src/basic/env-util.c
-@@ -16,6 +16,7 @@
+@@ -15,6 +15,7 @@
#include "string-util.h"
#include "strv.h"
#include "utf8.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
#define VALID_CHARS_ENV_NAME \
DIGITS LETTERS \
+diff --git a/src/basic/log.c b/src/basic/log.c
+index c6fe203808..b7ef932d28 100644
+--- a/src/basic/log.c
++++ b/src/basic/log.c
+@@ -35,6 +35,7 @@
+ #include "terminal-util.h"
+ #include "time-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ #define SNDBUF_SIZE (8*1024*1024)
+
diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
index 188a8d4406..1e16ec287a 100644
--- a/src/basic/missing_stdlib.h
@@ -105,338 +150,530 @@ index 188a8d4406..1e16ec287a 100644
+ })
+#endif
diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
-index 6b82eab640..51c6b78615 100644
+index 6ebc2b95fd..88f4359bab 100644
--- a/src/basic/mkdir.c
+++ b/src/basic/mkdir.c
-@@ -14,6 +14,7 @@
+@@ -13,6 +13,7 @@
#include "stat-util.h"
#include "stdio-util.h"
#include "user-util.h"
-+#include "missing.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 115a1494a2..07a34bfd53 100644
+index 44f0438cf4..54b4133343 100644
--- a/src/basic/parse-util.c
+++ b/src/basic/parse-util.c
-@@ -20,6 +20,7 @@
- #include "process-util.h"
+@@ -19,6 +19,7 @@
#include "stat-util.h"
#include "string-util.h"
-+#include "missing.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 09169cf963..f411ba897f 100644
+index ba47ca5812..8baf728fde 100644
--- a/src/basic/proc-cmdline.c
+++ b/src/basic/proc-cmdline.c
@@ -15,6 +15,7 @@
#include "string-util.h"
#include "util.h"
#include "virt.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
int proc_cmdline(char **ret) {
const char *e;
diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
-index 7aaf95bfce..42ce53d5aa 100644
+index 7aaf95bfce..da7e836f14 100644
--- a/src/basic/procfs-util.c
+++ b/src/basic/procfs-util.c
@@ -11,6 +11,7 @@
#include "procfs-util.h"
#include "stdio-util.h"
#include "string-util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 c94ee26bd9..14e35b4653 100644
+--- a/src/basic/selinux-util.c
++++ b/src/basic/selinux-util.c
+@@ -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(context_t, context_free);
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index 3018e81acb..4e2b3b66c1 100644
+index 15cc1b8851..02bb3f01f9 100644
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
-@@ -28,6 +28,7 @@
+@@ -26,6 +26,7 @@
#include "string-util.h"
#include "strv.h"
#include "time-util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
static clockid_t map_clock_id(clockid_t c) {
+diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
+index b96e1f927f..cba979baca 100644
+--- a/src/boot/bless-boot.c
++++ b/src/boot/bless-boot.c
+@@ -18,6 +18,7 @@
+ #include "util.h"
+ #include "verbs.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
+
+ static char **arg_path = NULL;
+
diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
-index 2f2313c599..c9937f9d62 100644
+index b7d2e32639..fdbc1df95e 100644
--- a/src/core/dbus-cgroup.c
+++ b/src/core/dbus-cgroup.c
@@ -15,6 +15,7 @@
#include "fileio.h"
#include "limits-util.h"
#include "path-util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
- static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_cgroup_device_policy, cgroup_device_policy, CGroupDevicePolicy);
+ 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 50f7ada8ce..5c760ee487 100644
+--- a/src/core/dbus-execute.c
++++ b/src/core/dbus-execute.c
+@@ -41,6 +41,7 @@
+ #include "unit-printf.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ 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 7862beaacb..19f6968cfe 100644
+index 951450e53d..50d134e9a1 100644
--- a/src/core/dbus-util.c
+++ b/src/core/dbus-util.c
@@ -7,6 +7,7 @@
#include "unit-printf.h"
#include "user-util.h"
#include "unit.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
int bus_property_get_triggered_unit(
sd_bus *bus,
+diff --git a/src/core/execute.c b/src/core/execute.c
+index 2a4840a3a9..d3f1e0e0f8 100644
+--- a/src/core/execute.c
++++ b/src/core/execute.c
+@@ -89,6 +89,7 @@
+ #include "unit.h"
+ #include "user-util.h"
+ #include "utmp-wtmp.h"
++#include "missing_stdlib.h"
+
+ #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 a91cfebc67..a45961013f 100644
+index 09ccd613e3..f4e64fa283 100644
--- a/src/core/kmod-setup.c
+++ b/src/core/kmod-setup.c
@@ -11,6 +11,7 @@
- #include "kmod-setup.h"
#include "macro.h"
#include "string-util.h"
-+#include "missing.h"
+ #include "missing_type.h"
++#include "missing_stdlib.h"
#if HAVE_KMOD
- #include <libkmod.h>
+ #include "module-util.h"
diff --git a/src/core/service.c b/src/core/service.c
-index 73b3c9c316..ef74f00a08 100644
+index 00e61945ba..1ecab28354 100644
--- a/src/core/service.c
+++ b/src/core/service.c
-@@ -43,6 +43,7 @@
+@@ -41,6 +41,7 @@
#include "unit.h"
#include "utf8.h"
#include "util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 35885dfb47..bb9f0660a6 100644
+--- a/src/coredump/coredump-vacuum.c
++++ b/src/coredump/coredump-vacuum.c
+@@ -16,6 +16,7 @@
+ #include "string-util.h"
+ #include "time-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ #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 77dfdefd64..e21ecbeff8 100644
+--- a/src/journal-remote/journal-remote-main.c
++++ b/src/journal-remote/journal-remote-main.c
+@@ -22,6 +22,7 @@
+ #include "stat-util.h"
+ #include "string-table.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+
+ #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 6d6bb1cf63..6666349a35 100644
+index 8d4897b942..15476b3c83 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
-@@ -70,6 +70,7 @@
+@@ -69,6 +69,7 @@
#include "unit-name.h"
#include "user-util.h"
#include "varlink.h"
-+#include "missing.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 eb029e4453..f31fe9d5a8 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 @@
#include "strv.h"
#include "time-util.h"
#include "utf8.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 ae643cacc7..1b752271a5 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 @@
#include "set.h"
#include "string-util.h"
#include "strv.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 fc7e8e844a..7af4dd2712 100644
+--- a/src/libsystemd/sd-bus/bus-socket.c
++++ b/src/libsystemd/sd-bus/bus-socket.c
+@@ -28,6 +28,7 @@
+ #include "string-util.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ #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 9de5e454a6..fe86c93c63 100644
+--- a/src/libsystemd/sd-bus/sd-bus.c
++++ b/src/libsystemd/sd-bus/sd-bus.c
+@@ -41,6 +41,7 @@
+ #include "process-util.h"
+ #include "string-util.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+
+ #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 8de0a859ee..4fd0a2e692 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 @@
#include "missing_resource.h"
#include "time-util.h"
#include "util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
#define MAX_SIZE (2*1024*1024)
diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
-index f8c36c94f5..41f5606aea 100644
+index 233d081300..40a32b9700 100644
--- a/src/locale/keymap-util.c
+++ b/src/locale/keymap-util.c
-@@ -22,6 +22,7 @@
+@@ -21,6 +21,7 @@
#include "string-util.h"
#include "strv.h"
#include "tmpfile-util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 3f762cbbc3..005cfea658 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.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 0b5af33566..9c808cd014 100644
+index bed1e42697..e4847c2bee 100644
--- a/src/network/generator/network-generator.c
+++ b/src/network/generator/network-generator.c
@@ -13,6 +13,7 @@
#include "string-table.h"
#include "string-util.h"
#include "strv.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
/*
# .network
diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
-index 3a99736813..279fea4d88 100644
+index d341fa25aa..91646bc2c2 100644
--- a/src/nspawn/nspawn-settings.c
+++ b/src/nspawn/nspawn-settings.c
@@ -16,6 +16,7 @@
#include "strv.h"
#include "user-util.h"
#include "util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
Settings *settings_new(void) {
Settings *s;
+diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
+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 "missing_stdlib.h"
+
+ NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
+ NSS_GETPW_PROTOTYPES(mymachines);
+diff --git a/src/portable/portable.c b/src/portable/portable.c
+index 3a1367ec2b..f29336cb1e 100644
+--- a/src/portable/portable.c
++++ b/src/portable/portable.c
+@@ -31,6 +31,7 @@
+ #include "strv.h"
+ #include "tmpfile-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
+
+diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
+index 3072b984e5..c46ae374bf 100644
+--- a/src/resolve/resolvectl.c
++++ b/src/resolve/resolvectl.c
+@@ -36,6 +36,7 @@
+ #include "strv.h"
+ #include "terminal-util.h"
+ #include "verbs.h"
++#include "missing_stdlib.h"
+
+ 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 b21fe39326..af2640005c 100644
+--- a/src/shared/bus-unit-procs.c
++++ b/src/shared/bus-unit-procs.c
+@@ -10,6 +10,7 @@
+ #include "sort-util.h"
+ #include "string-util.h"
+ #include "terminal-util.h"
++#include "missing_stdlib.h"
+
+ struct CGroupInfo {
+ char *cgroup_path;
+diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
+index f2652ed9a5..eb019fc89f 100644
+--- a/src/shared/bus-unit-util.c
++++ b/src/shared/bus-unit-util.c
+@@ -39,6 +39,7 @@
+ #include "unit-def.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ 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 77c1c62182..5cd31f3c15 100644
+--- a/src/shared/bus-util.c
++++ b/src/shared/bus-util.c
+@@ -22,6 +22,7 @@
+ #include "socket-util.h"
+ #include "stdio-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 f62ad0a0f5..f1a27e158d 100644
+index b812665315..8e68f7f8fc 100644
--- a/src/shared/dns-domain.c
+++ b/src/shared/dns-domain.c
-@@ -24,6 +24,7 @@
+@@ -23,6 +23,7 @@
#include "string-util.h"
#include "strv.h"
#include "utf8.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 7c4fc7021d..a6ff2214df 100644
+index 7c4fc7021d..3fbaf5a639 100644
--- a/src/shared/journal-importer.c
+++ b/src/shared/journal-importer.c
@@ -14,6 +14,7 @@
#include "parse-util.h"
#include "string-util.h"
#include "unaligned.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 b615c70dff..75b26e9c21 100644
+index 899e894ab7..628854ac9c 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
-@@ -39,6 +39,7 @@
- #include "time-util.h"
+@@ -41,6 +41,7 @@
#include "utf8.h"
#include "util.h"
-+#include "missing.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 7c20b100b4..e4209d3a95 100644
+index e03be6d23b..50e3d1f75c 100644
--- a/src/shared/pager.c
+++ b/src/shared/pager.c
-@@ -25,6 +25,7 @@
+@@ -23,6 +23,7 @@
#include "strv.h"
#include "terminal-util.h"
#include "util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
static pid_t pager_pid = 0;
-diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
-index 6bf0ff0316..f6c8009cd2 100644
---- a/src/shared/path-lookup.c
-+++ b/src/shared/path-lookup.c
-@@ -20,6 +20,7 @@
- #include "tmpfile-util.h"
- #include "user-util.h"
- #include "util.h"
-+#include "missing.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 7cb7d8a477..8b12b91084 100644
+index 7cb7d8a477..8e7d7f9e7c 100644
--- a/src/shared/uid-range.c
+++ b/src/shared/uid-range.c
@@ -9,6 +9,7 @@
#include "sort-util.h"
#include "uid-range.h"
#include "user-util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 abbbc9f2d6..6179b5851e 100644
+index b461aead60..9941695ed9 100644
--- a/src/socket-proxy/socket-proxyd.c
+++ b/src/socket-proxy/socket-proxyd.c
-@@ -28,6 +28,7 @@
+@@ -26,6 +26,7 @@
#include "socket-util.h"
#include "string-util.h"
#include "util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
#define BUFFER_SIZE (256 * 1024)
diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
-index 52217429b1..a05e7782f6 100644
+index 52217429b1..70708dedf3 100644
--- a/src/test/test-hexdecoct.c
+++ b/src/test/test-hexdecoct.c
@@ -6,6 +6,7 @@
#include "hexdecoct.h"
#include "macro.h"
#include "string-util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
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 e8f1ce1354..8693cb02a4 100644
+index 6c020ac0ed..10723ec46c 100644
--- a/src/udev/udev-builtin-path_id.c
+++ b/src/udev/udev-builtin-path_id.c
-@@ -23,6 +23,7 @@
+@@ -22,6 +22,7 @@
#include "strv.h"
#include "sysexits.h"
#include "udev-builtin.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
_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 8cfa2cdf23..b0670c77ec 100644
+index e1c2baf7f2..62d4086802 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
-@@ -35,6 +35,7 @@
+@@ -34,6 +34,7 @@
#include "udev-util.h"
#include "udev-watch.h"
#include "user-util.h"
-+#include "missing.h"
++#include "missing_stdlib.h"
typedef struct Spawn {
sd_device *device;
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
-index 1642f10535..fe2aa75478 100644
+index c36f032f66..36970813d8 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
-@@ -28,6 +28,7 @@
- #include "udev-event.h"
+@@ -30,6 +30,7 @@
#include "udev-rules.h"
#include "user-util.h"
-+#include "missing.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
#define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
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 6d73d715ce..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,7 @@
-Include netinet/if_ether.h
+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
Fixes
/path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
@@ -26,11 +29,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
---
src/libsystemd-network/sd-dhcp6-client.c | 1 -
src/libsystemd/sd-netlink/netlink-types.c | 1 +
src/machine/machine-dbus.c | 1 +
+ src/network/netdev/bond.c | 1 +
+ src/network/netdev/bridge.c | 1 +
src/network/netdev/macsec.c | 1 +
+ src/network/netdev/netdev-gperf.gperf | 1 +
src/network/netdev/netdev.c | 1 +
src/network/networkd-brvlan.c | 1 +
src/network/networkd-dhcp-common.c | 1 +
@@ -38,28 +45,29 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/network/networkd-dhcp6.c | 2 +-
src/network/networkd-link.c | 2 +-
src/network/networkd-network.c | 1 +
+ src/network/test-network-tables.c | 1 +
src/shared/ethtool-util.c | 1 +
src/shared/ethtool-util.h | 1 +
src/udev/net/link-config.c | 1 +
src/udev/udev-builtin-net_setup_link.c | 1 +
- 15 files changed, 14 insertions(+), 4 deletions(-)
+ 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 d7a5349c70..68b41dfb6c 100644
---- a/src/libsystemd-network/sd-dhcp6-client.c
-+++ b/src/libsystemd-network/sd-dhcp6-client.c
-@@ -6,7 +6,6 @@
+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>
- #include <string.h>
#include <sys/ioctl.h>
-#include <linux/if_arp.h>
#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 de9b8b21ab..f64f6500f7 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>
@@ -68,22 +76,44 @@ index de9b8b21ab..f64f6500f7 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 0d58b5eb8b..01093c1f62 100644
---- a/src/machine/machine-dbus.c
-+++ b/src/machine/machine-dbus.c
-@@ -4,6 +4,7 @@
- #include <string.h>
+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>
#include <sys/wait.h>
+#include <netinet/if_ether.h>
/* 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/macsec.c b/src/network/netdev/macsec.c
-index cf281e75a6..269dc618ff 100644
---- a/src/network/netdev/macsec.c
-+++ b/src/network/netdev/macsec.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 "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+ */
+
++#include <netinet/if_ether.h>
+ #include <net/if.h>
+
+ #include "bridge.h"
+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+ */
@@ -91,21 +121,33 @@ index cf281e75a6..269dc618ff 100644
#include <netinet/in.h>
#include <linux/if_ether.h>
#include <linux/if_macsec.h>
-diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
-index 7735b455b7..ed4eda4a44 100644
---- a/src/network/netdev/netdev.c
-+++ b/src/network/netdev/netdev.c
+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\"")
+ #endif
++#include <netinet/if_ether.h>
+ #include <stddef.h>
+ #include "bond.h"
+ #include "bridge.h"
+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 c3c5d535ac..ebea408c89 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 @@
***/
@@ -114,36 +156,37 @@ index c3c5d535ac..ebea408c89 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 626b975839..42fe92f320 100644
---- a/src/network/networkd-dhcp-common.c
-+++ b/src/network/networkd-dhcp-common.c
-@@ -1,6 +1,7 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
-
+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"
+#include <netinet/if_ether.h>
#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 662770b50e..c6ab62a94d 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 "hostname-util.h"
-diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
-index 8ad736a82b..f41b4d834e 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.
***/
@@ -152,13 +195,13 @@ index 8ad736a82b..f41b4d834e 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 f5bb78890a..f13a36b791 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+ */
@@ -166,13 +209,13 @@ index f5bb78890a..f13a36b791 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 2b8d0eb2fb..2f79ef25cd 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+ */
@@ -180,10 +223,19 @@ index 2b8d0eb2fb..2f79ef25cd 100644
#include <net/if.h>
#include <netinet/in.h>
#include <linux/netdevice.h>
-diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
-index b0961df72e..53fcbbd84b 100644
---- a/src/shared/ethtool-util.c
-+++ b/src/shared/ethtool-util.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"
+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+ */
@@ -191,33 +243,33 @@ index b0961df72e..53fcbbd84b 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 8b32b243f3..262b819976 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 d44af64d5e..fd052f1591 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 ee3ca9fa38..9aa4e82874 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 34f7f5fb74..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
@@ -1,8 +1,7 @@
-From f8a239b182158ca0a537ba053cb0e6bad9c3a2fb Mon Sep 17 00:00:00 2001
+From 77f98727f1d19a8fb327b55c92f1a9ee7b859e9f Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:56:21 +0800
-Subject: [PATCH 07/24] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
- defined
+Subject: [PATCH] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not defined
If the standard library doesn't provide brace
expansion users just won't get it.
@@ -17,17 +16,18 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
---
src/basic/glob-util.c | 12 ++++++++++++
src/test/test-glob-util.c | 16 ++++++++++++++++
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 b335af8d97..2cdfc11f16 100644
---- a/src/basic/glob-util.c
-+++ b/src/basic/glob-util.c
-@@ -14,6 +14,12 @@
+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"
@@ -40,7 +40,7 @@ index b335af8d97..2cdfc11f16 100644
static void closedir_wrapper(void* v) {
(void) closedir(v);
}
-@@ -21,6 +27,7 @@ static void closedir_wrapper(void* v) {
+@@ -19,6 +25,7 @@ static void closedir_wrapper(void* v) {
int safe_glob(const char *path, int flags, glob_t *pglob) {
int k;
@@ -48,7 +48,7 @@ index b335af8d97..2cdfc11f16 100644
/* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
assert(!(flags & GLOB_ALTDIRFUNC));
-@@ -34,9 +41,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,11 +63,11 @@ index b335af8d97..2cdfc11f16 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 b4f41445fe..f0d474ed14 100644
---- a/src/test/test-glob-util.c
-+++ b/src/test/test-glob-util.c
-@@ -13,6 +13,12 @@
+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"
@@ -80,7 +80,7 @@ index b4f41445fe..f0d474ed14 100644
static void test_glob_exists(void) {
char name[] = "/tmp/test-glob_exists.XXXXXX";
int fd = -1;
-@@ -40,11 +46,13 @@ static void test_glob_no_dot(void) {
+@@ -39,11 +45,13 @@ static void test_glob_no_dot(void) {
const char *fn;
_cleanup_globfree_ glob_t g = {
@@ -94,7 +94,7 @@ index b4f41445fe..f0d474ed14 100644
};
int r;
-@@ -52,11 +60,19 @@ static void test_glob_no_dot(void) {
+@@ -51,11 +59,19 @@ static void test_glob_no_dot(void) {
assert_se(mkdtemp(template));
fn = strjoina(template, "/*");
@@ -114,11 +114,11 @@ index b4f41445fe..f0d474ed14 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 3c30612af1..14bc428085 100644
---- a/src/tmpfiles/tmpfiles.c
-+++ b/src/tmpfiles/tmpfiles.c
-@@ -63,6 +63,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 3c30612af1..14bc428085 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
-@@ -1853,7 +1859,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 3c30612af1..14bc428085 100644
};
int r = 0, k;
char **fn;
-@@ -1873,7 +1881,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/0008-add-missing-FTW_-macros-for-musl.patch b/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
index d5f2349f2b..1f618932ea 100644
--- a/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
+++ b/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
@@ -1,7 +1,7 @@
-From 6cd17c753d2c0a90fc791f69bbc694cbc8556a4f Mon Sep 17 00:00:00 2001
+From 7c440cfc53aa52c9dc91c3a8c105bcf314c53af6 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:00:06 +0800
-Subject: [PATCH 08/24] add missing FTW_ macros for musl
+Subject: [PATCH] add missing FTW_ macros for musl
This is to avoid build failures like below for musl.
@@ -10,12 +10,13 @@ This is to avoid build failures like below for musl.
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/basic/missing_type.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index c487e65..23602eb 100644
+index c487e65e7bde..23602ebbd533 100644
--- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h
@@ -19,3 +19,23 @@ typedef int (*comparison_fn_t)(const void *, const void *);
@@ -42,6 +43,3 @@ index c487e65..23602eb 100644
+#ifndef FTW_SKIP_SIBLINGS
+#define FTW_SKIP_SIBLINGS 3
+#endif
---
-2.7.4
-
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 8bacd0289d..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,20 +1,21 @@
-From f1f4b4f9684fed185bfa8b9ed409cdf241657e99 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 10/24] fix missing of __register_atfork for non-glibc builds
+Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
Upstream-Status: Inappropriate [musl specific]
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 78ce43b..aec2daf 100644
---- a/src/basic/process-util.c
-+++ b/src/basic/process-util.c
-@@ -22,6 +22,9 @@
+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>
#endif
@@ -24,7 +25,7 @@ index 78ce43b..aec2daf 100644
#include "alloc-util.h"
#include "architecture.h"
-@@ -1160,11 +1163,15 @@ void reset_cached_pid(void) {
+@@ -1143,11 +1146,15 @@ void reset_cached_pid(void) {
cached_pid = CACHED_PID_UNSET;
}
@@ -40,6 +41,3 @@ index 78ce43b..aec2daf 100644
pid_t getpid_cached(void) {
static bool installed = false;
---
-2.7.4
-
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 d6eda9c038..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,7 +1,7 @@
-From e3f847bd0338d27aff3335b42661d8a4b66b965e 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 11/24] Use uintmax_t for handling rlim_t
+Subject: [PATCH] Use uintmax_t for handling rlim_t
PRIu{32,64} is not right format to represent rlim_t type
therefore use %ju and typecast the rlim_t variables to
@@ -20,17 +20,18 @@ Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[Rebased for v241]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/basic/format-util.h | 8 +-------
src/basic/rlimit-util.c | 10 +++++-----
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 dece5d3..dbb87bc 100644
---- a/src/basic/format-util.h
-+++ b/src/basic/format-util.h
-@@ -42,13 +42,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
@@ -45,11 +46,11 @@ index dece5d3..dbb87bc 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 74b3a02..b02c03c 100644
---- a/src/basic/rlimit-util.c
-+++ b/src/basic/rlimit-util.c
-@@ -307,13 +307,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)
@@ -67,7 +68,7 @@ index 74b3a02..b02c03c 100644
if (!s)
return -ENOMEM;
-@@ -404,7 +404,7 @@ int rlimit_nofile_safe(void) {
+@@ -403,7 +403,7 @@ int rlimit_nofile_safe(void) {
rl.rlim_cur = FD_SETSIZE;
if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
@@ -76,11 +77,11 @@ index 74b3a02..b02c03c 100644
return 1;
}
-diff --git a/src/core/execute.c b/src/core/execute.c
-index a708231..e2b8748 100644
---- a/src/core/execute.c
-+++ b/src/core/execute.c
-@@ -4220,9 +4220,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",
@@ -92,6 +93,3 @@ index a708231..e2b8748 100644
}
if (c->ioprio_set) {
---
-2.7.4
-
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 914589dbd3..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,22 +1,22 @@
-From d3d65d4036670cbd5129fe55c09ca391286ef4b3 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 14/24] test-sizeof.c: Disable tests for missing typedefs in
- musl
+Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/test/test-sizeof.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index 35b0876..e78e7ca 100644
+index 1020e0cb3153..c65062d2562c 100644
--- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c
-@@ -41,8 +41,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 35b0876..e78e7ca 100644
info(float);
info(double);
-@@ -60,7 +62,9 @@ int main(void) {
+@@ -63,7 +65,9 @@ int main(void) {
info(ssize_t);
info(time_t);
info(usec_t);
@@ -37,6 +37,3 @@ index 35b0876..e78e7ca 100644
info(pid_t);
info(uid_t);
info(gid_t);
---
-2.7.4
-
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 fd407f604d..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
@@ -1,7 +1,7 @@
-From 48c628f532f6025c2d1646b6819cd81eb789d7fb Mon Sep 17 00:00:00 2001
+From e6f871078d8d6f076c84f908fa57af15417ab87d Mon Sep 17 00:00:00 2001
From: Andre McCurdy <armccurdy@gmail.com>
Date: Tue, 10 Oct 2017 14:33:30 -0700
-Subject: [PATCH 15/24] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
+Subject: [PATCH] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
thing to do and it's not portable (not supported by musl). See:
@@ -25,18 +25,19 @@ just historical and not actually necessary or desired behaviour?
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+
---
src/basic/fs-util.h | 22 +++++++++++++++++++++-
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 7ad030b..d4cb1e9 100644
---- a/src/basic/fs-util.h
-+++ b/src/basic/fs-util.h
-@@ -32,7 +32,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)
+/*
@@ -63,11 +64,11 @@ index 7ad030b..d4cb1e9 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 89d7a7d..34b4ad5 100644
---- a/src/shared/base-filesystem.c
-+++ b/src/shared/base-filesystem.c
-@@ -53,7 +53,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 ++) {
@@ -76,7 +77,7 @@ index 89d7a7d..34b4ad5 100644
continue;
if (table[i].target) {
-@@ -61,7 +61,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) {
@@ -85,7 +86,7 @@ index 89d7a7d..34b4ad5 100644
continue;
/* check if a specific file exists at the target path */
-@@ -72,7 +72,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();
@@ -94,6 +95,3 @@ index 89d7a7d..34b4ad5 100644
continue;
}
---
-2.7.4
-
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 d5565698aa..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
@@ -1,8 +1,7 @@
-From af76c973e41929360a6e021f2ff9a7fc1d7994e9 Mon Sep 17 00:00:00 2001
+From ec335ef3bb903a7eaf054103cc51411e71e6448c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 27 May 2018 08:36:44 -0700
-Subject: [PATCH 16/24] Define glibc compatible basename() for non-glibc
- systems
+Subject: [PATCH] Define glibc compatible basename() for non-glibc systems
Fixes builds with musl, even though systemd is adamant about
using non-posix basename implementation, we have a way out
@@ -10,25 +9,24 @@ using non-posix basename implementation, we have a way out
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
- src/machine/machine-dbus.c | 4 ++++
- 1 file changed, 4 insertions(+)
+ 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 7a558df..eca7d4b 100644
---- a/src/machine/machine-dbus.c
-+++ b/src/machine/machine-dbus.c
-@@ -11,6 +11,10 @@
+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
+#if !defined(__GLIBC__)
++#include <string.h>
+#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
+#endif
+
#include "alloc-util.h"
#include "bus-common-errors.h"
- #include "bus-internal.h"
---
-2.7.4
-
+ #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 24e24e8e5a..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,7 +1,7 @@
-From c7a4efb8bccb52e1714c151929c23e12bde59b82 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 17/24] Do not disable buffering when writing to oom_score_adj
+Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
On musl, disabling buffering when writing to oom_score_adj will
cause the following error.
@@ -19,15 +19,16 @@ Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
[rebased for systemd 243]
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 b1c08fcade..0a7a1f7d89 100644
---- a/src/basic/process-util.c
-+++ b/src/basic/process-util.c
-@@ -1474,7 +1474,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,
@@ -35,4 +36,4 @@ index b1c08fcade..0a7a1f7d89 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 5901772998..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
@@ -1,7 +1,7 @@
-From fffb2810611b4a26f5c6c0958093b5b3b7d4cd99 Mon Sep 17 00:00:00 2001
+From 4938705454cf46cfe8deac8ce457d5d2432cbead Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Tue, 10 Jul 2018 15:40:17 +0800
-Subject: [PATCH 18/24] distinguish XSI-compliant strerror_r from GNU-specifi
+Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi
strerror_r
XSI-compliant strerror_r and GNU-specifi strerror_r are different.
@@ -18,16 +18,17 @@ assigned to (char *) variable, resulting in segment fault.
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/journal/journal-send.c | 5 +++++
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 3fea912..4f1e592 100644
---- a/src/journal/journal-send.c
-+++ b/src/journal/journal-send.c
-@@ -337,7 +337,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;
@@ -40,11 +41,11 @@ index 3fea912..4f1e592 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 dc95237..bdda30f 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;
@@ -57,6 +58,3 @@ index dc95237..bdda30f 100644
if (errno == ERANGE || strlen(x) >= k - 1) {
free(m);
k *= 2;
---
-2.7.4
-
diff --git a/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
index 35cc66ff66..3b8064677f 100644
--- a/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
+++ b/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
@@ -1,7 +1,7 @@
-From 969ab9e68249fd383f4b513b1c9306bdac4ae9b2 Mon Sep 17 00:00:00 2001
+From 1c4c73a7cc0fb59eb68ab70699f7f51af5c163b2 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:18:00 +0800
-Subject: [PATCH 19/24] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
+Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
for currently unknown reasons they get exported to the shared libries
even without being listed in the sym file
@@ -11,12 +11,13 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
[Rebased for v241]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/libsystemd/sd-bus/bus-error.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
-index bdda30f..e21853c 100644
+index 28a5159c4480..962a4de10c56 100644
--- a/src/libsystemd/sd-bus/bus-error.c
+++ b/src/libsystemd/sd-bus/bus-error.c
@@ -54,8 +54,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
@@ -30,6 +31,3 @@ index bdda30f..e21853c 100644
/* Additional maps registered with sd_bus_error_add_map() are in this
* NULL terminated array */
---
-2.7.4
-
diff --git a/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch b/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch
index 753d5116ac..db4041bbb1 100644
--- a/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch
+++ b/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch
@@ -1,7 +1,7 @@
-From 75c06e3e2a4760b36fffd95cdf5535b8ad73c481 Mon Sep 17 00:00:00 2001
+From 8303d49cabaf3ab8890ba1d266972c721dfe6ee8 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:27:54 +0800
-Subject: [PATCH 20/24] missing_type.h: add __compar_d_fn_t definition
+Subject: [PATCH] missing_type.h: add __compar_d_fn_t definition
Fix the following compile failure:
src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean '__compar_fn_t'?
@@ -9,12 +9,13 @@ src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/basic/missing_type.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index 7d7c1e4..85902ab 100644
+index 23602ebbd533..917d314a81bf 100644
--- a/src/basic/missing_type.h
+++ b/src/basic/missing_type.h
@@ -13,6 +13,7 @@
@@ -25,6 +26,3 @@ index 7d7c1e4..85902ab 100644
#endif
#ifndef __COMPAR_FN_T
---
-2.7.4
-
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/0021-avoid-redefinition-of-prctl_mm_map-structure.patch b/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch
index cdddf83890..7dacc36837 100644
--- a/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch
+++ b/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch
@@ -1,7 +1,7 @@
-From 3fbf61d54b82fc9bf21d8039bfd89dc9efc5bbcd Mon Sep 17 00:00:00 2001
+From 6364ff5534678c158a7fb8d4e50d0a6ce72c1ad8 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:44:54 +0800
-Subject: [PATCH 21/24] avoid redefinition of prctl_mm_map structure
+Subject: [PATCH] avoid redefinition of prctl_mm_map structure
Fix the following compile failure:
error: redefinition of 'struct prctl_mm_map'
@@ -9,12 +9,13 @@ error: redefinition of 'struct prctl_mm_map'
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/basic/missing_prctl.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
-index f80cd17..47e4893 100644
+index f80cd17f346b..47e489354053 100644
--- a/src/basic/missing_prctl.h
+++ b/src/basic/missing_prctl.h
@@ -1,7 +1,9 @@
@@ -27,6 +28,3 @@ index f80cd17..47e4893 100644
/* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
#ifndef PR_CAP_AMBIENT
---
-2.11.0
-
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/0024-test-json.c-define-M_PIl.patch b/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch
index 0e5629d37b..80beada3d3 100644
--- a/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch
+++ b/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch
@@ -1,7 +1,7 @@
-From 902412c271e0c5d9cb93b10ec0fb5b119b393474 Mon Sep 17 00:00:00 2001
+From a05cc5fb3dc0e51682c40196285cdda34ec90783 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 16:53:06 +0800
-Subject: [PATCH 24/24] test-json.c: define M_PIl
+Subject: [PATCH] test-json.c: define M_PIl
Fix the following compile failure:
src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this function); did you mean 'M_PI'?
@@ -9,15 +9,16 @@ src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this functi
Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/test/test-json.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/test/test-json.c b/src/test/test-json.c
-index 9b8a2a9..efc746c 100644
+index a6613043b924..ca823ea79f05 100644
--- a/src/test/test-json.c
+++ b/src/test/test-json.c
-@@ -11,6 +11,10 @@
+@@ -12,6 +12,10 @@
#include "tests.h"
#include "util.h"
@@ -28,6 +29,3 @@ index 9b8a2a9..efc746c 100644
static void test_tokenizer(const char *data, ...) {
unsigned line = 0, column = 0;
void *state = NULL;
---
-2.11.0
-
diff --git a/meta/recipes-core/systemd/systemd_243.bb b/meta/recipes-core/systemd/systemd_246.6.bb
index 6e7f95693b..9215adf8dc 100644
--- a/meta/recipes-core/systemd/systemd_243.bb
+++ b/meta/recipes-core/systemd/systemd_246.6.bb
@@ -8,7 +8,7 @@ DEPENDS = "intltool-native gperf-native libcap util-linux"
SECTION = "base/shell"
-inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages distro_features_check
+inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages features_check
# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
# that we don't build both udev and systemd in world builds.
@@ -17,13 +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://0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
file://0003-implment-systemd-sysv-install-for-OE.patch \
- file://0004-rules-whitelist-hd-devices.patch \
- file://0005-rules-watch-metadata-changes-in-ide-devices.patch \
- file://0001-unit-file.c-consider-symlink-on-filesystems-like-NFS.patch \
- file://99-default.preset \
+ file://0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch \
"
# patches needed by musl
@@ -46,11 +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://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 = " \
@@ -60,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 \
@@ -84,10 +83,11 @@ PACKAGECONFIG ??= " \
randomseed \
resolved \
set-time-epoch \
- smack \
sysusers \
+ sysvinit \
timedated \
timesyncd \
+ userdb \
utmp \
vconsole \
xz \
@@ -101,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.
@@ -139,8 +140,9 @@ PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false"
PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables"
PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod"
-PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false"
+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"
@@ -167,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):
@@ -177,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"
@@ -200,7 +205,6 @@ EXTRA_OEMESON += "-Dnobody-user=nobody \
-Dnobody-group=nobody \
-Drootlibdir=${rootlibdir} \
-Drootprefix=${rootprefix} \
- -Dsysvrcnd-path=${sysconfdir} \
-Ddefault-locale=C \
"
@@ -228,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/
@@ -236,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
@@ -275,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
@@ -295,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 (){
@@ -307,7 +313,7 @@ python populate_packages_prepend (){
}
PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*"
-PACKAGES =+ "\
+PACKAGE_BEFORE_PN = "\
${PN}-gui \
${PN}-vconsole-setup \
${PN}-initramfs \
@@ -316,12 +322,14 @@ PACKAGES =+ "\
${PN}-rpm-macros \
${PN}-binfmt \
${PN}-zsh-completion \
- ${PN}-xorg-xinitrc \
${PN}-container \
${PN}-journal-gatewayd \
${PN}-journal-upload \
${PN}-journal-remote \
${PN}-extra-utils \
+ ${PN}-udev-rules \
+ udev \
+ udev-hwdb \
"
SUMMARY_${PN}-container = "Tools for containers and VMs"
@@ -378,8 +386,6 @@ FILES_${PN}-kernel-install = "${bindir}/kernel-install \
FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
"
-FILES_${PN}-xorg-xinitrc = "${sysconfdir}/X11/xinit/xinitrc.d/*"
-
FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions"
FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
@@ -411,7 +417,7 @@ FILES_${PN}-journal-remote = "${rootlibexecdir}/systemd/systemd-journal-remote \
${systemd_system_unitdir}/systemd-journal-remote.service \
${systemd_system_unitdir}/systemd-journal-remote.socket \
"
-SYSTEMD_SERVICE_${PN}-remote = "systemd-journal-remote.socket"
+SYSTEMD_SERVICE_${PN}-journal-remote = "systemd-journal-remote.socket"
FILES_${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \
@@ -496,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}/* \
@@ -528,6 +544,7 @@ FILES_${PN} = " ${base_bindir}/* \
${sysconfdir}/xdg/ \
${sysconfdir}/init.d/README \
${sysconfdir}/resolv-conf.systemd \
+ ${sysconfdir}/X11/xinit/xinitrc.d/* \
${rootlibexecdir}/systemd/* \
${systemd_unitdir}/* \
${base_libdir}/security/*.so \
@@ -540,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 \
@@ -548,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 \
@@ -566,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 \
"
@@ -582,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"
@@ -595,6 +605,7 @@ FILES_udev += "${base_sbindir}/udevd \
${rootlibexecdir}/udev/ata_id \
${rootlibexecdir}/udev/cdrom_id \
${rootlibexecdir}/udev/collect \
+ ${rootlibexecdir}/udev/fido_id \
${rootlibexecdir}/udev/findkeyboards \
${rootlibexecdir}/udev/keyboard-force-release.sh \
${rootlibexecdir}/udev/keymap \
@@ -602,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)}"
@@ -673,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/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch b/meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch
deleted file mode 100644
index f35c15cb31..0000000000
--- a/meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 36ac97bfe51797458442a6035219a504a42e703a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 21 Aug 2015 10:56:40 -0700
-Subject: [PATCH] This fixes an issue that clang reports about mutliple output
- files
-
-Issue is that we are passing .h file to link step as seen below.
-
-| arm-oe-linux-gnueabi-clang -march=armv7-a -mthumb -mfloat-abi=hard
--mfpu=neon-vfpv4 -mtune=cortex-a7 -D__extern_always_inline=inline
--no-integrated-as
---sysroot=/mnt/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-glibc/sysroots/raspberrypi2
--Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed halt.o ifdown.o hddown.o
-utmp.o reboot.h -o halt
-| clang-3.7: error: cannot specify -o when generating multiple output
-files
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index e77ed5f..a6f9f40 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -103,9 +103,9 @@ all: $(BIN) $(SBIN) $(USRBIN)
- init: LDLIBS += $(INITLIBS) $(STATIC)
- init: init.o init_utmp.o
-
--halt: halt.o ifdown.o hddown.o utmp.o reboot.h
-+halt: halt.o ifdown.o hddown.o utmp.o
-
--last: last.o oldutmp.h
-+last: last.o
-
- mesg: mesg.o
-
-@@ -120,7 +120,7 @@ sulogin: sulogin.o
-
- wall: dowall.o wall.o
-
--shutdown: dowall.o shutdown.o utmp.o reboot.h
-+shutdown: dowall.o shutdown.o utmp.o
-
- bootlogd: LDLIBS += -lutil
- bootlogd: bootlogd.o
---
-2.1.4
-
diff --git a/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch b/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
index e13ac9d06b..60fbd87534 100644
--- a/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch
@@ -1,4 +1,4 @@
-From 3c29a86f351ea4827dc445bb8e6cb774543c9be6 Mon Sep 17 00:00:00 2001
+From c710a3accd1fabdb671274e1a458405282d51e0c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 6 Aug 2018 15:38:58 -0700
Subject: [PATCH] include sys/sysmacros.h for major/minor definitions
@@ -13,10 +13,10 @@ Upstream-Status: Pending
3 files changed, 3 insertions(+)
diff --git a/src/bootlogd.c b/src/bootlogd.c
-index 570d382..68d62f3 100644
+index 787db87..8b07903 100644
--- a/src/bootlogd.c
+++ b/src/bootlogd.c
-@@ -35,6 +35,7 @@
+@@ -29,6 +29,7 @@
#include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
@@ -25,7 +25,7 @@ index 570d382..68d62f3 100644
#include <sys/utsname.h>
#include <time.h>
diff --git a/src/mountpoint.c b/src/mountpoint.c
-index 9e3dd9c..91f74ed 100644
+index 5f20522..94df7a1 100644
--- a/src/mountpoint.c
+++ b/src/mountpoint.c
@@ -25,6 +25,7 @@
@@ -37,7 +37,7 @@ index 9e3dd9c..91f74ed 100644
#include <stdlib.h>
#include <string.h>
diff --git a/src/shutdown.c b/src/shutdown.c
-index 7e997da..17de58d 100644
+index b744a2c..40b7faf 100644
--- a/src/shutdown.c
+++ b/src/shutdown.c
@@ -40,6 +40,7 @@
@@ -46,5 +46,5 @@ index 7e997da..17de58d 100644
#include <sys/stat.h>
+#include <sys/sysmacros.h>
#include <sys/wait.h>
- #include <time.h>
- #include <string.h>
+ #ifdef __linux__
+ #include <sys/sysmacros.h> /* brought in my LFS patch */
diff --git a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
index 7b342901e1..5c39fb001b 100644
--- a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
@@ -1,3 +1,8 @@
+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
+
Upstream-Status: Inappropriate [configuration]
# The src Makefile was checking for libcrypt.a on the host, not in the
@@ -5,21 +10,29 @@ Upstream-Status: Inappropriate [configuration]
# and uses it if it's there.
# - jdike@linux.intel.com
-Index: sysvinit-2.88dsf/src/Makefile
-===================================================================
---- sysvinit-2.88dsf.orig/src/Makefile
-+++ sysvinit-2.88dsf/src/Makefile
-@@ -85,9 +85,13 @@ else
+---
+ src/Makefile | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 5b1a5a2..b686394 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -97,15 +97,8 @@ else
endif
# Additional libs for GNU libc.
+-ifneq ($(wildcard $(ROOT)/usr/lib*/libcrypt.*),)
+- SULOGINLIBS += -lcrypt
+-endif
+-
+-# Additional libs for GNU libc / multiarch on Debian based systems.
+-ifneq ($(wildcard $(ROOT)/usr/lib/*/libcrypt.*),)
+-ifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt)
+- SULOGINLIBS += -lcrypt
+-endif
+ifneq ($(LCRYPT),)
+ SULOGINLIBS += $(LCRYPT)
-+else
- ifneq ($(wildcard /usr/lib*/libcrypt.a),)
- SULOGINLIBS += -lcrypt
endif
-+endif
all: $(BIN) $(SBIN) $(USRBIN)
-
diff --git a/meta/recipes-core/sysvinit/sysvinit/install.patch b/meta/recipes-core/sysvinit/sysvinit/install.patch
index 6c4225a678..90563a6294 100644
--- a/meta/recipes-core/sysvinit/sysvinit/install.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/install.patch
@@ -1,10 +1,19 @@
+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
+
Upstream-Status: Pending
+---
+ src/Makefile | 53 +++++++++++++++++++++++++++++-----------------------
+ 1 file changed, 30 insertions(+), 23 deletions(-)
+
diff --git a/src/Makefile b/src/Makefile
-index e2b8028..3e11e92 100644
+index 1b368dc..5b1a5a2 100644
--- a/src/Makefile
+++ b/src/Makefile
-@@ -65,7 +65,14 @@ else
+@@ -77,7 +77,14 @@ else
INSTALL_DATA = install -m 644
endif
INSTALL_DIR = install -m 755 -d
@@ -20,10 +29,10 @@ index e2b8028..3e11e92 100644
ifeq ($(WITH_SELINUX),yes)
SELINUX_DEF = -DWITH_SELINUX
-@@ -138,39 +145,39 @@ clobber: cleanobjs
+@@ -191,43 +198,43 @@ clobber: cleanobjs
distclean: clobber
- install:
+ install: all
- $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/
- $(INSTALL_DIR) $(ROOT)/usr/bin/
+ $(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/
@@ -40,16 +49,15 @@ index e2b8028..3e11e92 100644
- $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \
+ $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \
done
-- # $(INSTALL_DIR) $(ROOT)/etc/
-- # $(INSTALL_EXEC) initscript.sample $(ROOT)/etc/
+ # $(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
- ln -sf init $(ROOT)/sbin/telinit
- ln -sf /sbin/killall5 $(ROOT)/bin/pidof
- if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
- ln -sf last $(ROOT)/usr/bin/lastb; \
-+ # $(INSTALL_DIR) $(ROOT)$(sysconfdir)/
-+ # $(INSTALL_EXEC) initscript.sample $(ROOT)$(sysconfdir)/
+ ln -sf halt $(ROOT)$(base_sbindir)/reboot
+ ln -sf halt $(ROOT)$(base_sbindir)/poweroff
+ ln -sf init $(ROOT)$(base_sbindir)/telinit
@@ -67,17 +75,23 @@ index e2b8028..3e11e92 100644
+ $(INSTALL_DIR) $(ROOT)$(mandir)/man1/
+ $(INSTALL_DIR) $(ROOT)$(mandir)/man5/
+ $(INSTALL_DIR) $(ROOT)$(mandir)/man8/
- for i in $(MAN1); do \
-- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man1/; \
-+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man1/; \
+ for man in $(MAN1); do \
+- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man1/; \
+- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man1/$$man ; \
++ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man1/; \
++ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man1/$$man ; \
done
- for i in $(MAN5); do \
-- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man5/; \
-+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man5/; \
+ for man in $(MAN5); do \
+- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man5/; \
+- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man5/$$man ; \
++ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man5/; \
++ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man5/$$man ; \
done
- for i in $(MAN8); do \
-- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man8/; \
-+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man8/; \
+ for man in $(MAN8); do \
+- $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man8/; \
+- sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man8/$$man ; \
++ $(INSTALL_DATA) ../man/$$man $(ROOT)$(mandir)/man8/; \
++ sed -i "1{ $(MANDB); }" $(ROOT)$(mandir)/man8/$$man ; \
done
ifeq ($(ROOT),)
#
diff --git a/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch b/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
index 5b5dfdc001..494aa0e012 100644
--- a/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch
@@ -1,4 +1,7 @@
-pidof: add -m option
+From 6c490ea6579a132fabb7dbd25387bb521f820371 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 24 Jul 2013 17:07:22 +0800
+Subject: [PATCH] pidof: add -m option
When used with -o, will also omit any processes that have the same
argv[0] and argv[1] as any explicitly omitted process ids. This can be
@@ -11,23 +14,25 @@ Upstream-Status: backport
Imported patch from: https://bugzilla.redhat.com/attachment.cgi?id=658166
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
- man/pidof.8 | 6 ++++++
- src/killall5.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ man/pidof.8 | 6 +++++
+ src/killall5.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 65 insertions(+), 3 deletions(-)
diff --git a/man/pidof.8 b/man/pidof.8
+index ebe5f55..2fdc4d3 100644
--- a/man/pidof.8
+++ b/man/pidof.8
-@@ -24,6 +24,7 @@ pidof -- find the process ID of a running program.
- .RB [ \-c ]
+@@ -25,6 +25,7 @@ pidof -- find the process ID of a running program.
.RB [ \-n ]
.RB [ \-x ]
+ .RB [ \-z ]
+.RB [ \-m ]
.RB [ \-o
- .IR omitpid[,omitpid..] ]
+ .IR omitpid[,omitpid...] ]
.RB [ \-o
-@@ -63,6 +64,11 @@ shells running the named scripts.
+@@ -76,6 +77,11 @@ is shown. The default separator is a space.
Tells \fIpidof\fP to omit processes with that process id. The special
pid \fB%PPID\fP can be used to name the parent process of the \fIpidof\fP
program, in other words the calling shell or shell script.
@@ -40,10 +45,10 @@ diff --git a/man/pidof.8 b/man/pidof.8
.TP
.B 0
diff --git a/src/killall5.c b/src/killall5.c
-index 5937d98..e73885e 100644
+index 8b5cb38..a664954 100644
--- a/src/killall5.c
+++ b/src/killall5.c
-@@ -118,6 +118,7 @@ typedef struct _s_nfs
+@@ -126,6 +126,7 @@ typedef struct _s_nfs
/* List of processes. */
PROC *plist;
@@ -51,7 +56,7 @@ index 5937d98..e73885e 100644
/* List of processes to omit. */
OMIT *omit;
-@@ -345,6 +346,20 @@ static void clear_mnt(void)
+@@ -361,6 +362,20 @@ static void clear_mnt(void)
}
}
@@ -70,9 +75,9 @@ index 5937d98..e73885e 100644
+}
+
/*
- * Check if path is ia shadow off a NFS partition.
+ * Check if path is a shadow off a NFS partition.
*/
-@@ -452,6 +467,7 @@ int readproc(int do_stat)
+@@ -486,6 +501,7 @@ int readproc(int do_stat)
DIR *dir;
FILE *fp;
PROC *p, *n;
@@ -80,7 +85,7 @@ index 5937d98..e73885e 100644
struct dirent *d;
struct stat st;
char path[PATH_MAX+1];
-@@ -624,6 +640,17 @@ int readproc(int do_stat)
+@@ -733,6 +749,17 @@ int readproc(int do_stat)
p->next = plist;
plist = p;
p->pid = pid;
@@ -98,7 +103,7 @@ index 5937d98..e73885e 100644
}
closedir(dir);
-@@ -813,6 +840,26 @@ PIDQ_HEAD *pidof(char *prog)
+@@ -944,6 +971,26 @@ PIDQ_HEAD *pidof(char *prog)
return q;
}
@@ -125,42 +130,42 @@ index 5937d98..e73885e 100644
/* Give usage message and exit. */
void usage(void)
{
-@@ -845,6 +892,7 @@ void nsyslog(int pri, char *fmt, ...)
- #define PIDOF_SINGLE 0x01
+@@ -994,6 +1041,7 @@ void nsyslog(int pri, char *fmt, ...)
#define PIDOF_OMIT 0x02
#define PIDOF_NETFS 0x04
+ #define PIDOF_QUIET 0x08
+#define PIDOF_OMIT_OMIT_MATCHES 0x08
/*
* Pidof functionality.
-@@ -861,6 +909,7 @@ int main_pidof(int argc, char **argv)
- struct stat st;
+@@ -1011,6 +1059,7 @@ int main_pidof(int argc, char **argv)
char tmp[512];
+ char sep = ' ';
+ olist = (PROC*)0;
omit = (OMIT*)0;
nlist = (NFS*)0;
opterr = 0;
-@@ -868,7 +917,7 @@ int main_pidof(int argc, char **argv)
+@@ -1018,7 +1067,7 @@ int main_pidof(int argc, char **argv)
if ((token = getenv("PIDOF_NETFS")) && (strcmp(token,"no") != 0))
flags |= PIDOF_NETFS;
-- while ((opt = getopt(argc,argv,"hco:sxn")) != EOF) switch (opt) {
-+ while ((opt = getopt(argc,argv,"hcmo:sxn")) != EOF) switch (opt) {
+- while ((opt = getopt(argc,argv,"qhco:d:sxzn")) != EOF) switch (opt) {
++ while ((opt = getopt(argc,argv,"qhcmo:d:sxzn")) != EOF) switch (opt) {
case '?':
nsyslog(LOG_ERR,"invalid options on command line!\n");
closelog();
-@@ -907,6 +956,9 @@ int main_pidof(int argc, char **argv)
- case 'x':
- scripts_too++;
- break;
+@@ -1069,6 +1118,9 @@ int main_pidof(int argc, char **argv)
+ case 'z':
+ list_dz_processes = TRUE;
+ break;
+ case 'm':
+ flags |= PIDOF_OMIT_OMIT_MATCHES;
+ break;
case 'n':
flags |= PIDOF_NETFS;
break;
-@@ -938,10 +990,13 @@ int main_pidof(int argc, char **argv)
+@@ -1100,10 +1152,13 @@ int main_pidof(int argc, char **argv)
pid_t spid = 0;
while ((p = get_next_from_pid_q(q))) {
if ((flags & PIDOF_OMIT) && omit) {
@@ -176,14 +181,11 @@ index 5937d98..e73885e 100644
}
/*
-@@ -977,6 +1032,7 @@ int main_pidof(int argc, char **argv)
- if (!first)
+@@ -1145,6 +1200,7 @@ int main_pidof(int argc, char **argv)
printf("\n");
+ }
+ clear_omit();
clear_mnt();
closelog();
---
-1.8.1.2
-
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/realpath.patch b/meta/recipes-core/sysvinit/sysvinit/realpath.patch
index 5e0dca3bf1..859fd8baad 100644
--- a/meta/recipes-core/sysvinit/sysvinit/realpath.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/realpath.patch
@@ -1,4 +1,8 @@
-Fix build on musl use realpath() API its available on all libcs
+From eb158c97f19d473d01befe96359a7f93ae834517 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Nov 2015 00:10:03 +0000
+Subject: [PATCH] Fix build on musl use realpath() API its available on all
+ libcs
realpath() API doesnt work on systems with PATH_MAX set to be unlimited e.g. GNU/Hurd
However for Linux it should always work
@@ -7,52 +11,17 @@ Upstream-Status: Inappropriate[Linux specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: sysvinit-2.88dsf/src/ifdown.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/ifdown.c 2010-03-23 07:37:01.000000000 -0700
-+++ sysvinit-2.88dsf/src/ifdown.c 2014-04-02 00:43:43.675437029 -0700
-@@ -26,11 +26,11 @@
- #include <unistd.h>
- #include <time.h>
- #include <string.h>
-+#include <errno.h>
-
- #include <sys/ioctl.h>
- #include <sys/socket.h>
- #include <sys/time.h>
--#include <sys/errno.h>
-
- #include <net/if.h>
- #include <netinet/in.h>
-Index: sysvinit-2.88dsf/src/init.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/init.c 2014-04-02 00:42:10.488770162 -0700
-+++ sysvinit-2.88dsf/src/init.c 2014-04-02 00:42:59.432103823 -0700
-@@ -49,6 +49,7 @@
- #include <utmp.h>
- #include <ctype.h>
- #include <stdarg.h>
-+#include <sys/ttydefaults.h>
- #include <sys/syslog.h>
- #include <sys/time.h>
-
-Index: sysvinit-2.88dsf/src/mountpoint.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/mountpoint.c 2009-09-10 01:28:49.000000000 -0700
-+++ sysvinit-2.88dsf/src/mountpoint.c 2014-04-02 00:44:18.248770942 -0700
-@@ -23,6 +23,7 @@
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-+#include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #include <stdlib.h>
-Index: sysvinit-2.88dsf/src/killall5.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/killall5.c 2014-03-26 00:49:52.982668074 -0700
-+++ sysvinit-2.88dsf/src/killall5.c 2014-04-02 00:46:45.838771653 -0700
-@@ -846,9 +846,9 @@
+---
+ src/killall5.c | 4 ++--
+ src/mountpoint.c | 1 +
+ src/wall.c | 1 +
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/killall5.c b/src/killall5.c
+index a664954..9798423 100644
+--- a/src/killall5.c
++++ b/src/killall5.c
+@@ -977,9 +977,9 @@ int matches(PROC *o, PROC *p)
char *oargv1, *pargv1;
if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) {
if (o->argv1 && p->argv1) {
@@ -64,14 +33,26 @@ Index: sysvinit-2.88dsf/src/killall5.c
pargv1 = strdup(p->argv1);
if (! strcmp(oargv1, pargv1)) {
ret = 1;
-Index: sysvinit-2.88dsf/src/wall.c
-===================================================================
---- sysvinit-2.88dsf.orig/src/wall.c 2009-11-22 14:05:53.000000000 -0800
-+++ sysvinit-2.88dsf/src/wall.c 2014-04-02 00:49:15.258772217 -0700
-@@ -29,6 +29,7 @@
+diff --git a/src/mountpoint.c b/src/mountpoint.c
+index b24335e..5f20522 100644
+--- a/src/mountpoint.c
++++ b/src/mountpoint.c
+@@ -23,6 +23,7 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#include <sys/types.h>
+ #include <sys/stat.h>
#include <unistd.h>
+ #include <stdlib.h>
+diff --git a/src/wall.c b/src/wall.c
+index d3a2c70..00826e9 100644
+--- a/src/wall.c
++++ b/src/wall.c
+@@ -30,6 +30,7 @@
#include <pwd.h>
#include <syslog.h>
+ #include <sys/types.h>
+#include <time.h>
#include "init.h"
diff --git a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit_2.97.bb
index bfc1283f73..98916f7f19 100644
--- a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb
+++ b/meta/recipes-core/sysvinit/sysvinit_2.97.bb
@@ -4,16 +4,15 @@ HOMEPAGE = "http://savannah.nongnu.org/projects/sysvinit/"
SECTION = "base"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://COPYRIGHT;endline=15;md5=349c872e0066155e1818b786938876a4"
-PR = "r14"
+ file://COPYRIGHT;endline=15;md5=a1d3b3526501d3546d530bbe6ab6cdbe \
+ "
RDEPENDS_${PN} = "${PN}-inittab"
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.bz2 \
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \
file://install.patch \
file://crypt-lib.patch \
file://pidof-add-m-option.patch \
- file://0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch \
file://realpath.patch \
file://0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch \
file://rcS-default \
@@ -21,16 +20,14 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.bz2 \
file://rcS \
file://bootlogd.init \
file://01_bootlogd \
-"
-
-SRC_URI[md5sum] = "6eda8a97b86e0a6f59dabbf25202aa6f"
-SRC_URI[sha256sum] = "60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5df1519"
+ "
+SRC_URI[sha256sum] = "2d5996857519bfd8634d2e1debabb3238fb38440f65fbfdc46420ee8bdf25110"
S = "${WORKDIR}/sysvinit-${PV}"
-B = "${S}/src"
-inherit update-alternatives distro_features_check
+inherit update-alternatives features_check
DEPENDS_append = " update-rc.d-native base-passwd virtual/crypt"
+do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot"
REQUIRED_DISTRO_FEATURES = "sysvinit"
@@ -71,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"
@@ -81,7 +78,8 @@ EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \
'sbindir=${sbindir}' \
'sysconfdir=${sysconfdir}' \
'includedir=${includedir}' \
- 'mandir=${mandir}'"
+ 'mandir=${mandir}' \
+ MNTPOINT=yes"
do_install () {
oe_runmake 'ROOT=${D}' install
@@ -107,4 +105,8 @@ do_install () {
chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown
+
+ # 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/udev/eudev_3.2.8.bb b/meta/recipes-core/udev/eudev_3.2.9.bb
index eecf64e550..f96f8cbe78 100644
--- a/meta/recipes-core/udev/eudev_3.2.8.bb
+++ b/meta/recipes-core/udev/eudev_3.2.9.bb
@@ -8,7 +8,7 @@ DEPENDS = "glib-2.0 glib-2.0-native gperf-native kmod libxslt-native util-linux"
PROVIDES = "udev"
-SRC_URI = "http://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \
+SRC_URI = "https://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \
file://0014-Revert-rules-remove-firmware-loading-rules.patch \
file://Revert-udev-remove-userspace-firmware-loading-suppor.patch \
file://devfs-udev.rules \
@@ -20,10 +20,10 @@ SRC_URI = "http://dev.gentoo.org/~blueness/${BPN}/${BP}.tar.gz \
file://udev.rules \
"
-SRC_URI[md5sum] = "ce166b3fdd910c2a4a840378f48fedaf"
-SRC_URI[sha256sum] = "61e4948e9e51271c3cce2bb5311a30b206dd03ef011062e6c627fb007e43f6b8"
+SRC_URI[md5sum] = "dedfb1964f6098fe9320de827957331f"
+SRC_URI[sha256sum] = "89618619084a19e1451d373c43f141b469c9fd09767973d73dd268b92074d4fc"
-inherit autotools update-rc.d qemu pkgconfig distro_features_check
+inherit autotools update-rc.d qemu pkgconfig features_check
CONFLICT_DISTRO_FEATURES = "systemd"
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 262f4bacb0..0000000000
--- a/meta/recipes-core/util-linux/util-linux_2.34.bb
+++ /dev/null
@@ -1,12 +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 \
-"
-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 1fa82363b1..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,7 +121,13 @@ 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
+# build host versions during development
+#
+PACKAGECONFIG ?= "pcre2"
PACKAGECONFIG_class-target ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
# inherit manpages requires this to be present, however util-linux does not have
# configuration options, and installs manpages always
@@ -117,6 +139,8 @@ PACKAGECONFIG[systemd] = "--with-systemd --with-systemdsystemunitdir=${systemd_s
PACKAGECONFIG[pylibmount] = "--with-python=3 --enable-pylibmount,--without-python --disable-pylibmount,python3"
# Readline support
PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+# PCRE support in hardlink
+PACKAGECONFIG[pcre2] = ",,libpcre2"
EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} CPU= CPUOPT= 'OPT=${CFLAGS}'"
@@ -239,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"
@@ -260,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-core/volatile-binds/volatile-binds.bb b/meta/recipes-core/volatile-binds/volatile-binds.bb
index d861a71a6b..b273293e9a 100644
--- a/meta/recipes-core/volatile-binds/volatile-binds.bb
+++ b/meta/recipes-core/volatile-binds/volatile-binds.bb
@@ -11,7 +11,7 @@ SRC_URI = "\
S = "${WORKDIR}"
-inherit allarch systemd distro_features_check
+inherit allarch systemd features_check
REQUIRED_DISTRO_FEATURES = "systemd"
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 6883ac865a..0000000000
--- a/meta/recipes-devtools/apt/apt.inc
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Advanced front-end for dpkg"
-DESCRIPTION = "Provides commandline 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-archive/autoconf-archive_2019.01.06.bb b/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb
index 985a254fcc..13593d7bb3 100644
--- a/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb
+++ b/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb
@@ -9,7 +9,7 @@ SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
SRC_URI[md5sum] = "d46413c8b00a125b1529bae385bbec55"
SRC_URI[sha256sum] = "17195c833098da79de5778ee90948f4c5d90ed1a0cf8391b4ab348e2ec511e3f"
-inherit autotools allarch
+inherit autotools allarch texinfo
PACKAGES = "${PN} ${PN}-doc"
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.32.inc b/meta/recipes-devtools/binutils/binutils-2.35.inc
index 19baf8a883..5ae9ec4226 100644
--- a/meta/recipes-devtools/binutils/binutils-2.32.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.35.inc
@@ -14,44 +14,32 @@ def binutils_branch_version(d):
pvsplit = d.getVar('PV').split('.')
return pvsplit[0] + "_" + pvsplit[1]
-# When upgrading to 2.33, please make sure there is no trailing .0, so
+# When upgrading to 2.35, please make sure there is no trailing .0, so
# that upstream version check can work correctly.
-PV = "2.32.0"
-CVE_VERSION = "2.32"
+PV = "2.35"
+CVE_VERSION = "2.35"
BINUPV = "${@binutils_branch_version(d)}"
#BRANCH = "binutils-${BINUPV}-branch"
-BRANCH ?= "binutils-2_32-branch"
+BRANCH ?= "binutils-2_35-branch"
UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
-SRCREV ?= "b8c1f608db9ef3edd483d21a921d1fbedc71df6f"
+SRCREV ?= "89a9065674a14a8bd94bb326b27d19a2f3583efb"
BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${BRANCH};protocol=git"
SRC_URI = "\
${BINUTILS_GIT_URI} \
- file://0003-configure-widen-the-regexp-for-SH-architectures.patch \
- file://0004-Point-scripts-location-to-libdir.patch \
- file://0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \
- file://0006-Use-libtool-2.4.patch \
+ 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-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-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \
- file://0010-Change-default-emulation-for-mips64-linux.patch \
- file://0011-Add-support-for-Netlogic-XLP.patch \
- file://0012-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \
- file://0013-Detect-64-bit-MIPS-targets.patch \
- file://0014-sync-with-OE-libtool-changes.patch \
- file://0015-binutils-enable-x86_64-pep-for-producing-EFI-binarie.patch \
- file://CVE-2019-9074.patch \
- file://CVE-2019-9075.patch \
- file://CVE-2019-9076.patch \
- file://CVE-2019-9077.patch \
- file://CVE-2019-9071.patch \
- file://CVE-2019-12972.patch \
- file://CVE-2019-14250.patch \
- file://CVE-2019-14444.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.32.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.32.bb
+++ b/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb
diff --git a/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.32.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.32.bb
+++ b/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb
diff --git a/meta/recipes-devtools/binutils/binutils-cross_2.32.bb b/meta/recipes-devtools/binutils/binutils-cross_2.35.bb
index fbd1f7d25a..fbd1f7d25a 100644
--- a/meta/recipes-devtools/binutils/binutils-cross_2.32.bb
+++ b/meta/recipes-devtools/binutils/binutils-cross_2.35.bb
diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.32.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb
index 37f4d6d2e9..37f4d6d2e9 100644
--- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.32.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 0fb6cae407..e93cd50b20 100644
--- a/meta/recipes-devtools/binutils/binutils.inc
+++ b/meta/recipes-devtools/binutils/binutils.inc
@@ -13,17 +13,12 @@ LICENSE = "GPLv3"
DEPENDS = "flex-native bison-native zlib-native gnu-config-native autoconf-native"
-#
-# we need chrpath > 0.14 and some distros like centos 7 still have older chrpath
-#
-DEPENDS_append_class-target = " chrpath-replacement-native"
-EXTRANATIVEPATH_append_class-target = " chrpath-native"
-
inherit autotools gettext multilib_header texinfo
FILES_${PN} = " \
${bindir}/${TARGET_PREFIX}* \
- ${libdir}/lib*-*.so \
+ ${libdir}/lib*.so.* \
+ ${libdir}/lib*-${PV}*.so \
${prefix}/${TARGET_SYS}/bin/* \
${bindir}/embedspu"
@@ -33,6 +28,8 @@ FILES_${PN}-dev = " \
${includedir} \
${libdir}/*.la \
${libdir}/libbfd.so \
+ ${libdir}/libctf.so \
+ ${libdir}/libctf-nobfd.so \
${libdir}/libopcodes.so"
# Rather than duplicating multiple entries for these, make one
@@ -40,6 +37,8 @@ FILES_${PN}-dev = " \
LDGOLD_ALTS ?= "ld.gold dwp"
LDGOLD_ALTS_riscv64 = ""
+LDGOLD_ALTS_riscv32 = ""
+LDGOLD_ALTS_libc-glibc_mipsarch = ""
USE_ALTERNATIVES_FOR = " \
addr2line \
@@ -76,13 +75,25 @@ 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)}"
+EXTRA_TARGETS = ""
+EXTRA_TARGETS_x86-64 = " --enable-targets=x86_64-pe,x86_64-pep "
+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)}"
+
# This is necessary due to a bug in the binutils Makefiles
# EXTRA_OEMAKE = "configure-build-libiberty all"
@@ -110,7 +121,8 @@ 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 () {
- (cd ${S}; gnu-configize) || die "Failed to run gnu-configize"
+ (cd ${S} && gnu-configize)
+
oe_runconf
#
# must prime config.cache to ensure the build of libiberty
@@ -121,10 +133,6 @@ do_configure () {
done
}
-do_compile_append_class-target() {
- chrpath -d ${B}/binutils/elfedit
- chrpath -d ${B}/binutils/readelf
-}
do_install () {
autotools_do_install
@@ -144,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
@@ -156,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
@@ -163,3 +178,8 @@ inherit update-alternatives
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN}_class-target = "${USE_ALTERNATIVES_FOR}"
+
+python () {
+ if bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', True, False, d) and bb.utils.contains_any('TARGET_ARCH', 'riscv32 riscv64', True, False, d):
+ bb.fatal("Gold linker does not _yet_ support RISC-V architecture please remove ld-is-gold from DISTRO_FEATURES")
+}
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 6581bad119..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,52 +1,68 @@
-From 5bcd884f8af5106d0fa380c42cffe07f3c993ed2 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 01/15] 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 77ddbbc8f8..d789e77943 100755
+index 03392d265c7..435689ea144 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
-@@ -310,6 +310,7 @@ DATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}"
+@@ -304,6 +304,7 @@ DATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}"
LD_FLAG=r
DATA_ALIGNMENT=${DATA_ALIGNMENT_r}
DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})"
+PARTIAL_LINKING=" "
- ( echo "/* Script for ld -r: link without relocation */"
- . ${CUSTOMIZER_SCRIPT}
- . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
-@@ -318,10 +319,12 @@ DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})"
+ ( echo "/* Script for -r */"
+ source_sh ${CUSTOMIZER_SCRIPT}
+ source_sh ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
+@@ -312,10 +313,12 @@ DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})"
LD_FLAG=u
DATA_ALIGNMENT=${DATA_ALIGNMENT_u}
CONSTRUCTING=" "
+PARTIAL_LINKING=" "
- ( echo "/* Script for ld -Ur: link w/out relocation, do create constructors */"
- . ${CUSTOMIZER_SCRIPT}
- . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
+ ( echo "/* Script for -Ur */"
+ source_sh ${CUSTOMIZER_SCRIPT}
+ source_sh ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xu
+unset PARTIAL_LINKING
DATA_ALIGNMENT=${DATA_ALIGNMENT_}
RELOCATING=" "
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
-index bd7584120e..8bbe052d4b 100644
+index eb74743e5c3..c9a8a47615f 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
-@@ -139,8 +139,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
@@ -58,5 +74,5 @@ index bd7584120e..8bbe052d4b 100644
if test -z "$PLT"; then
IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }"
--
-2.20.1
+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 32537d4b58..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,7 @@
-From 11927913560fc5a5d51af3bc5eb8ad62a86c9840 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 02/15] binutils-cross: Do not generate linker script
+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
@@ -23,10 +23,10 @@ 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 d789e77943..144e2e8736 100755
+index 435689ea144..cff8a1467f9 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
-@@ -220,31 +220,6 @@ append_to_lib_path()
+@@ -235,31 +235,6 @@ append_to_lib_path()
fi
}
@@ -59,5 +59,5 @@ index d789e77943..144e2e8736 100755
libs=${NATIVE_LIB_DIRS}
if [ "x${NATIVE}" = "xyes" ] ; then
--
-2.20.1
+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
new file mode 100644
index 0000000000..28daf58f74
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch
@@ -0,0 +1,98 @@
+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 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.
+
+We therefore pass in the directory to the code using a define, then add
+it to a section we relocate in a similar way to the way we relocate the
+gcc internal paths. This ensures that ld works correctly in our buildtools
+tarball.
+
+Standard sysroot relocation doesn't work since we're not in a sysroot,
+we want to use both the host system and SDK libs.
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+2020/1/17
+Upstream-Status: Inappropriate [OE specific tweak]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ld/Makefile.am | 3 ++-
+ ld/Makefile.in | 3 ++-
+ ld/ldelf.c | 2 +-
+ ld/ldmain.c | 1 +
+ ld/ldmain.h | 1 +
+ 5 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/ld/Makefile.am b/ld/Makefile.am
+index 02c4fc16395..a5762227f0a 100644
+--- a/ld/Makefile.am
++++ b/ld/Makefile.am
+@@ -42,7 +42,8 @@ ZLIBINC = @zlibinc@
+
+ ELF_CLFAGS=-DELF_LIST_OPTIONS=@elf_list_options@ \
+ -DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \
+- -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@
++ -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@ \
++ -DSYSCONFDIR="\"$(sysconfdir)\""
+ WARN_CFLAGS = @WARN_CFLAGS@
+ NO_WERROR = @NO_WERROR@
+ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+diff --git a/ld/Makefile.in b/ld/Makefile.in
+index 2fe12e14f63..8f0c83ac8d2 100644
+--- a/ld/Makefile.in
++++ b/ld/Makefile.in
+@@ -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@ \
+- -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@
++ -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@ \
++ -DSYSCONFDIR="\"$(sysconfdir)\""
+
+ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+
+diff --git a/ld/ldelf.c b/ld/ldelf.c
+index bada3ade2d7..b4784009d7a 100644
+--- a/ld/ldelf.c
++++ b/ld/ldelf.c
+@@ -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;
+- tmppath = concat (ld_sysroot, prefix, "/etc/ld.so.conf",
++ tmppath = concat (ld_sysconfdir, "/etc/ld.so.conf",
+ (const char *) NULL);
+ if (!ldelf_parse_ld_so_conf (&info, tmppath))
+ {
+diff --git a/ld/ldmain.c b/ld/ldmain.c
+index 08be9030cb5..f5c5a336320 100644
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -70,6 +70,7 @@ char *program_name;
+
+ /* The prefix for system library directories. */
+ const char *ld_sysroot;
++char ld_sysconfdir[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSCONFDIR;
+
+ /* The canonical representation of ld_sysroot. */
+ char *ld_canon_sysroot;
+diff --git a/ld/ldmain.h b/ld/ldmain.h
+index ac7db5720d5..1cbe1771912 100644
+--- a/ld/ldmain.h
++++ b/ld/ldmain.h
+@@ -23,6 +23,7 @@
+
+ extern char *program_name;
+ extern const char *ld_sysroot;
++extern char ld_sysconfdir[4096];
+ 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/0003-configure-widen-the-regexp-for-SH-architectures.patch b/meta/recipes-devtools/binutils/binutils/0003-configure-widen-the-regexp-for-SH-architectures.patch
deleted file mode 100644
index a30138295a..0000000000
--- a/meta/recipes-devtools/binutils/binutils/0003-configure-widen-the-regexp-for-SH-architectures.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From da3939de6fb36da2c6484f14f08a37be195d9dc3 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 03/15] configure: widen the regexp for SH architectures
-
-gprof needs to know about uclibc
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure | 2 +-
- gprof/configure | 5 +++++
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index 3747645961..78b5240101 100755
---- a/configure
-+++ b/configure
-@@ -3861,7 +3861,7 @@ case "${target}" in
- nvptx*-*-*)
- noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
- ;;
-- sh-*-*)
-+ sh*-*-* | sh64-*-*)
- case "${target}" in
- sh*-*-elf)
- ;;
-diff --git a/gprof/configure b/gprof/configure
-index f84efaba20..ab32bab2b6 100755
---- a/gprof/configure
-+++ b/gprof/configure
-@@ -6162,6 +6162,11 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-+linux-uclibc*)
-+ lt_cv_deplibs_check_method=pass_all
-+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+ ;;
-+
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
---
-2.20.1
-
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
new file mode 100644
index 0000000000..2381c7b85e
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch
@@ -0,0 +1,44 @@
+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 04/17] configure: widen the regexp for SH architectures
+
+gprof needs to know about uclibc
+
+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 54d0339ab9e..6782f8b6ab8 100755
+--- a/configure
++++ b/configure
+@@ -3937,7 +3937,7 @@ case "${target}" in
+ nvptx*-*-*)
+ noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+ ;;
+- sh-*-*)
++ sh*-*-* | sh64-*-*)
+ case "${target}" in
+ sh*-*-elf)
+ ;;
+diff --git a/configure.ac b/configure.ac
+index a910c4fd6ba..55beb1dea46 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1178,7 +1178,7 @@ case "${target}" in
+ nvptx*-*-*)
+ noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+ ;;
+- sh-*-*)
++ sh*-*-* | sh64-*-*)
+ case "${target}" in
+ sh*-*-elf)
+ ;;
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch b/meta/recipes-devtools/binutils/binutils/0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
deleted file mode 100644
index 1bad53175e..0000000000
--- a/meta/recipes-devtools/binutils/binutils/0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 66861bff389434e3454c7650ee29fade7a1cc5ed 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 05/15] Only generate an RPATH entry if LD_RUN_PATH is not
- empty
-
-for cases where -rpath isn't specified. debian (#151024)
-
-Upstream-Status: Pending
-
-Signed-off-by: Chris Chimelis <chris@debian.org>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ld/emultempl/elf32.em | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
-index f4f7ad6b4e..cfd787ff28 100644
---- a/ld/emultempl/elf32.em
-+++ b/ld/emultempl/elf32.em
-@@ -1471,6 +1471,8 @@ fragment <<EOF
- && command_line.rpath == NULL)
- {
- path = (const char *) getenv ("LD_RUN_PATH");
-+ if ((path) && (strlen (path) == 0))
-+ path = NULL;
- if (path
- && gld${EMULATION_NAME}_search_needed (path, &n, force))
- break;
-@@ -1746,6 +1748,8 @@ gld${EMULATION_NAME}_before_allocation (void)
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-+ if ((rpath) && (strlen (rpath) == 0))
-+ rpath = NULL;
-
- for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
- if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
---
-2.20.1
-
diff --git a/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch b/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch
index f8e352228f..c31a0bc9a6 100644
--- a/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch
+++ b/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch
@@ -1,7 +1,7 @@
-From fc1ff860fd88fa2d0584bd19181c880a76331a8d 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 04/15] 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 c2c798b4fe..d7faf19271 100644
+index a5762227f0a..e1c665898f3 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
-@@ -57,7 +57,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 c2c798b4fe..d7faf19271 100644
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
diff --git a/ld/Makefile.in b/ld/Makefile.in
-index fc687fc516..8b14f5236c 100644
+index 8f0c83ac8d2..acc24ec4130 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
-@@ -563,7 +563,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.
@@ -38,5 +38,5 @@ index fc687fc516..8b14f5236c 100644
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
--
-2.20.1
+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
new file mode 100644
index 0000000000..654b64ff78
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
@@ -0,0 +1,41 @@
+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 06/17] Only generate an RPATH entry if LD_RUN_PATH is not
+ empty
+
+for cases where -rpath isn't specified. debian (#151024)
+
+Upstream-Status: Pending
+
+Signed-off-by: Chris Chimelis <chris@debian.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ld/ldelf.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ld/ldelf.c b/ld/ldelf.c
+index b4784009d7a..541772f4604 100644
+--- a/ld/ldelf.c
++++ b/ld/ldelf.c
+@@ -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");
++ if ((path) && (strlen (path) == 0))
++ path = NULL;
+ if (path
+ && ldelf_search_needed (path, &n, force,
+ is_linux, elfsize))
+@@ -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");
++ if ((rpath) && (strlen (rpath) == 0))
++ rpath = NULL;
+
+ for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0007-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 a2c6312d0a..7f8fc9a5c0 100644
--- a/meta/recipes-devtools/binutils/binutils/0007-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,7 +1,7 @@
-From 8cb013106c379e81fe40cfdf486d9805c9e276ad 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 07/15] don't let the distro compiler point to the wrong
+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 0be45b4ae8..4817616bb2 100644
+index 895f701bcd0..97a53f15bb6 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
-@@ -364,7 +364,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.
@@ -31,5 +31,5 @@ index 0be45b4ae8..4817616bb2 100644
if test -n "${target_header_dir}"; then \
${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
--
-2.20.1
+2.28.0
diff --git a/meta/recipes-devtools/binutils/binutils/0008-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 9727821b1f..2356c6a60f 100644
--- a/meta/recipes-devtools/binutils/binutils/0008-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 98f68c0892ba4bbd53b0a0a4cbbdf0b7197e0320 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 08/15] 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 | 16 ++++++++++++++++
- 9 files changed, 86 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 43c391c2b3..ff9f6b3c02 100755
+index f08ce9969ea..1c872c0db5f 100755
--- a/ld/configure
+++ b/ld/configure
@@ -826,6 +826,7 @@ with_lib_path
@@ -88,7 +88,7 @@ index 43c391c2b3..ff9f6b3c02 100755
enable_gold
enable_got
enable_compressed_debug_sections
-@@ -1490,6 +1491,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 43c391c2b3..ff9f6b3c02 100755
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-got=<type> GOT handling scheme (target, single, negative,
multigot)
-@@ -16618,6 +16621,19 @@ fi
+@@ -15793,6 +15796,19 @@ fi
@@ -118,7 +118,7 @@ index 43c391c2b3..ff9f6b3c02 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 d335f21091..7f692d9387 100644
+index 5a4938afdb0..dbbbde74b04 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot)
@@ -139,10 +139,10 @@ index d335f21091..7f692d9387 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 b97d977f37..f3bbd2d55d 100644
+index 1790dc81a66..73f832eb169 100644
--- a/ld/ld.h
+++ b/ld/ld.h
-@@ -180,6 +180,14 @@ typedef struct
+@@ -166,6 +166,14 @@ typedef struct
in the linker script. */
bfd_boolean force_group_allocation;
@@ -158,10 +158,10 @@ index b97d977f37..f3bbd2d55d 100644
enum endian_enum endian;
diff --git a/ld/ld.texi b/ld/ld.texi
-index 5179af3e0e..f78bf74682 100644
+index 2a93e9456ac..3eeb70607fd 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
-@@ -2524,6 +2524,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,10 +181,10 @@ index 5179af3e0e..f78bf74682 100644
@c man end
diff --git a/ld/ldfile.c b/ld/ldfile.c
-index fcadc08c73..63e295ce8a 100644
+index e39170b5d94..fadc248a140 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
-@@ -116,6 +116,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
+@@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
else
new_dirs->name = xstrdup (name);
@@ -209,23 +209,26 @@ index fcadc08c73..63e295ce8a 100644
/* Try to open a BFD for a lang_input_statement. */
diff --git a/ld/ldlex.h b/ld/ldlex.h
-index 32853debe4..8135361c49 100644
+index 5ea083ebeb3..941dc5f3dc8 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
-@@ -148,6 +148,8 @@ enum option_values
- OPTION_REQUIRE_DEFINED_SYMBOL,
- OPTION_ORPHAN_HANDLING,
- OPTION_FORCE_GROUP_ALLOCATION,
+@@ -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 77cdbd0dd2..725512f126 100644
+index f5c5a336320..516ba0360e2 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
-@@ -269,6 +269,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 77cdbd0dd2..725512f126 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 88e85c73f4..eed1b71456 100644
+index 58c6c078325..879e7bb7658 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
-@@ -543,6 +543,14 @@ static const struct ld_option ld_options[] =
- { {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING},
- '\0', N_("=MODE"), N_("Control how orphan sections are handled."),
+@@ -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,10 +268,10 @@ index 88e85c73f4..eed1b71456 100644
};
#define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -1577,6 +1585,14 @@ parse_args (unsigned argc, char **argv)
- einfo (_("%F%P: invalid argument to option"
- " \"--orphan-handling\"\n"));
- break;
+@@ -1632,6 +1652,13 @@ parse_args (unsigned argc, char **argv)
+
+ case OPTION_PRINT_MAP_DISCARDED:
+ config.print_map_discarded = TRUE;
+
+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
+ command_line.poison_system_directories = FALSE;
@@ -264,10 +279,9 @@ index 88e85c73f4..eed1b71456 100644
+
+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
+ command_line.error_poison_system_directories = TRUE;
-+ break;
- }
- }
+ break;
+ case OPTION_DEPENDENCY_FILE:
--
-2.20.1
+2.28.0
diff --git a/meta/recipes-devtools/binutils/binutils/0010-Change-default-emulation-for-mips64-linux.patch b/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch
index 5f4ac72f48..fb5276e183 100644
--- a/meta/recipes-devtools/binutils/binutils/0010-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 958a49749b772660d3bafb80748829cba6bed065 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 10/15] 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 0e1ddb659c..d4f50f0a8d 100644
+index 14523caf0c5..e5233cd1f7e 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
-@@ -919,12 +919,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*)
@@ -30,27 +30,31 @@ index 0e1ddb659c..d4f50f0a8d 100644
- targ_defvec=mips_elf32_ntrad_be_vec
- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+ targ_defvec=mips_elf64_trad_be_vec
-+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
++ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_be_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
;;
mips*el-*-linux*)
targ_defvec=mips_elf32_trad_le_vec
diff --git a/ld/configure.tgt b/ld/configure.tgt
-index beba17ef51..917be6f8eb 100644
+index 87c7d9a4cad..9b4bf2ca964 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
-@@ -468,11 +468,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmipvxworks
- mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
- targ_extra_emuls="elf32elmipvxworks" ;;
- mips*-*-windiss) targ_emul=elf32mipswindiss ;;
+@@ -531,12 +531,12 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
+ ;;
+ mips*-*-windiss) targ_emul=elf32mipswindiss
+ ;;
-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
+mips64*el-*-linux-*) targ_emul=elf64ltsmip
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
-mips64*-*-linux-*) targ_emul=elf32btsmipn32
- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
+mips64*-*-linux-*) targ_emul=elf64btsmip
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
mips*el-*-linux-*) targ_emul=elf32ltsmip
- targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0011-Add-support-for-Netlogic-XLP.patch b/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch
index 20c5ed6308..277db4ec5c 100644
--- a/meta/recipes-devtools/binutils/binutils/0011-Add-support-for-Netlogic-XLP.patch
+++ b/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch
@@ -1,7 +1,7 @@
-From e4a0cd30c7e9334ed507c93014a8b2d1315ff937 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 11/15] Add support for Netlogic XLP
+Subject: [PATCH 10/17] Add support for Netlogic XLP
Patch From: Nebu Philips <nphilips@netlogicmicro.com>
@@ -26,18 +26,19 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
binutils/readelf.c | 1 +
gas/config/tc-mips.c | 4 +++-
gas/configure | 3 +++
+ gas/configure.ac | 3 +++
include/elf/mips.h | 1 +
include/opcode/mips.h | 6 ++++++
- ld/configure.tgt | 2 ++
+ ld/configure.tgt | 3 +++
opcodes/mips-dis.c | 12 +++++-------
opcodes/mips-opc.c | 31 ++++++++++++++++++++-----------
- 14 files changed, 61 insertions(+), 21 deletions(-)
+ 15 files changed, 65 insertions(+), 21 deletions(-)
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
-index e5d8dcf390..2cc74a2d61 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:
@@ -46,7 +47,7 @@ index e5d8dcf390..2cc74a2d61 100644
arch_flags = M_MIPS2;
break;
diff --git a/bfd/archures.c b/bfd/archures.c
-index 647cf0d8d4..7e1d0c810f 100644
+index 551ec8732f0..2665b378623 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -185,6 +185,7 @@ DESCRIPTION
@@ -58,10 +59,10 @@ index 647cf0d8d4..7e1d0c810f 100644
.#define bfd_mach_mipsisa32r2 33
.#define bfd_mach_mipsisa32r3 34
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
-index e25da50aaf..e251d7e7aa 100644
+index 35ef4d755bb..48db00af80b 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
-@@ -2084,6 +2084,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'. */
@@ -70,10 +71,10 @@ index e25da50aaf..e251d7e7aa 100644
#define bfd_mach_mipsisa32r2 33
#define bfd_mach_mipsisa32r3 34
diff --git a/bfd/config.bfd b/bfd/config.bfd
-index cc65547588..3614ff79d4 100644
+index e5233cd1f7e..2e4ae6bbdff 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
-@@ -902,6 +902,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"
;;
@@ -86,10 +87,10 @@ index cc65547588..3614ff79d4 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 b359491305..61a3e7aaca 100644
+index 802acb45f1e..fd9ec4c0ad4 100644
--- a/bfd/cpu-mips.c
+++ b/bfd/cpu-mips.c
-@@ -107,7 +107,8 @@ enum
+@@ -108,7 +108,8 @@ enum
I_mipsocteon3,
I_xlr,
I_interaptiv_mr2,
@@ -99,21 +100,21 @@ index b359491305..61a3e7aaca 100644
};
#define NN(index) (&arch_info_struct[(index) + 1])
-@@ -162,7 +163,8 @@ static const bfd_arch_info_type arch_info_struct[] =
- N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)),
+@@ -163,7 +164,8 @@ static const bfd_arch_info_type arch_info_struct[] =
+ N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)),
N (32, 32, bfd_mach_mips_interaptiv_mr2, "mips:interaptiv-mr2", FALSE,
NN(I_interaptiv_mr2)),
-- N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0)
-+ N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,NN(I_micromips)),
-+ N (64, 64, bfd_mach_mips_xlp, "mips:xlp", FALSE, 0)
+- N (64, 64, bfd_mach_mips_micromips, "mips:micromips", FALSE, NULL)
++ N (64, 64, bfd_mach_mips_micromips, "mips:micromips", FALSE, NN(I_micromips)),
++ N (64, 64, bfd_mach_mips_xlp, "mips:xlp", FALSE, NULL)
};
/* 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 5998bc43a8..0d5795222b 100644
+index 160febec94c..4c9499cc2cf 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
-@@ -6919,6 +6919,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;
@@ -123,7 +124,7 @@ index 5998bc43a8..0d5795222b 100644
default:
switch (flags & EF_MIPS_ARCH)
{
-@@ -12199,6 +12202,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;
@@ -134,7 +135,7 @@ index 5998bc43a8..0d5795222b 100644
case bfd_mach_mipsisa32:
val = E_MIPS_ARCH_32;
break;
-@@ -14214,6 +14221,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 },
@@ -143,10 +144,10 @@ index 5998bc43a8..0d5795222b 100644
/* MIPS64 extensions. */
{ bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 },
diff --git a/binutils/readelf.c b/binutils/readelf.c
-index b13eb6a43b..9df3742682 100644
+index 6057515a89b..ea119b0b254 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
-@@ -3412,6 +3412,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;
@@ -155,10 +156,10 @@ index b13eb6a43b..9df3742682 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 ae55904229..d6882712f5 100644
+index 31acb77d78a..0ead168d51e 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
-@@ -554,6 +554,7 @@ static int mips_32bitmode = 0;
+@@ -568,6 +568,7 @@ static int mips_32bitmode = 0;
|| mips_opts.arch == CPU_RM7000 \
|| mips_opts.arch == CPU_VR5500 \
|| mips_opts.micromips \
@@ -166,7 +167,7 @@ index ae55904229..d6882712f5 100644
)
/* Whether the processor uses hardware interlocks to protect reads
-@@ -583,6 +584,7 @@ static int mips_32bitmode = 0;
+@@ -597,6 +598,7 @@ static int mips_32bitmode = 0;
&& mips_opts.isa != ISA_MIPS3) \
|| mips_opts.arch == CPU_R4300 \
|| mips_opts.micromips \
@@ -174,31 +175,45 @@ index ae55904229..d6882712f5 100644
)
/* Whether the processor uses hardware interlocks to protect reads
-@@ -19867,7 +19869,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. */
- { "xlp", 0, 0, ISA_MIPS64R2, CPU_XLR },
+ { "xlp", 0, 0, ISA_MIPS64R2, CPU_XLP },
- /* MIPS 64 Release 6 */
- { "i6400", 0, ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6},
+ /* MIPS 64 Release 6. */
+ { "i6400", 0, ASE_VIRT | ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6},
diff --git a/gas/configure b/gas/configure
-index a82fde7fa8..afc77c347a 100755
+index 5bccfd9d1b7..d4b13e6fc8b 100755
--- a/gas/configure
+++ b/gas/configure
-@@ -13364,6 +13364,9 @@ _ACEOF
+@@ -12722,6 +12722,9 @@ _ACEOF
mipsisa64r6 | mipsisa64r6el)
mips_cpu=mips64r6
;;
+ mipsisa64r2nlm | mipsisa64r2nlmel)
-+ mips_cpu=xlp
-+ ;;
++ mips_cpu=xlp
++ ;;
+ mipstx39 | mipstx39el)
+ mips_cpu=r3900
+ ;;
+diff --git a/gas/configure.ac b/gas/configure.ac
+index b65108fecb2..ce1f2dad9bc 100644
+--- a/gas/configure.ac
++++ b/gas/configure.ac
+@@ -325,6 +325,9 @@ changequote([,])dnl
+ mipsisa64r6 | mipsisa64r6el)
+ mips_cpu=mips64r6
+ ;;
++ mipsisa64r2nlm | mipsisa64r2nlmel)
++ mips_cpu=xlp
++ ;;
mipstx39 | mipstx39el)
mips_cpu=r3900
;;
diff --git a/include/elf/mips.h b/include/elf/mips.h
-index b76d450ae2..7cddb365ad 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)
@@ -210,7 +225,7 @@ index b76d450ae2..7cddb365ad 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 abd52c8980..53b6752a1c 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[] = {
@@ -222,7 +237,7 @@ index abd52c8980..53b6752a1c 100644
/* DSP ASE */
#define ASE_DSP 0x00000001
-@@ -1381,6 +1383,7 @@ static const unsigned int mips_isa_table[] = {
+@@ -1384,6 +1386,7 @@ static const unsigned int mips_isa_table[] = {
#define CPU_OCTEON3 6503
#define CPU_XLR 887682 /* decimal 'XLR' */
#define CPU_INTERAPTIV_MR2 736550 /* decimal 'IA2' */
@@ -230,7 +245,7 @@ index abd52c8980..53b6752a1c 100644
/* Return true if the given CPU is included in INSN_* mask MASK. */
-@@ -1458,6 +1461,9 @@ cpu_is_member (int cpu, unsigned int mask)
+@@ -1461,6 +1464,9 @@ cpu_is_member (int cpu, unsigned int mask)
return ((mask & INSN_ISA_MASK) == INSN_ISA32R6)
|| ((mask & INSN_ISA_MASK) == INSN_ISA64R6);
@@ -241,23 +256,24 @@ index abd52c8980..53b6752a1c 100644
return FALSE;
}
diff --git a/ld/configure.tgt b/ld/configure.tgt
-index 917be6f8eb..347df6c3f6 100644
+index 9b4bf2ca964..f6d7171dff7 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
-@@ -454,6 +454,8 @@ mips*el-sde-elf* | mips*el-mti-elf* | mips*el-img-elf*)
- 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" ;;
+ targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
+ ;;
+mipsisa64*-*-elf*) targ_emul=elf32btsmip
-+ targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip" ;;
++ targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
++ ;;
mips64*el-ps2-elf*) targ_emul=elf32lr5900n32
targ_extra_emuls="elf32lr5900"
- targ_extra_libpath=$targ_extra_emuls ;;
+ targ_extra_libpath=$targ_extra_emuls
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
-index 0dd85e3779..1ea708dde7 100644
+index 755bbe294bd..ce22ef683a6 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
-@@ -673,13 +673,11 @@ const struct mips_arch_choice mips_arch_choices[] =
+@@ -674,13 +674,11 @@ const struct mips_arch_choice mips_arch_choices[] =
mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr),
mips_cp1_names_mips3264, mips_hwr_names_numeric },
@@ -277,7 +293,7 @@ index 0dd85e3779..1ea708dde7 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 837da6bd99..d3ea5b8877 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)
@@ -288,7 +304,7 @@ index 837da6bd99..d3ea5b8877 100644
#define IVIRT ASE_VIRT
#define IVIRT64 ASE_VIRT64
-@@ -989,6 +990,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -990,6 +991,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"clo", "U,s", 0x70000021, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
{"clz", "d,s", 0x00000050, 0xfc1f07ff, WR_1|RD_2, 0, I37, 0, 0 },
{"clz", "U,s", 0x70000020, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
@@ -296,7 +312,7 @@ index 837da6bd99..d3ea5b8877 100644
/* ctc0 is at the bottom of the table. */
{"ctc1", "t,G", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
{"ctc1", "t,S", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
-@@ -1021,12 +1023,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1022,12 +1024,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"daddiu", "t,r,j", 0x64000000, 0xfc000000, WR_1|RD_2, 0, I3, 0, 0 },
{"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I3, 0, 0 },
{"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, 0, I3, 0, 0 },
@@ -311,7 +327,7 @@ index 837da6bd99..d3ea5b8877 100644
/* dctr and dctw are used on the r5000. */
{"dctr", "o(b)", 0xbc050000, 0xfc1f0000, RD_2, 0, I3, 0, 0 },
{"dctw", "o(b)", 0xbc090000, 0xfc1f0000, RD_2, 0, I3, 0, 0 },
-@@ -1098,6 +1101,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1099,6 +1102,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, WR_1|RD_C0|LC, 0, I64, 0, 0 },
{"dmfgc0", "t,G", 0x40600100, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
{"dmfgc0", "t,G,H", 0x40600100, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
@@ -319,7 +335,7 @@ index 837da6bd99..d3ea5b8877 100644
{"dmt", "", 0x41600bc1, 0xffffffff, TRAP, 0, 0, MT32, 0 },
{"dmt", "t", 0x41600bc1, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 },
{"dmtc0", "t,G", 0x40a00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, I3, 0, EE },
-@@ -1113,6 +1117,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1114,6 +1118,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
/* dmfc3 is at the bottom of the table. */
/* dmtc3 is at the bottom of the table. */
{"dmuh", "d,s,t", 0x000000dc, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
@@ -328,7 +344,7 @@ index 837da6bd99..d3ea5b8877 100644
{"dmul", "d,s,t", 0x0000009c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
{"dmul", "d,v,t", 0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0, IOCT, 0, 0 },
{"dmul", "d,v,t", 0, (int) M_DMUL, INSN_MACRO, 0, I3, 0, M32|I69 },
-@@ -1266,9 +1272,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1267,9 +1273,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"ld", "s,-b(+R)", 0xec180000, 0xfc1c0000, WR_1, RD_pc, I69, 0, 0 },
{"ld", "t,A(b)", 0, (int) M_LD_AB, INSN_MACRO, 0, I1, 0, 0 },
{"ld", "t,o(b)", 0xdc000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, 0 },
@@ -341,7 +357,7 @@ index 837da6bd99..d3ea5b8877 100644
{"ldc1", "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF },
{"ldc1", "E,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF },
{"ldc1", "T,A(b)", 0, (int) M_LDC1_AB, INSN_MACRO, INSN2_M_FP_D, I2, 0, SF },
-@@ -1433,7 +1439,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1438,7 +1444,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"mflo", "d,9", 0x00000012, 0xff9f07ff, WR_1|RD_LO, 0, 0, D32, 0 },
{"mflo1", "d", 0x70000012, 0xffff07ff, WR_1|RD_LO, 0, EE, 0, 0 },
{"mflhxu", "d", 0x00000052, 0xffff07ff, WR_1|MOD_HILO, 0, 0, SMT, 0 },
@@ -350,7 +366,7 @@ index 837da6bd99..d3ea5b8877 100644
{"mfsa", "d", 0x00000028, 0xffff07ff, WR_1, 0, EE, 0, 0 },
{"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 },
{"min.ob", "D,S,Q", 0x48000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, N54, 0, 0 },
-@@ -1478,10 +1484,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1483,10 +1489,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
/* move is at the top of the table. */
{"msgn.qh", "X,Y,Q", 0x78200000, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, 0, MX, 0 },
{"msgsnd", "t", 0, (int) M_MSGSND, INSN_MACRO, 0, XLR, 0, 0 },
@@ -366,7 +382,7 @@ index 837da6bd99..d3ea5b8877 100644
{"msub.d", "D,R,S,T", 0x4c000029, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I4_33, 0, I37 },
{"msub.d", "D,S,T", 0x46200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 },
{"msub.d", "D,S,T", 0x72200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2F, 0, 0 },
-@@ -1531,7 +1540,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1536,7 +1545,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"mtlo", "s,7", 0x00000013, 0xfc1fe7ff, RD_1|WR_LO, 0, 0, D32, 0 },
{"mtlo1", "s", 0x70000013, 0xfc1fffff, RD_1|WR_LO, 0, EE, 0, 0 },
{"mtlhx", "s", 0x00000053, 0xfc1fffff, RD_1|MOD_HILO, 0, 0, SMT, 0 },
@@ -375,7 +391,7 @@ index 837da6bd99..d3ea5b8877 100644
{"mtm0", "s", 0x70000008, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
{"mtm0", "s,t", 0x70000008, 0xfc00ffff, RD_1|RD_2, 0, IOCT3, 0, 0 },
{"mtm1", "s", 0x7000000c, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
-@@ -1968,9 +1977,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1978,9 +1987,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0, I5_33|N55, 0, I37},
{"sw", "t,o(b)", 0xac000000, 0xfc000000, RD_1|RD_3|SM, 0, I1, 0, 0 },
{"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, 0, I1, 0, 0 },
@@ -389,5 +405,5 @@ index 837da6bd99..d3ea5b8877 100644
{"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.20.1
+2.28.0
diff --git a/meta/recipes-devtools/binutils/binutils/0012-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
index 6a3b78f227..10c3d80865 100644
--- a/meta/recipes-devtools/binutils/binutils/0012-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
@@ -1,36 +1,37 @@
-From e48767a0298e6ccf53d83fecc93bb6d26b595897 Mon Sep 17 00:00:00 2001
+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 12/15] fix the incorrect assembling for ppc wait mnemonic
+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 | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
+ 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 3032631d4e..142f096ef4 100644
+index 5e20d617664..4c9656ecf08 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
-@@ -5325,7 +5325,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
-
+@@ -6265,8 +6265,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
--{"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}},
+ {"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}},
-@@ -5379,7 +5378,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+@@ -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, 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.20.1
+2.28.0
diff --git a/meta/recipes-devtools/binutils/binutils/0013-Detect-64-bit-MIPS-targets.patch b/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch
index d929179de2..ef8b253b6a 100644
--- a/meta/recipes-devtools/binutils/binutils/0013-Detect-64-bit-MIPS-targets.patch
+++ b/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch
@@ -1,7 +1,7 @@
-From 6587e7b8e7730dda20d8c47cabe9f7f8397efa3c 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 13/15] 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 3e066edaa8..caf130ceda 100644
+index aa7ec552aec..470515062e4 100644
--- a/gold/configure.tgt
+++ b/gold/configure.tgt
@@ -153,6 +153,13 @@ aarch64*-*)
@@ -46,5 +46,5 @@ index 3e066edaa8..caf130ceda 100644
targ_obj=mips
targ_machine=EM_MIPS
--
-2.20.1
+2.28.0
diff --git a/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch b/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch
index f0c4d251bd..987a96f4b7 100644
--- a/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch
+++ b/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch
@@ -1,7 +1,7 @@
-From 418527a2971d4e77a87085400397090d89fc5c94 Mon Sep 17 00:00:00 2001
+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 06/15] Use libtool 2.4
+Subject: [PATCH 13/17] Use libtool 2.4
get libtool sysroot support
@@ -9,24 +9,24 @@ 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 | 1321 ++++++++++++++-----
- ld/configure | 1695 ++++++++++++++++++------
- libtool.m4 | 1080 +++++++++++-----
- ltmain.sh | 2925 ++++++++++++++++++++++++++++--------------
- ltoptions.m4 | 2 +-
- ltversion.m4 | 12 +-
- lt~obsolete.m4 | 2 +-
- opcodes/configure | 1322 ++++++++++++++-----
- opcodes/configure.ac | 2 +-
- zlib/configure | 1320 ++++++++++++++-----
- 14 files changed, 9940 insertions(+), 3705 deletions(-)
+ 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 17960684f8..925fb401f2 100755
+index 0340ed541b5..2012656b3b7 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -704,6 +704,9 @@ OTOOL
@@ -1351,7 +1351,7 @@ index 17960684f8..925fb401f2 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -14525,7 +15180,7 @@ SHARED_LDFLAGS=
+@@ -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
@@ -1359,8 +1359,8 @@ index 17960684f8..925fb401f2 100755
+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a"
fi
- # More hacks to build DLLs on Windows.
-@@ -17142,13 +17797,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ 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"`'
@@ -1381,7 +1381,7 @@ index 17960684f8..925fb401f2 100755
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"`'
-@@ -17163,14 +17825,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -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"`'
@@ -1400,7 +1400,7 @@ index 17960684f8..925fb401f2 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -17203,12 +17868,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -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"`'
@@ -1414,7 +1414,7 @@ index 17960684f8..925fb401f2 100755
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"`'
-@@ -17263,8 +17928,13 @@ reload_flag \
+@@ -17318,8 +17983,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -1428,7 +1428,7 @@ index 17960684f8..925fb401f2 100755
STRIP \
RANLIB \
CC \
-@@ -17274,12 +17944,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -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 \
@@ -1444,7 +1444,7 @@ index 17960684f8..925fb401f2 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -17295,7 +17967,6 @@ no_undefined_flag \
+@@ -17350,7 +18022,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -1452,7 +1452,7 @@ index 17960684f8..925fb401f2 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -17331,6 +18002,7 @@ module_cmds \
+@@ -17386,6 +18057,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -1460,7 +1460,7 @@ index 17960684f8..925fb401f2 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -18119,7 +18791,8 @@ $as_echo X"$file" |
+@@ -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,
@@ -1470,7 +1470,7 @@ index 17960684f8..925fb401f2 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -18222,19 +18895,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -18277,19 +18950,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -1514,7 +1514,7 @@ index 17960684f8..925fb401f2 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -18264,6 +18960,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -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
@@ -1527,7 +1527,7 @@ index 17960684f8..925fb401f2 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -18273,6 +18975,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -18328,6 +19030,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -1537,7 +1537,7 @@ index 17960684f8..925fb401f2 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -18387,12 +19092,12 @@ with_gcc=$GCC
+@@ -18442,12 +19147,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -1553,7 +1553,7 @@ index 17960684f8..925fb401f2 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -18479,9 +19184,6 @@ inherit_rpath=$inherit_rpath
+@@ -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
@@ -1563,7 +1563,7 @@ index 17960684f8..925fb401f2 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -18497,6 +19199,9 @@ include_expsyms=$lt_include_expsyms
+@@ -18552,6 +19254,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -1573,7 +1573,7 @@ index 17960684f8..925fb401f2 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -18529,210 +19234,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -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?
@@ -1948,10 +1948,10 @@ index 17960684f8..925fb401f2 100755
chmod +x "$ofile"
diff --git a/bfd/configure.ac b/bfd/configure.ac
-index eda38ea086..7cdf9c8146 100644
+index 8e86f8399ce..e8700c9d4d2 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
-@@ -293,7 +293,7 @@ changequote(,)dnl
+@@ -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
@@ -1959,12 +1959,12 @@ index eda38ea086..7cdf9c8146 100644
+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a"
fi
- # More hacks to build DLLs on Windows.
+ case "${host}" in
diff --git a/binutils/configure b/binutils/configure
-index 38128e146d..c74f797996 100755
+index 89c99abfeba..d3289a5efcd 100755
--- a/binutils/configure
+++ b/binutils/configure
-@@ -689,8 +689,11 @@ OTOOL
+@@ -692,8 +692,11 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
@@ -1976,7 +1976,7 @@ index 38128e146d..c74f797996 100755
OBJDUMP
LN_S
NM
-@@ -807,6 +810,7 @@ enable_static
+@@ -810,6 +813,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -1984,16 +1984,16 @@ index 38128e146d..c74f797996 100755
enable_libtool_lock
enable_plugins
enable_largefile
-@@ -1483,6 +1487,8 @@ Optional Packages:
+@@ -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
- --with-gnu-ld assume the C compiler uses GNU ld default=no
- --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
-@@ -5457,8 +5463,8 @@ esac
+@@ -5467,8 +5473,8 @@ esac
@@ -2004,7 +2004,7 @@ index 38128e146d..c74f797996 100755
-@@ -5498,7 +5504,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -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.
@@ -2013,7 +2013,7 @@ index 38128e146d..c74f797996 100755
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
-@@ -6184,8 +6190,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -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"
@@ -2024,7 +2024,7 @@ index 38128e146d..c74f797996 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -6234,6 +6240,80 @@ esac
+@@ -6244,6 +6250,80 @@ esac
@@ -2105,7 +2105,7 @@ index 38128e146d..c74f797996 100755
{ $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 :
-@@ -6250,6 +6330,11 @@ case $reload_flag in
+@@ -6260,6 +6340,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -2117,7 +2117,7 @@ index 38128e146d..c74f797996 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6418,7 +6503,8 @@ mingw* | pw32*)
+@@ -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
@@ -2127,7 +2127,7 @@ index 38128e146d..c74f797996 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -6572,6 +6658,21 @@ esac
+@@ -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; }
@@ -2149,7 +2149,7 @@ index 38128e146d..c74f797996 100755
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
-@@ -6587,9 +6688,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6597,9 +6698,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -2314,7 +2314,7 @@ index 38128e146d..c74f797996 100755
{ $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 :
-@@ -6605,7 +6859,7 @@ do
+@@ -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
@@ -2323,7 +2323,7 @@ index 38128e146d..c74f797996 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6625,11 +6879,15 @@ $as_echo "no" >&6; }
+@@ -6635,11 +6889,15 @@ $as_echo "no" >&6; }
fi
@@ -2342,7 +2342,7 @@ index 38128e146d..c74f797996 100755
{ $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 :
-@@ -6645,7 +6903,7 @@ do
+@@ -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
@@ -2351,7 +2351,7 @@ index 38128e146d..c74f797996 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6664,6 +6922,10 @@ else
+@@ -6674,6 +6932,10 @@ else
$as_echo "no" >&6; }
fi
@@ -2362,7 +2362,7 @@ index 38128e146d..c74f797996 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6675,12 +6937,10 @@ ac_tool_warned=yes ;;
+@@ -6685,12 +6947,10 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -2377,7 +2377,7 @@ index 38128e146d..c74f797996 100755
-@@ -6692,6 +6952,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+@@ -6702,6 +6962,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -2442,7 +2442,7 @@ index 38128e146d..c74f797996 100755
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
-@@ -7026,8 +7344,8 @@ esac
+@@ -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
@@ -2453,7 +2453,7 @@ index 38128e146d..c74f797996 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -7063,6 +7381,7 @@ for ac_symprfx in "" "_"; do
+@@ -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
@@ -2461,7 +2461,7 @@ index 38128e146d..c74f797996 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -7104,6 +7423,18 @@ _LT_EOF
+@@ -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
@@ -2480,7 +2480,7 @@ index 38128e146d..c74f797996 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -7115,7 +7446,7 @@ _LT_EOF
+@@ -7125,7 +7456,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -2489,7 +2489,7 @@ index 38128e146d..c74f797996 100755
const char *name;
void *address;
}
-@@ -7141,8 +7472,8 @@ static const void *lt_preloaded_setup() {
+@@ -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
@@ -2500,7 +2500,7 @@ index 38128e146d..c74f797996 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7152,8 +7483,8 @@ _LT_EOF
+@@ -7162,8 +7493,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -2511,7 +2511,7 @@ index 38128e146d..c74f797996 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -7190,6 +7521,21 @@ else
+@@ -7200,6 +7531,21 @@ else
$as_echo "ok" >&6; }
fi
@@ -2533,7 +2533,7 @@ index 38128e146d..c74f797996 100755
-@@ -7206,6 +7552,40 @@ fi
+@@ -7216,6 +7562,40 @@ fi
@@ -2574,7 +2574,7 @@ index 38128e146d..c74f797996 100755
-@@ -7417,6 +7797,123 @@ esac
+@@ -7427,6 +7807,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -2698,7 +2698,7 @@ index 38128e146d..c74f797996 100755
case $host_os in
rhapsody* | darwin*)
-@@ -7980,6 +8477,8 @@ _LT_EOF
+@@ -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
@@ -2707,7 +2707,7 @@ index 38128e146d..c74f797996 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -8175,7 +8674,8 @@ fi
+@@ -8185,7 +8684,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -2717,7 +2717,7 @@ index 38128e146d..c74f797996 100755
-@@ -8264,7 +8764,7 @@ aix3*)
+@@ -8274,7 +8774,7 @@ aix3*)
esac
# Global variables:
@@ -2726,7 +2726,7 @@ index 38128e146d..c74f797996 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -8562,8 +9062,6 @@ fi
+@@ -8572,8 +9072,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -2735,7 +2735,7 @@ index 38128e146d..c74f797996 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8729,6 +9227,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -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'
;;
@@ -2748,7 +2748,7 @@ index 38128e146d..c74f797996 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8791,7 +9295,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -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
@@ -2757,7 +2757,7 @@ index 38128e146d..c74f797996 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -8848,13 +9352,17 @@ case $host_os in
+@@ -8858,13 +9362,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -2781,7 +2781,7 @@ index 38128e146d..c74f797996 100755
#
# Check to make sure the PIC flag actually works.
-@@ -8915,6 +9423,11 @@ fi
+@@ -8925,6 +9433,11 @@ fi
@@ -2793,7 +2793,7 @@ index 38128e146d..c74f797996 100755
#
# Check to make sure the static flag actually works.
#
-@@ -9265,7 +9778,8 @@ _LT_EOF
+@@ -9275,7 +9788,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -2803,7 +2803,7 @@ index 38128e146d..c74f797996 100755
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'
-@@ -9364,12 +9878,12 @@ _LT_EOF
+@@ -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'
@@ -2818,7 +2818,7 @@ index 38128e146d..c74f797996 100755
fi
;;
esac
-@@ -9383,8 +9897,8 @@ _LT_EOF
+@@ -9393,8 +9907,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -2829,7 +2829,7 @@ index 38128e146d..c74f797996 100755
fi
;;
-@@ -9402,8 +9916,8 @@ _LT_EOF
+@@ -9412,8 +9926,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -2840,7 +2840,7 @@ index 38128e146d..c74f797996 100755
else
ld_shlibs=no
fi
-@@ -9449,8 +9963,8 @@ _LT_EOF
+@@ -9459,8 +9973,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -2851,7 +2851,7 @@ index 38128e146d..c74f797996 100755
else
ld_shlibs=no
fi
-@@ -9580,7 +10094,13 @@ _LT_EOF
+@@ -9590,7 +10104,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -2866,7 +2866,7 @@ index 38128e146d..c74f797996 100755
/* end confdefs.h. */
int
-@@ -9593,22 +10113,29 @@ main ()
+@@ -9603,22 +10123,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -2909,7 +2909,7 @@ index 38128e146d..c74f797996 100755
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"
-@@ -9620,7 +10147,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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.
@@ -2924,7 +2924,7 @@ index 38128e146d..c74f797996 100755
/* end confdefs.h. */
int
-@@ -9633,22 +10166,29 @@ main ()
+@@ -9643,22 +10176,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -2967,7 +2967,7 @@ index 38128e146d..c74f797996 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9693,20 +10233,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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.
@@ -3045,7 +3045,7 @@ index 38128e146d..c74f797996 100755
;;
darwin* | rhapsody*)
-@@ -9767,7 +10350,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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*)
@@ -3054,7 +3054,7 @@ index 38128e146d..c74f797996 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9775,7 +10358,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9785,7 +10368,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -3063,7 +3063,7 @@ index 38128e146d..c74f797996 100755
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
-@@ -9791,7 +10374,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/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
@@ -3072,7 +3072,7 @@ index 38128e146d..c74f797996 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -9815,10 +10398,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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*)
@@ -3085,7 +3085,7 @@ index 38128e146d..c74f797996 100755
;;
esac
else
-@@ -9897,23 +10480,36 @@ fi
+@@ -9907,23 +10490,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -3130,7 +3130,7 @@ index 38128e146d..c74f797996 100755
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'
-@@ -9998,7 +10594,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -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}\*'
@@ -3139,7 +3139,7 @@ index 38128e146d..c74f797996 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -10017,9 +10613,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10027,9 +10623,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -3151,7 +3151,7 @@ index 38128e146d..c74f797996 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -10595,8 +11191,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10605,8 +11201,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -3163,7 +3163,7 @@ index 38128e146d..c74f797996 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10629,13 +11226,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -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
@@ -3236,7 +3236,7 @@ index 38128e146d..c74f797996 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10727,7 +11382,7 @@ haiku*)
+@@ -10737,7 +11392,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -3245,16 +3245,16 @@ index 38128e146d..c74f797996 100755
hardcode_into_libs=yes
;;
-@@ -11523,7 +12178,7 @@ else
+@@ -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 11526 "configure"
+-#line 11536 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-@@ -11567,10 +12222,10 @@ else
+@@ -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))
@@ -3267,16 +3267,16 @@ index 38128e146d..c74f797996 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11629,7 +12284,7 @@ else
+@@ -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 11632 "configure"
+-#line 11642 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-@@ -11673,10 +12328,10 @@ else
+@@ -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))
@@ -3289,7 +3289,7 @@ index 38128e146d..c74f797996 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -15936,13 +16591,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -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"`'
@@ -3310,7 +3310,7 @@ index 38128e146d..c74f797996 100755
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"`'
-@@ -15957,14 +16619,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -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"`'
@@ -3329,7 +3329,7 @@ index 38128e146d..c74f797996 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -15997,12 +16662,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -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"`'
@@ -3343,7 +3343,7 @@ index 38128e146d..c74f797996 100755
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"`'
-@@ -16057,8 +16722,13 @@ reload_flag \
+@@ -16197,8 +16862,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -3357,7 +3357,7 @@ index 38128e146d..c74f797996 100755
STRIP \
RANLIB \
CC \
-@@ -16068,12 +16738,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -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 \
@@ -3373,7 +3373,7 @@ index 38128e146d..c74f797996 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -16089,7 +16761,6 @@ no_undefined_flag \
+@@ -16229,7 +16901,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -3381,7 +3381,7 @@ index 38128e146d..c74f797996 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -16125,6 +16796,7 @@ module_cmds \
+@@ -16265,6 +16936,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -3389,7 +3389,7 @@ index 38128e146d..c74f797996 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -16891,7 +17563,8 @@ $as_echo X"$file" |
+@@ -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,
@@ -3399,7 +3399,7 @@ index 38128e146d..c74f797996 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -16994,19 +17667,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -17134,19 +17807,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -3443,7 +3443,7 @@ index 38128e146d..c74f797996 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -17036,6 +17732,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -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
@@ -3456,7 +3456,7 @@ index 38128e146d..c74f797996 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -17045,6 +17747,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -17185,6 +17887,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -3466,7 +3466,7 @@ index 38128e146d..c74f797996 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -17159,12 +17864,12 @@ with_gcc=$GCC
+@@ -17299,12 +18004,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -3482,7 +3482,7 @@ index 38128e146d..c74f797996 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -17251,9 +17956,6 @@ inherit_rpath=$inherit_rpath
+@@ -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
@@ -3492,7 +3492,7 @@ index 38128e146d..c74f797996 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -17269,6 +17971,9 @@ include_expsyms=$lt_include_expsyms
+@@ -17409,6 +18111,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -3502,7 +3502,7 @@ index 38128e146d..c74f797996 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -17301,210 +18006,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -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?
@@ -3877,7 +3877,7 @@ index 38128e146d..c74f797996 100755
chmod +x "$ofile"
diff --git a/gas/configure b/gas/configure
-index 64de9f19da..a82fde7fa8 100755
+index d4b13e6fc8b..dd5224c5c81 100755
--- a/gas/configure
+++ b/gas/configure
@@ -681,8 +681,11 @@ OTOOL
@@ -3900,7 +3900,7 @@ index 64de9f19da..a82fde7fa8 100755
enable_libtool_lock
enable_plugins
enable_largefile
-@@ -1487,6 +1491,8 @@ Optional Packages:
+@@ -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]
@@ -3909,7 +3909,7 @@ index 64de9f19da..a82fde7fa8 100755
--with-cpu=CPU default cpu variant is CPU (currently only supported
on ARC)
--with-system-zlib use installed libz
-@@ -5274,8 +5280,8 @@ esac
+@@ -5277,8 +5283,8 @@ esac
@@ -3920,7 +3920,7 @@ index 64de9f19da..a82fde7fa8 100755
-@@ -5315,7 +5321,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -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.
@@ -3929,7 +3929,7 @@ index 64de9f19da..a82fde7fa8 100755
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
-@@ -6001,8 +6007,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -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"
@@ -3940,7 +3940,7 @@ index 64de9f19da..a82fde7fa8 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -6051,6 +6057,80 @@ esac
+@@ -6054,6 +6060,80 @@ esac
@@ -4021,7 +4021,7 @@ index 64de9f19da..a82fde7fa8 100755
{ $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 :
-@@ -6067,6 +6147,11 @@ case $reload_flag in
+@@ -6070,6 +6150,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -4033,7 +4033,7 @@ index 64de9f19da..a82fde7fa8 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6235,7 +6320,8 @@ mingw* | pw32*)
+@@ -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
@@ -4043,7 +4043,7 @@ index 64de9f19da..a82fde7fa8 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -6389,6 +6475,21 @@ esac
+@@ -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; }
@@ -4065,7 +4065,7 @@ index 64de9f19da..a82fde7fa8 100755
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
-@@ -6404,9 +6505,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6407,9 +6508,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -4230,7 +4230,7 @@ index 64de9f19da..a82fde7fa8 100755
{ $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 :
-@@ -6422,7 +6676,7 @@ do
+@@ -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
@@ -4239,7 +4239,7 @@ index 64de9f19da..a82fde7fa8 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6442,11 +6696,15 @@ $as_echo "no" >&6; }
+@@ -6445,11 +6699,15 @@ $as_echo "no" >&6; }
fi
@@ -4258,7 +4258,7 @@ index 64de9f19da..a82fde7fa8 100755
{ $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 :
-@@ -6462,7 +6720,7 @@ do
+@@ -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
@@ -4267,7 +4267,7 @@ index 64de9f19da..a82fde7fa8 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6481,6 +6739,10 @@ else
+@@ -6484,6 +6742,10 @@ else
$as_echo "no" >&6; }
fi
@@ -4278,7 +4278,7 @@ index 64de9f19da..a82fde7fa8 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6492,12 +6754,10 @@ ac_tool_warned=yes ;;
+@@ -6495,12 +6757,10 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -4293,7 +4293,7 @@ index 64de9f19da..a82fde7fa8 100755
-@@ -6509,6 +6769,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+@@ -6512,6 +6772,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -4358,7 +4358,7 @@ index 64de9f19da..a82fde7fa8 100755
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
-@@ -6843,8 +7161,8 @@ esac
+@@ -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
@@ -4369,7 +4369,7 @@ index 64de9f19da..a82fde7fa8 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -6880,6 +7198,7 @@ for ac_symprfx in "" "_"; do
+@@ -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
@@ -4377,7 +4377,7 @@ index 64de9f19da..a82fde7fa8 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -6921,6 +7240,18 @@ _LT_EOF
+@@ -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
@@ -4396,7 +4396,7 @@ index 64de9f19da..a82fde7fa8 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -6932,7 +7263,7 @@ _LT_EOF
+@@ -6935,7 +7266,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -4405,7 +4405,7 @@ index 64de9f19da..a82fde7fa8 100755
const char *name;
void *address;
}
-@@ -6958,8 +7289,8 @@ static const void *lt_preloaded_setup() {
+@@ -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
@@ -4416,7 +4416,7 @@ index 64de9f19da..a82fde7fa8 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -6969,8 +7300,8 @@ _LT_EOF
+@@ -6972,8 +7303,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -4427,7 +4427,7 @@ index 64de9f19da..a82fde7fa8 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -7007,6 +7338,21 @@ else
+@@ -7010,6 +7341,21 @@ else
$as_echo "ok" >&6; }
fi
@@ -4449,7 +4449,7 @@ index 64de9f19da..a82fde7fa8 100755
-@@ -7023,6 +7369,40 @@ fi
+@@ -7026,6 +7372,40 @@ fi
@@ -4490,7 +4490,7 @@ index 64de9f19da..a82fde7fa8 100755
-@@ -7234,6 +7614,123 @@ esac
+@@ -7237,6 +7617,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -4614,7 +4614,7 @@ index 64de9f19da..a82fde7fa8 100755
case $host_os in
rhapsody* | darwin*)
-@@ -7797,6 +8294,8 @@ _LT_EOF
+@@ -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
@@ -4623,7 +4623,7 @@ index 64de9f19da..a82fde7fa8 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -7992,7 +8491,8 @@ fi
+@@ -7995,7 +8494,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -4633,7 +4633,7 @@ index 64de9f19da..a82fde7fa8 100755
-@@ -8081,7 +8581,7 @@ aix3*)
+@@ -8084,7 +8584,7 @@ aix3*)
esac
# Global variables:
@@ -4642,7 +4642,7 @@ index 64de9f19da..a82fde7fa8 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -8379,8 +8879,6 @@ fi
+@@ -8382,8 +8882,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -4651,7 +4651,7 @@ index 64de9f19da..a82fde7fa8 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8546,6 +9044,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -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'
;;
@@ -4664,7 +4664,7 @@ index 64de9f19da..a82fde7fa8 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8608,7 +9112,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -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
@@ -4673,7 +4673,7 @@ index 64de9f19da..a82fde7fa8 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -8665,13 +9169,17 @@ case $host_os in
+@@ -8668,13 +9172,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -4697,7 +4697,7 @@ index 64de9f19da..a82fde7fa8 100755
#
# Check to make sure the PIC flag actually works.
-@@ -8732,6 +9240,11 @@ fi
+@@ -8735,6 +9243,11 @@ fi
@@ -4709,7 +4709,7 @@ index 64de9f19da..a82fde7fa8 100755
#
# Check to make sure the static flag actually works.
#
-@@ -9082,7 +9595,8 @@ _LT_EOF
+@@ -9085,7 +9598,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -4719,7 +4719,7 @@ index 64de9f19da..a82fde7fa8 100755
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'
-@@ -9181,12 +9695,12 @@ _LT_EOF
+@@ -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'
@@ -4734,7 +4734,7 @@ index 64de9f19da..a82fde7fa8 100755
fi
;;
esac
-@@ -9200,8 +9714,8 @@ _LT_EOF
+@@ -9203,8 +9717,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -4745,7 +4745,7 @@ index 64de9f19da..a82fde7fa8 100755
fi
;;
-@@ -9219,8 +9733,8 @@ _LT_EOF
+@@ -9222,8 +9736,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -4756,7 +4756,7 @@ index 64de9f19da..a82fde7fa8 100755
else
ld_shlibs=no
fi
-@@ -9266,8 +9780,8 @@ _LT_EOF
+@@ -9269,8 +9783,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -4767,7 +4767,7 @@ index 64de9f19da..a82fde7fa8 100755
else
ld_shlibs=no
fi
-@@ -9397,7 +9911,13 @@ _LT_EOF
+@@ -9400,7 +9914,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -4782,7 +4782,7 @@ index 64de9f19da..a82fde7fa8 100755
/* end confdefs.h. */
int
-@@ -9410,22 +9930,29 @@ main ()
+@@ -9413,22 +9933,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -4825,7 +4825,7 @@ index 64de9f19da..a82fde7fa8 100755
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"
-@@ -9437,7 +9964,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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.
@@ -4840,7 +4840,7 @@ index 64de9f19da..a82fde7fa8 100755
/* end confdefs.h. */
int
-@@ -9450,22 +9983,29 @@ main ()
+@@ -9453,22 +9986,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -4883,7 +4883,7 @@ index 64de9f19da..a82fde7fa8 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9510,20 +10050,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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.
@@ -4961,7 +4961,7 @@ index 64de9f19da..a82fde7fa8 100755
;;
darwin* | rhapsody*)
-@@ -9584,7 +10167,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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*)
@@ -4970,7 +4970,7 @@ index 64de9f19da..a82fde7fa8 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9592,7 +10175,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9595,7 +10178,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -4979,7 +4979,7 @@ index 64de9f19da..a82fde7fa8 100755
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
-@@ -9608,7 +10191,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/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
@@ -4988,7 +4988,7 @@ index 64de9f19da..a82fde7fa8 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -9632,10 +10215,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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*)
@@ -5001,7 +5001,7 @@ index 64de9f19da..a82fde7fa8 100755
;;
esac
else
-@@ -9714,23 +10297,36 @@ fi
+@@ -9717,23 +10300,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -5046,7 +5046,7 @@ index 64de9f19da..a82fde7fa8 100755
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'
-@@ -9815,7 +10411,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -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}\*'
@@ -5055,7 +5055,7 @@ index 64de9f19da..a82fde7fa8 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -9834,9 +10430,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9837,9 +10433,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -5067,7 +5067,7 @@ index 64de9f19da..a82fde7fa8 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -10412,8 +11008,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10415,8 +11011,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -5079,7 +5079,7 @@ index 64de9f19da..a82fde7fa8 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10446,13 +11043,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -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
@@ -5152,7 +5152,7 @@ index 64de9f19da..a82fde7fa8 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10544,7 +11199,7 @@ haiku*)
+@@ -10547,7 +11202,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -5161,16 +5161,16 @@ index 64de9f19da..a82fde7fa8 100755
hardcode_into_libs=yes
;;
-@@ -11340,7 +11995,7 @@ else
+@@ -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 11343 "configure"
+-#line 11346 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-@@ -11384,10 +12039,10 @@ else
+@@ -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))
@@ -5183,16 +5183,16 @@ index 64de9f19da..a82fde7fa8 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11446,7 +12101,7 @@ else
+@@ -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 11449 "configure"
+-#line 11452 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-@@ -11490,10 +12145,10 @@ else
+@@ -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))
@@ -5205,7 +5205,7 @@ index 64de9f19da..a82fde7fa8 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -15896,13 +16551,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -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"`'
@@ -5226,7 +5226,7 @@ index 64de9f19da..a82fde7fa8 100755
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"`'
-@@ -15917,14 +16579,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -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"`'
@@ -5245,7 +5245,7 @@ index 64de9f19da..a82fde7fa8 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -15957,12 +16622,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -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"`'
@@ -5259,7 +5259,7 @@ index 64de9f19da..a82fde7fa8 100755
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"`'
-@@ -16017,8 +16682,13 @@ reload_flag \
+@@ -16102,8 +16767,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -5273,7 +5273,7 @@ index 64de9f19da..a82fde7fa8 100755
STRIP \
RANLIB \
CC \
-@@ -16028,12 +16698,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -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 \
@@ -5289,7 +5289,7 @@ index 64de9f19da..a82fde7fa8 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -16049,7 +16721,6 @@ no_undefined_flag \
+@@ -16134,7 +16806,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -5297,7 +5297,7 @@ index 64de9f19da..a82fde7fa8 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -16085,6 +16756,7 @@ module_cmds \
+@@ -16170,6 +16841,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -5305,7 +5305,7 @@ index 64de9f19da..a82fde7fa8 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -16858,7 +17530,8 @@ $as_echo X"$file" |
+@@ -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,
@@ -5315,7 +5315,7 @@ index 64de9f19da..a82fde7fa8 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -16961,19 +17634,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -17046,19 +17719,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -5359,7 +5359,7 @@ index 64de9f19da..a82fde7fa8 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -17003,6 +17699,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -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
@@ -5372,7 +5372,7 @@ index 64de9f19da..a82fde7fa8 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -17012,6 +17714,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -17097,6 +17799,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -5382,7 +5382,7 @@ index 64de9f19da..a82fde7fa8 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -17126,12 +17831,12 @@ with_gcc=$GCC
+@@ -17211,12 +17916,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -5398,7 +5398,7 @@ index 64de9f19da..a82fde7fa8 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -17218,9 +17923,6 @@ inherit_rpath=$inherit_rpath
+@@ -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
@@ -5408,7 +5408,7 @@ index 64de9f19da..a82fde7fa8 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -17236,6 +17938,9 @@ include_expsyms=$lt_include_expsyms
+@@ -17321,6 +18023,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -5418,7 +5418,7 @@ index 64de9f19da..a82fde7fa8 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -17268,210 +17973,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -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?
@@ -5793,7 +5793,7 @@ index 64de9f19da..a82fde7fa8 100755
chmod +x "$ofile"
diff --git a/gprof/configure b/gprof/configure
-index ab32bab2b6..5119c6019f 100755
+index 3cf41b79116..e5d57f52912 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -662,8 +662,11 @@ OTOOL
@@ -5862,7 +5862,7 @@ index ab32bab2b6..5119c6019f 100755
+{ $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 test "${lt_cv_to_host_file_cmd+set}" = set; then :
++if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
@@ -5909,7 +5909,7 @@ index ab32bab2b6..5119c6019f 100755
+
+{ $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 test "${lt_cv_to_tool_file_cmd+set}" = set; then :
++if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
@@ -5959,19 +5959,7 @@ index ab32bab2b6..5119c6019f 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -6162,11 +6248,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
--linux-uclibc*)
-- lt_cv_deplibs_check_method=pass_all
-- lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-- ;;
--
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-@@ -6244,6 +6325,21 @@ esac
+@@ -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; }
@@ -5993,7 +5981,7 @@ index ab32bab2b6..5119c6019f 100755
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
-@@ -6257,11 +6353,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6252,11 +6353,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -6016,7 +6004,7 @@ index ab32bab2b6..5119c6019f 100755
+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 test "${ac_cv_prog_DLLTOOL+set}" = set; then :
++if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
@@ -6028,7 +6016,7 @@ index ab32bab2b6..5119c6019f 100755
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ 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
@@ -6056,7 +6044,7 @@ index ab32bab2b6..5119c6019f 100755
+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 test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
@@ -6068,7 +6056,7 @@ index ab32bab2b6..5119c6019f 100755
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ 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
@@ -6116,7 +6104,7 @@ index ab32bab2b6..5119c6019f 100755
+
+{ $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 test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then :
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
@@ -6160,18 +6148,16 @@ index ab32bab2b6..5119c6019f 100755
{ $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 :
-@@ -6276,8 +6525,8 @@ do
- IFS=$as_save_IFS
+@@ -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
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ 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
-@@ -6297,11 +6546,15 @@ $as_echo "no" >&6; }
+@@ -6292,11 +6546,15 @@ $as_echo "no" >&6; }
fi
@@ -6190,7 +6176,16 @@ index ab32bab2b6..5119c6019f 100755
{ $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 :
-@@ -6336,6 +6589,10 @@ else
+@@ -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
@@ -6201,7 +6196,7 @@ index ab32bab2b6..5119c6019f 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6347,16 +6604,72 @@ ac_tool_warned=yes ;;
+@@ -6342,16 +6604,72 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -6226,7 +6221,7 @@ index ab32bab2b6..5119c6019f 100755
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
-+if test "${lt_cv_ar_at_file+set}" = set; then :
++if ${lt_cv_ar_at_file+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ar_at_file=no
@@ -6278,7 +6273,7 @@ index ab32bab2b6..5119c6019f 100755
-@@ -6698,8 +7011,8 @@ esac
+@@ -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
@@ -6289,7 +6284,7 @@ index ab32bab2b6..5119c6019f 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -6735,6 +7048,7 @@ for ac_symprfx in "" "_"; do
+@@ -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
@@ -6297,7 +6292,7 @@ index ab32bab2b6..5119c6019f 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -6776,6 +7090,18 @@ _LT_EOF
+@@ -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
@@ -6316,7 +6311,7 @@ index ab32bab2b6..5119c6019f 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -6787,7 +7113,7 @@ _LT_EOF
+@@ -6782,7 +7113,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -6325,7 +6320,7 @@ index ab32bab2b6..5119c6019f 100755
const char *name;
void *address;
}
-@@ -6813,8 +7139,8 @@ static const void *lt_preloaded_setup() {
+@@ -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
@@ -6336,7 +6331,7 @@ index ab32bab2b6..5119c6019f 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -6824,8 +7150,8 @@ _LT_EOF
+@@ -6819,8 +7150,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -6347,7 +6342,7 @@ index ab32bab2b6..5119c6019f 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -6862,6 +7188,18 @@ else
+@@ -6857,6 +7188,20 @@ else
$as_echo "ok" >&6; }
fi
@@ -6363,18 +6358,18 @@ index ab32bab2b6..5119c6019f 100755
+
+
+
++
++
-@@ -6878,6 +7216,43 @@ fi
+@@ -6873,6 +7218,41 @@ fi
+
+
+
-+
-+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
@@ -6401,7 +6396,7 @@ index ab32bab2b6..5119c6019f 100755
+ *)
+ { $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
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
@@ -6410,7 +6405,7 @@ index ab32bab2b6..5119c6019f 100755
-@@ -7089,6 +7464,123 @@ esac
+@@ -7084,6 +7464,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -6419,7 +6414,7 @@ index ab32bab2b6..5119c6019f 100755
+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 test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then :
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
@@ -6431,7 +6426,7 @@ index ab32bab2b6..5119c6019f 100755
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ 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
@@ -6459,7 +6454,7 @@ index ab32bab2b6..5119c6019f 100755
+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 test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then :
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
@@ -6471,7 +6466,7 @@ index ab32bab2b6..5119c6019f 100755
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ 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
@@ -6509,7 +6504,7 @@ index ab32bab2b6..5119c6019f 100755
+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 test "${lt_cv_path_mainfest_tool+set}" = set; then :
++if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_path_mainfest_tool=no
@@ -6534,7 +6529,7 @@ index ab32bab2b6..5119c6019f 100755
case $host_os in
rhapsody* | darwin*)
-@@ -7652,6 +8144,8 @@ _LT_EOF
+@@ -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
@@ -6543,7 +6538,7 @@ index ab32bab2b6..5119c6019f 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -7847,7 +8341,8 @@ fi
+@@ -7842,7 +8341,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -6553,7 +6548,7 @@ index ab32bab2b6..5119c6019f 100755
-@@ -7936,7 +8431,7 @@ aix3*)
+@@ -7931,7 +8431,7 @@ aix3*)
esac
# Global variables:
@@ -6562,7 +6557,7 @@ index ab32bab2b6..5119c6019f 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -8234,8 +8729,6 @@ fi
+@@ -8229,8 +8729,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -6571,7 +6566,7 @@ index ab32bab2b6..5119c6019f 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8401,6 +8894,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -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'
;;
@@ -6584,7 +6579,7 @@ index ab32bab2b6..5119c6019f 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8463,7 +8962,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -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
@@ -6593,7 +6588,7 @@ index ab32bab2b6..5119c6019f 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -8520,13 +9019,17 @@ case $host_os in
+@@ -8515,13 +9019,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -6606,7 +6601,7 @@ index ab32bab2b6..5119c6019f 100755
+{ $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 "${lt_cv_prog_compiler_pic+set}" = set; then :
++if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
@@ -6617,7 +6612,7 @@ index ab32bab2b6..5119c6019f 100755
#
# Check to make sure the PIC flag actually works.
-@@ -8587,6 +9090,11 @@ fi
+@@ -8582,6 +9090,11 @@ fi
@@ -6629,7 +6624,7 @@ index ab32bab2b6..5119c6019f 100755
#
# Check to make sure the static flag actually works.
#
-@@ -8937,7 +9445,8 @@ _LT_EOF
+@@ -8932,7 +9445,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -6639,7 +6634,7 @@ index ab32bab2b6..5119c6019f 100755
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'
-@@ -9036,12 +9545,12 @@ _LT_EOF
+@@ -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'
@@ -6654,7 +6649,7 @@ index ab32bab2b6..5119c6019f 100755
fi
;;
esac
-@@ -9055,8 +9564,8 @@ _LT_EOF
+@@ -9050,8 +9564,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -6665,7 +6660,7 @@ index ab32bab2b6..5119c6019f 100755
fi
;;
-@@ -9074,8 +9583,8 @@ _LT_EOF
+@@ -9069,8 +9583,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -6676,7 +6671,7 @@ index ab32bab2b6..5119c6019f 100755
else
ld_shlibs=no
fi
-@@ -9121,8 +9630,8 @@ _LT_EOF
+@@ -9116,8 +9630,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -6687,7 +6682,7 @@ index ab32bab2b6..5119c6019f 100755
else
ld_shlibs=no
fi
-@@ -9252,7 +9761,13 @@ _LT_EOF
+@@ -9247,7 +9761,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -6695,14 +6690,14 @@ index ab32bab2b6..5119c6019f 100755
+ if test "${lt_cv_aix_libpath+set}" = set; then
+ aix_libpath=$lt_cv_aix_libpath
+else
-+ if test "${lt_cv_aix_libpath_+set}" = set; then :
++ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-@@ -9265,22 +9780,29 @@ main ()
+@@ -9260,22 +9780,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -6745,7 +6740,7 @@ index ab32bab2b6..5119c6019f 100755
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"
-@@ -9292,7 +9814,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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.
@@ -6753,14 +6748,14 @@ index ab32bab2b6..5119c6019f 100755
+ if test "${lt_cv_aix_libpath+set}" = set; then
+ aix_libpath=$lt_cv_aix_libpath
+else
-+ if test "${lt_cv_aix_libpath_+set}" = set; then :
++ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-@@ -9305,22 +9833,29 @@ main ()
+@@ -9300,22 +9833,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -6803,7 +6798,7 @@ index ab32bab2b6..5119c6019f 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9365,20 +9900,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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.
@@ -6881,7 +6876,7 @@ index ab32bab2b6..5119c6019f 100755
;;
darwin* | rhapsody*)
-@@ -9439,7 +10017,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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*)
@@ -6890,7 +6885,7 @@ index ab32bab2b6..5119c6019f 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9447,7 +10025,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9442,7 +10025,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -6899,7 +6894,7 @@ index ab32bab2b6..5119c6019f 100755
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
-@@ -9463,7 +10041,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/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
@@ -6908,7 +6903,7 @@ index ab32bab2b6..5119c6019f 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -9487,10 +10065,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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*)
@@ -6921,7 +6916,7 @@ index ab32bab2b6..5119c6019f 100755
;;
esac
else
-@@ -9569,23 +10147,36 @@ fi
+@@ -9564,23 +10147,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -6936,7 +6931,7 @@ index ab32bab2b6..5119c6019f 100755
+ # 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 test "${lt_cv_irix_exported_symbol+set}" = set; then :
++if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS="$LDFLAGS"
@@ -6966,7 +6961,7 @@ index ab32bab2b6..5119c6019f 100755
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'
-@@ -9670,7 +10261,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -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}\*'
@@ -6975,7 +6970,7 @@ index ab32bab2b6..5119c6019f 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -9689,9 +10280,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9684,9 +10280,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -6987,7 +6982,7 @@ index ab32bab2b6..5119c6019f 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -10267,8 +10858,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10262,8 +10858,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -6999,7 +6994,7 @@ index ab32bab2b6..5119c6019f 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10301,13 +10893,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -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
@@ -7072,7 +7067,7 @@ index ab32bab2b6..5119c6019f 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10399,7 +11049,7 @@ haiku*)
+@@ -10394,7 +11049,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -7081,7 +7076,16 @@ index ab32bab2b6..5119c6019f 100755
hardcode_into_libs=yes
;;
-@@ -11239,10 +11889,10 @@ else
+@@ -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))
@@ -7094,7 +7098,16 @@ index ab32bab2b6..5119c6019f 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11345,10 +11995,10 @@ else
+@@ -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))
@@ -7107,7 +7120,7 @@ index ab32bab2b6..5119c6019f 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -13314,13 +13964,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -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"`'
@@ -7128,7 +7141,7 @@ index ab32bab2b6..5119c6019f 100755
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"`'
-@@ -13335,14 +13992,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -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"`'
@@ -7147,7 +7160,7 @@ index ab32bab2b6..5119c6019f 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -13375,12 +14035,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -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"`'
@@ -7161,7 +7174,7 @@ index ab32bab2b6..5119c6019f 100755
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"`'
-@@ -13435,8 +14095,13 @@ reload_flag \
+@@ -13430,8 +14095,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -7175,7 +7188,7 @@ index ab32bab2b6..5119c6019f 100755
STRIP \
RANLIB \
CC \
-@@ -13446,12 +14111,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -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 \
@@ -7191,7 +7204,7 @@ index ab32bab2b6..5119c6019f 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -13467,7 +14134,6 @@ no_undefined_flag \
+@@ -13462,7 +14134,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -7199,7 +7212,7 @@ index ab32bab2b6..5119c6019f 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -13503,6 +14169,7 @@ module_cmds \
+@@ -13498,6 +14169,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -7207,7 +7220,7 @@ index ab32bab2b6..5119c6019f 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -14268,7 +14935,8 @@ $as_echo X"$file" |
+@@ -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,
@@ -7217,7 +7230,7 @@ index ab32bab2b6..5119c6019f 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -14371,19 +15039,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -14366,19 +15039,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -7261,7 +7274,7 @@ index ab32bab2b6..5119c6019f 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -14413,6 +15104,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -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
@@ -7274,7 +7287,7 @@ index ab32bab2b6..5119c6019f 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -14422,6 +15119,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -14417,6 +15119,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -7284,7 +7297,7 @@ index ab32bab2b6..5119c6019f 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -14536,12 +15236,12 @@ with_gcc=$GCC
+@@ -14531,12 +15236,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -7300,7 +7313,7 @@ index ab32bab2b6..5119c6019f 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -14628,9 +15328,6 @@ inherit_rpath=$inherit_rpath
+@@ -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
@@ -7310,7 +7323,7 @@ index ab32bab2b6..5119c6019f 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -14646,6 +15343,9 @@ include_expsyms=$lt_include_expsyms
+@@ -14641,6 +15343,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -7320,7 +7333,7 @@ index ab32bab2b6..5119c6019f 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -14678,210 +15378,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -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?
@@ -7695,10 +7708,10 @@ index ab32bab2b6..5119c6019f 100755
chmod +x "$ofile"
diff --git a/ld/configure b/ld/configure
-index bc09e7ef81..43c391c2b3 100755
+index 1c872c0db5f..fe938e6c99f 100755
--- a/ld/configure
+++ b/ld/configure
-@@ -687,8 +687,11 @@ OTOOL
+@@ -691,8 +691,11 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
@@ -7710,7 +7723,7 @@ index bc09e7ef81..43c391c2b3 100755
OBJDUMP
LN_S
NM
-@@ -815,6 +818,7 @@ enable_static
+@@ -819,6 +822,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -7718,7 +7731,7 @@ index bc09e7ef81..43c391c2b3 100755
enable_libtool_lock
enable_plugins
enable_largefile
-@@ -1507,6 +1511,8 @@ Optional Packages:
+@@ -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]
@@ -7726,8 +7739,8 @@ index bc09e7ef81..43c391c2b3 100755
+ (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.
-
-@@ -5959,8 +5965,8 @@ esac
+ --with-system-zlib use installed libz
+@@ -5973,8 +5979,8 @@ esac
@@ -7738,7 +7751,7 @@ index bc09e7ef81..43c391c2b3 100755
-@@ -6000,7 +6006,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -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.
@@ -7747,7 +7760,7 @@ index bc09e7ef81..43c391c2b3 100755
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
-@@ -6686,8 +6692,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -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"
@@ -7758,7 +7771,7 @@ index bc09e7ef81..43c391c2b3 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -6736,6 +6742,80 @@ esac
+@@ -6750,6 +6756,80 @@ esac
@@ -7839,7 +7852,7 @@ index bc09e7ef81..43c391c2b3 100755
{ $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 :
-@@ -6752,6 +6832,11 @@ case $reload_flag in
+@@ -6766,6 +6846,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -7851,7 +7864,7 @@ index bc09e7ef81..43c391c2b3 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6920,7 +7005,8 @@ mingw* | pw32*)
+@@ -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
@@ -7861,7 +7874,7 @@ index bc09e7ef81..43c391c2b3 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -7074,6 +7160,21 @@ esac
+@@ -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; }
@@ -7883,7 +7896,7 @@ index bc09e7ef81..43c391c2b3 100755
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
-@@ -7089,9 +7190,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -7103,9 +7204,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -8048,7 +8061,7 @@ index bc09e7ef81..43c391c2b3 100755
{ $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 :
-@@ -7107,7 +7361,7 @@ do
+@@ -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
@@ -8057,7 +8070,7 @@ index bc09e7ef81..43c391c2b3 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -7127,11 +7381,15 @@ $as_echo "no" >&6; }
+@@ -7141,11 +7395,15 @@ $as_echo "no" >&6; }
fi
@@ -8076,7 +8089,7 @@ index bc09e7ef81..43c391c2b3 100755
{ $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 :
-@@ -7147,7 +7405,7 @@ do
+@@ -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
@@ -8085,7 +8098,7 @@ index bc09e7ef81..43c391c2b3 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -7166,6 +7424,10 @@ else
+@@ -7180,6 +7438,10 @@ else
$as_echo "no" >&6; }
fi
@@ -8096,7 +8109,7 @@ index bc09e7ef81..43c391c2b3 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -7177,12 +7439,12 @@ ac_tool_warned=yes ;;
+@@ -7191,12 +7453,12 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -8113,7 +8126,7 @@ index bc09e7ef81..43c391c2b3 100755
-@@ -7192,6 +7454,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+@@ -7206,6 +7468,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -8176,7 +8189,7 @@ index bc09e7ef81..43c391c2b3 100755
if test -n "$ac_tool_prefix"; then
-@@ -7528,8 +7846,8 @@ esac
+@@ -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
@@ -8187,7 +8200,7 @@ index bc09e7ef81..43c391c2b3 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -7565,6 +7883,7 @@ for ac_symprfx in "" "_"; do
+@@ -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
@@ -8195,7 +8208,7 @@ index bc09e7ef81..43c391c2b3 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -7606,6 +7925,18 @@ _LT_EOF
+@@ -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
@@ -8214,7 +8227,7 @@ index bc09e7ef81..43c391c2b3 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -7617,7 +7948,7 @@ _LT_EOF
+@@ -7631,7 +7962,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -8223,7 +8236,7 @@ index bc09e7ef81..43c391c2b3 100755
const char *name;
void *address;
}
-@@ -7643,8 +7974,8 @@ static const void *lt_preloaded_setup() {
+@@ -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
@@ -8234,7 +8247,7 @@ index bc09e7ef81..43c391c2b3 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7654,8 +7985,8 @@ _LT_EOF
+@@ -7668,8 +7999,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -8245,7 +8258,7 @@ index bc09e7ef81..43c391c2b3 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -7692,6 +8023,19 @@ else
+@@ -7706,6 +8037,19 @@ else
$as_echo "ok" >&6; }
fi
@@ -8265,7 +8278,7 @@ index bc09e7ef81..43c391c2b3 100755
-@@ -7708,6 +8052,42 @@ fi
+@@ -7722,6 +8066,42 @@ fi
@@ -8308,7 +8321,7 @@ index bc09e7ef81..43c391c2b3 100755
-@@ -7919,6 +8299,123 @@ esac
+@@ -7933,6 +8313,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -8432,7 +8445,7 @@ index bc09e7ef81..43c391c2b3 100755
case $host_os in
rhapsody* | darwin*)
-@@ -8482,6 +8979,8 @@ _LT_EOF
+@@ -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
@@ -8441,7 +8454,7 @@ index bc09e7ef81..43c391c2b3 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -8550,6 +9049,16 @@ done
+@@ -8564,6 +9063,16 @@ done
@@ -8458,7 +8471,7 @@ index bc09e7ef81..43c391c2b3 100755
# Set options
-@@ -8678,7 +9187,8 @@ fi
+@@ -8692,7 +9201,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -8468,7 +8481,7 @@ index bc09e7ef81..43c391c2b3 100755
-@@ -8767,7 +9277,7 @@ aix3*)
+@@ -8781,7 +9291,7 @@ aix3*)
esac
# Global variables:
@@ -8477,7 +8490,7 @@ index bc09e7ef81..43c391c2b3 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -9065,8 +9575,6 @@ fi
+@@ -9079,8 +9589,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -8486,7 +8499,7 @@ index bc09e7ef81..43c391c2b3 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -9232,6 +9740,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -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'
;;
@@ -8499,7 +8512,7 @@ index bc09e7ef81..43c391c2b3 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -9294,7 +9808,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -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
@@ -8508,7 +8521,7 @@ index bc09e7ef81..43c391c2b3 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -9351,13 +9865,17 @@ case $host_os in
+@@ -9365,13 +9879,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -8532,7 +8545,7 @@ index bc09e7ef81..43c391c2b3 100755
#
# Check to make sure the PIC flag actually works.
-@@ -9418,6 +9936,11 @@ fi
+@@ -9432,6 +9950,11 @@ fi
@@ -8544,7 +8557,7 @@ index bc09e7ef81..43c391c2b3 100755
#
# Check to make sure the static flag actually works.
#
-@@ -9768,7 +10291,8 @@ _LT_EOF
+@@ -9782,7 +10305,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -8554,7 +8567,7 @@ index bc09e7ef81..43c391c2b3 100755
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'
-@@ -9867,12 +10391,12 @@ _LT_EOF
+@@ -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'
@@ -8569,7 +8582,7 @@ index bc09e7ef81..43c391c2b3 100755
fi
;;
esac
-@@ -9886,8 +10410,8 @@ _LT_EOF
+@@ -9900,8 +10424,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -8580,7 +8593,7 @@ index bc09e7ef81..43c391c2b3 100755
fi
;;
-@@ -9905,8 +10429,8 @@ _LT_EOF
+@@ -9919,8 +10443,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -8591,7 +8604,7 @@ index bc09e7ef81..43c391c2b3 100755
else
ld_shlibs=no
fi
-@@ -9952,8 +10476,8 @@ _LT_EOF
+@@ -9966,8 +10490,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -8602,7 +8615,7 @@ index bc09e7ef81..43c391c2b3 100755
else
ld_shlibs=no
fi
-@@ -10083,7 +10607,13 @@ _LT_EOF
+@@ -10097,7 +10621,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -8617,7 +8630,7 @@ index bc09e7ef81..43c391c2b3 100755
/* end confdefs.h. */
int
-@@ -10096,22 +10626,29 @@ main ()
+@@ -10110,22 +10640,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -8660,7 +8673,7 @@ index bc09e7ef81..43c391c2b3 100755
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"
-@@ -10123,7 +10660,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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.
@@ -8675,7 +8688,7 @@ index bc09e7ef81..43c391c2b3 100755
/* end confdefs.h. */
int
-@@ -10136,22 +10679,29 @@ main ()
+@@ -10150,22 +10693,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -8718,7 +8731,7 @@ index bc09e7ef81..43c391c2b3 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -10195,21 +10745,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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
@@ -8798,7 +8811,7 @@ index bc09e7ef81..43c391c2b3 100755
;;
darwin* | rhapsody*)
-@@ -10270,7 +10863,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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*)
@@ -8807,7 +8820,7 @@ index bc09e7ef81..43c391c2b3 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -10278,7 +10871,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10292,7 +10885,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -8816,7 +8829,7 @@ index bc09e7ef81..43c391c2b3 100755
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
-@@ -10294,7 +10887,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/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
@@ -8825,7 +8838,7 @@ index bc09e7ef81..43c391c2b3 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -10318,10 +10911,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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*)
@@ -8838,7 +8851,7 @@ index bc09e7ef81..43c391c2b3 100755
;;
esac
else
-@@ -10400,23 +10993,36 @@ fi
+@@ -10414,23 +11007,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -8883,7 +8896,7 @@ index bc09e7ef81..43c391c2b3 100755
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'
-@@ -10501,7 +11107,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -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}\*'
@@ -8892,7 +8905,7 @@ index bc09e7ef81..43c391c2b3 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -10520,9 +11126,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10534,9 +11140,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -8904,7 +8917,7 @@ index bc09e7ef81..43c391c2b3 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -11098,8 +11704,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -11112,8 +11718,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -8916,7 +8929,7 @@ index bc09e7ef81..43c391c2b3 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -11132,13 +11739,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -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
@@ -8989,7 +9002,7 @@ index bc09e7ef81..43c391c2b3 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -11230,7 +11895,7 @@ haiku*)
+@@ -11244,7 +11909,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -8998,16 +9011,16 @@ index bc09e7ef81..43c391c2b3 100755
hardcode_into_libs=yes
;;
-@@ -12026,7 +12691,7 @@ else
+@@ -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 12029 "configure"
+-#line 12040 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-@@ -12070,10 +12735,10 @@ else
+@@ -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))
@@ -9020,16 +9033,16 @@ index bc09e7ef81..43c391c2b3 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12132,7 +12797,7 @@ else
+@@ -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 12135 "configure"
+-#line 12146 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-@@ -12176,10 +12841,10 @@ else
+@@ -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))
@@ -9042,7 +9055,7 @@ index bc09e7ef81..43c391c2b3 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12571,6 +13236,7 @@ $RM -r conftest*
+@@ -12585,6 +13250,7 @@ $RM -r conftest*
# Allow CC to be a program name with arguments.
lt_save_CC=$CC
@@ -9050,7 +9063,7 @@ index bc09e7ef81..43c391c2b3 100755
lt_save_LD=$LD
lt_save_GCC=$GCC
GCC=$GXX
-@@ -12588,6 +13254,7 @@ $RM -r conftest*
+@@ -12602,6 +13268,7 @@ $RM -r conftest*
fi
test -z "${LDCXX+set}" || LD=$LDCXX
CC=${CXX-"c++"}
@@ -9058,7 +9071,7 @@ index bc09e7ef81..43c391c2b3 100755
compiler=$CC
compiler_CXX=$CC
for cc_temp in $compiler""; do
-@@ -12870,7 +13537,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+@@ -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.
@@ -9073,7 +9086,7 @@ index bc09e7ef81..43c391c2b3 100755
/* end confdefs.h. */
int
-@@ -12883,22 +13556,29 @@ main ()
+@@ -12897,22 +13570,29 @@ main ()
_ACEOF
if ac_fn_cxx_try_link "$LINENO"; then :
@@ -9116,7 +9129,7 @@ index bc09e7ef81..43c391c2b3 100755
hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-@@ -12911,7 +13591,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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.
@@ -9131,7 +9144,7 @@ index bc09e7ef81..43c391c2b3 100755
/* end confdefs.h. */
int
-@@ -12924,22 +13610,29 @@ main ()
+@@ -12938,22 +13624,29 @@ main ()
_ACEOF
if ac_fn_cxx_try_link "$LINENO"; then :
@@ -9174,7 +9187,7 @@ index bc09e7ef81..43c391c2b3 100755
hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -12982,29 +13675,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -12996,29 +13689,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
cygwin* | mingw* | pw32* | cegcc*)
@@ -9273,7 +9286,7 @@ index bc09e7ef81..43c391c2b3 100755
darwin* | rhapsody*)
-@@ -13110,7 +13849,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13124,7 +13863,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
*)
if test "$GXX" = yes; then
@@ -9282,7 +9295,7 @@ index bc09e7ef81..43c391c2b3 100755
else
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
-@@ -13181,10 +13920,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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*)
@@ -9295,7 +9308,7 @@ index bc09e7ef81..43c391c2b3 100755
;;
esac
fi
-@@ -13225,9 +13964,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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
@@ -9307,7 +9320,7 @@ index bc09e7ef81..43c391c2b3 100755
fi
fi
link_all_deplibs_CXX=yes
-@@ -13297,20 +14036,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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~
@@ -9332,7 +9345,7 @@ index bc09e7ef81..43c391c2b3 100755
;;
*) # 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'
-@@ -13505,7 +14244,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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'
;;
*)
@@ -9341,7 +9354,7 @@ index bc09e7ef81..43c391c2b3 100755
;;
esac
-@@ -13551,7 +14290,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13565,7 +14304,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
solaris*)
case $cc_basename in
@@ -9350,7 +9363,7 @@ index bc09e7ef81..43c391c2b3 100755
# Sun C++ 4.2, 5.x and Centerline C++
archive_cmds_need_lc_CXX=yes
no_undefined_flag_CXX=' -zdefs'
-@@ -13592,9 +14331,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -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
@@ -9362,7 +9375,7 @@ index bc09e7ef81..43c391c2b3 100755
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
-@@ -13729,6 +14468,13 @@ private:
+@@ -13743,6 +14482,13 @@ private:
};
_LT_EOF
@@ -9376,7 +9389,7 @@ index bc09e7ef81..43c391c2b3 100755
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
-@@ -13742,7 +14488,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -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
@@ -9385,7 +9398,7 @@ index bc09e7ef81..43c391c2b3 100755
-L* | -R* | -l*)
# Some compilers place space between "-{L,R}" and the path.
-@@ -13751,13 +14497,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13765,13 +14511,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
test $p = "-R"; then
prev=$p
continue
@@ -9412,7 +9425,7 @@ index bc09e7ef81..43c391c2b3 100755
# 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.
-@@ -13777,8 +14532,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13791,8 +14546,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
postdeps_CXX="${postdeps_CXX} ${prev}${p}"
fi
fi
@@ -9423,7 +9436,7 @@ index bc09e7ef81..43c391c2b3 100755
*.$objext)
# This assumes that the test object file only shows up
# once in the compiler output.
-@@ -13814,6 +14571,7 @@ else
+@@ -13828,6 +14585,7 @@ else
fi
$RM -f confest.$objext
@@ -9431,7 +9444,7 @@ index bc09e7ef81..43c391c2b3 100755
# PORTME: override above test on systems where it is broken
case $host_os in
-@@ -13849,7 +14607,7 @@ linux*)
+@@ -13863,7 +14621,7 @@ linux*)
solaris*)
case $cc_basename in
@@ -9440,7 +9453,7 @@ index bc09e7ef81..43c391c2b3 100755
# The more standards-conforming stlport4 library is
# incompatible with the Cstd library. Avoid specifying
# it if it's in CXXFLAGS. Ignore libCrun as
-@@ -13914,8 +14672,6 @@ fi
+@@ -13928,8 +14686,6 @@ fi
lt_prog_compiler_pic_CXX=
lt_prog_compiler_static_CXX=
@@ -9449,7 +9462,7 @@ index bc09e7ef81..43c391c2b3 100755
# C++ specific cases for pic, static, wl, etc.
if test "$GXX" = yes; then
-@@ -14020,6 +14776,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -14034,6 +14790,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
;;
esac
;;
@@ -9461,7 +9474,7 @@ index bc09e7ef81..43c391c2b3 100755
dgux*)
case $cc_basename in
ec++*)
-@@ -14172,7 +14933,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -14186,7 +14947,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
;;
solaris*)
case $cc_basename in
@@ -9470,7 +9483,7 @@ index bc09e7ef81..43c391c2b3 100755
# Sun C++ 4.2, 5.x and Centerline C++
lt_prog_compiler_pic_CXX='-KPIC'
lt_prog_compiler_static_CXX='-Bstatic'
-@@ -14237,10 +14998,17 @@ case $host_os in
+@@ -14251,10 +15012,17 @@ case $host_os in
lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
;;
esac
@@ -9491,7 +9504,7 @@ index bc09e7ef81..43c391c2b3 100755
#
# Check to make sure the PIC flag actually works.
-@@ -14298,6 +15066,8 @@ fi
+@@ -14312,6 +15080,8 @@ fi
@@ -9500,7 +9513,7 @@ index bc09e7ef81..43c391c2b3 100755
#
# Check to make sure the static flag actually works.
#
-@@ -14475,6 +15245,7 @@ fi
+@@ -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'
@@ -9508,7 +9521,7 @@ index bc09e7ef81..43c391c2b3 100755
case $host_os in
aix[4-9]*)
# If we're using GNU nm, then we don't want the "-C" option.
-@@ -14489,15 +15260,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+@@ -14503,15 +15274,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
;;
pw32*)
export_symbols_cmds_CXX="$ltdll_cmds"
@@ -9534,7 +9547,7 @@ index bc09e7ef81..43c391c2b3 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
$as_echo "$ld_shlibs_CXX" >&6; }
-@@ -14760,8 +15536,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -14774,8 +15550,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -9546,7 +9559,7 @@ index bc09e7ef81..43c391c2b3 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -14793,13 +15570,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -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
@@ -9619,7 +9632,7 @@ index bc09e7ef81..43c391c2b3 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -14890,7 +15725,7 @@ haiku*)
+@@ -14904,7 +15739,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -9628,7 +9641,7 @@ index bc09e7ef81..43c391c2b3 100755
hardcode_into_libs=yes
;;
-@@ -15349,6 +16184,7 @@ fi
+@@ -15363,6 +16198,7 @@ fi
fi # test -n "$compiler"
CC=$lt_save_CC
@@ -9636,7 +9649,7 @@ index bc09e7ef81..43c391c2b3 100755
LDCXX=$LD
LD=$lt_save_LD
GCC=$lt_save_GCC
-@@ -18444,13 +19280,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -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"`'
@@ -9657,7 +9670,7 @@ index bc09e7ef81..43c391c2b3 100755
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"`'
-@@ -18465,14 +19308,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -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"`'
@@ -9676,7 +9689,7 @@ index bc09e7ef81..43c391c2b3 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -18505,12 +19351,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -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"`'
@@ -9690,7 +9703,7 @@ index bc09e7ef81..43c391c2b3 100755
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"`'
-@@ -18549,8 +19395,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
+@@ -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"`'
@@ -9700,7 +9713,7 @@ index bc09e7ef81..43c391c2b3 100755
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"`'
-@@ -18577,12 +19423,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
+@@ -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"`'
@@ -9714,7 +9727,7 @@ index bc09e7ef81..43c391c2b3 100755
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"`'
-@@ -18620,8 +19466,13 @@ reload_flag \
+@@ -18730,8 +19576,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -9728,7 +9741,7 @@ index bc09e7ef81..43c391c2b3 100755
STRIP \
RANLIB \
CC \
-@@ -18631,12 +19482,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -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 \
@@ -9744,7 +9757,7 @@ index bc09e7ef81..43c391c2b3 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -18652,7 +19505,6 @@ no_undefined_flag \
+@@ -18762,7 +19615,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -9752,7 +9765,7 @@ index bc09e7ef81..43c391c2b3 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -18674,8 +19526,8 @@ LD_CXX \
+@@ -18784,8 +19636,8 @@ LD_CXX \
reload_flag_CXX \
compiler_CXX \
lt_prog_compiler_no_builtin_flag_CXX \
@@ -9762,7 +9775,7 @@ index bc09e7ef81..43c391c2b3 100755
lt_prog_compiler_static_CXX \
lt_cv_prog_compiler_c_o_CXX \
export_dynamic_flag_spec_CXX \
-@@ -18687,7 +19539,6 @@ no_undefined_flag_CXX \
+@@ -18797,7 +19649,6 @@ no_undefined_flag_CXX \
hardcode_libdir_flag_spec_CXX \
hardcode_libdir_flag_spec_ld_CXX \
hardcode_libdir_separator_CXX \
@@ -9770,7 +9783,7 @@ index bc09e7ef81..43c391c2b3 100755
exclude_expsyms_CXX \
include_expsyms_CXX \
file_list_spec_CXX \
-@@ -18721,6 +19572,7 @@ module_cmds \
+@@ -18831,6 +19682,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -9778,7 +9791,7 @@ index bc09e7ef81..43c391c2b3 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -18735,7 +19587,8 @@ archive_expsym_cmds_CXX \
+@@ -18845,7 +19697,8 @@ archive_expsym_cmds_CXX \
module_cmds_CXX \
module_expsym_cmds_CXX \
export_symbols_cmds_CXX \
@@ -9788,7 +9801,7 @@ index bc09e7ef81..43c391c2b3 100755
case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
*[\\\\\\\`\\"\\\$]*)
eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-@@ -19539,7 +20392,8 @@ $as_echo X"$file" |
+@@ -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,
@@ -9798,7 +9811,7 @@ index bc09e7ef81..43c391c2b3 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -19642,19 +20496,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -19713,19 +20567,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -9842,7 +9855,7 @@ index bc09e7ef81..43c391c2b3 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -19684,6 +20561,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -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
@@ -9855,7 +9868,7 @@ index bc09e7ef81..43c391c2b3 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -19693,6 +20576,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -19764,6 +20647,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -9865,7 +9878,7 @@ index bc09e7ef81..43c391c2b3 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -19807,12 +20693,12 @@ with_gcc=$GCC
+@@ -19878,12 +20764,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -9881,7 +9894,7 @@ index bc09e7ef81..43c391c2b3 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -19899,9 +20785,6 @@ inherit_rpath=$inherit_rpath
+@@ -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
@@ -9891,7 +9904,7 @@ index bc09e7ef81..43c391c2b3 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -19917,6 +20800,9 @@ include_expsyms=$lt_include_expsyms
+@@ -19988,6 +20871,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -9901,7 +9914,7 @@ index bc09e7ef81..43c391c2b3 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -19963,210 +20849,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -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?
@@ -10275,7 +10288,7 @@ index bc09e7ef81..43c391c2b3 100755
(rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
chmod +x "$ofile"
-@@ -20194,12 +21039,12 @@ with_gcc=$GCC_CXX
+@@ -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
@@ -10291,7 +10304,7 @@ index bc09e7ef81..43c391c2b3 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static_CXX
-@@ -20286,9 +21131,6 @@ inherit_rpath=$inherit_rpath_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
@@ -10301,7 +10314,7 @@ index bc09e7ef81..43c391c2b3 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols_CXX
-@@ -20304,6 +21146,9 @@ include_expsyms=$lt_include_expsyms_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
@@ -10311,8 +10324,1918 @@ index bc09e7ef81..43c391c2b3 100755
# 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 434530059f..e45fdc6998 100644
+index 434530059fa..e45fdc6998c 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -1,7 +1,8 @@
@@ -12111,7 +14034,7 @@ index 434530059f..e45fdc6998 100644
+ [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/ltmain.sh b/ltmain.sh
-index 9503ec85d7..70e856e065 100644
+index 9503ec85d70..70e856e0659 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,10 +1,9 @@
@@ -17341,7 +19264,7 @@ index 9503ec85d7..70e856e065 100644
if test -n "$exec_cmd"; then
eval exec "$exec_cmd"
diff --git a/ltoptions.m4 b/ltoptions.m4
-index 5ef12ced2a..17cfd51c0b 100644
+index 5ef12ced2a8..17cfd51c0b3 100644
--- a/ltoptions.m4
+++ b/ltoptions.m4
@@ -8,7 +8,7 @@
@@ -17354,7 +19277,7 @@ index 5ef12ced2a..17cfd51c0b 100644
# 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
+index bf87f77132d..9c7b5d41185 100644
--- a/ltversion.m4
+++ b/ltversion.m4
@@ -7,17 +7,17 @@
@@ -17382,7 +19305,7 @@ index bf87f77132..9c7b5d4118 100644
_LT_DECL(, macro_revision, 0)
])
diff --git a/lt~obsolete.m4 b/lt~obsolete.m4
-index bf92b5e079..c573da90c5 100644
+index bf92b5e0790..c573da90c5c 100644
--- a/lt~obsolete.m4
+++ b/lt~obsolete.m4
@@ -7,7 +7,7 @@
@@ -17395,7 +19318,7 @@ index bf92b5e079..c573da90c5 100644
# These exist entirely to fool aclocal when bootstrapping libtool.
#
diff --git a/opcodes/configure b/opcodes/configure
-index 853849ee58..5f74ecf7da 100755
+index 8d1e561c942..a0291dfbfa7 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -680,6 +680,9 @@ OTOOL
@@ -18720,15 +20643,6 @@ index 853849ee58..5f74ecf7da 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12779,7 +13434,7 @@ if test "$enable_shared" = "yes"; then
- # since libbfd may not pull in the entirety of libiberty.
- 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
@@ -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"`'
@@ -19316,21 +21230,8 @@ index 853849ee58..5f74ecf7da 100755
(rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
chmod +x "$ofile"
-diff --git a/opcodes/configure.ac b/opcodes/configure.ac
-index 4eb19005e8..19a57608b9 100644
---- a/opcodes/configure.ac
-+++ b/opcodes/configure.ac
-@@ -170,7 +170,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/zlib/configure b/zlib/configure
-index 041cbdbf71..19d605fc85 100755
+index de6fa7e9960..cce448b6a53 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -646,8 +646,11 @@ OTOOL
@@ -21248,5 +23149,5 @@ index 041cbdbf71..19d605fc85 100755
chmod +x "$ofile"
--
-2.20.1
+2.28.0
diff --git a/meta/recipes-devtools/binutils/binutils/0009-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 b6b1e7a672..69a2383782 100644
--- a/meta/recipes-devtools/binutils/binutils/0009-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 2cd5613a86f8772f9d7f188532718363668ed99d 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 09/15] 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
@@ -48,5 +48,5 @@ index 70e856e065..11ee684ccc 100644
if test -z "$hardcode_libdirs"; then
hardcode_libdirs="$libdir"
--
-2.20.1
+2.28.0
diff --git a/meta/recipes-devtools/binutils/binutils/0015-binutils-enable-x86_64-pep-for-producing-EFI-binarie.patch b/meta/recipes-devtools/binutils/binutils/0015-binutils-enable-x86_64-pep-for-producing-EFI-binarie.patch
deleted file mode 100644
index bfde561dee..0000000000
--- a/meta/recipes-devtools/binutils/binutils/0015-binutils-enable-x86_64-pep-for-producing-EFI-binarie.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From d5d783903e335302e562bac8da1a083338d75b25 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 29 Nov 2018 17:46:40 -0800
-Subject: [PATCH 15/15] binutils : enable x86_64-pep for producing EFI binaries
- on x86-64
-
-Add x86_64-pep emulation support to the set enabled for x86_64 targets
-to enable the linker to produce Portable Executables for EFI binaries.
-
-Enables building the x86-64 EFI variant of the Xen hypervisor for
-the OpenXT Project.
-
-Upstream-Status: Inappropriate [OE configuration specific]
-
-Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- bfd/config.bfd | 2 +-
- ld/configure.tgt | 5 +++--
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/bfd/config.bfd b/bfd/config.bfd
-index 3614ff79d4..aef144803a 100644
---- a/bfd/config.bfd
-+++ b/bfd/config.bfd
-@@ -694,7 +694,7 @@ case "${targ}" in
- ;;
- x86_64-*-linux-*)
- targ_defvec=x86_64_elf64_vec
-- targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
-+ targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec x86_64_pe_vec x86_64_pe_be_vec i386_pe_vec"
- want64=true
- ;;
- x86_64-*-nacl*)
-diff --git a/ld/configure.tgt b/ld/configure.tgt
-index 347df6c3f6..1e37d747a9 100644
---- a/ld/configure.tgt
-+++ b/ld/configure.tgt
-@@ -257,8 +257,9 @@ x86_64-*-linux-gnux32) targ_emul=elf32_x86_64
- tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
- tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'` ;;
- x86_64-*-linux-*) targ_emul=elf_x86_64
-- targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om"
-- targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
-+ targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pe i386pep"
-+ targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om i386pep"
-+ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
- tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
- i[3-7]86-*-redox*) targ_emul=elf_i386
- targ_extra_emuls=elf_x86_64 ;;
---
-2.20.1
-
diff --git a/meta/recipes-devtools/binutils/binutils/0014-sync-with-OE-libtool-changes.patch b/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch
index 65ba10a553..e848f146b0 100644
--- a/meta/recipes-devtools/binutils/binutils/0014-sync-with-OE-libtool-changes.patch
+++ b/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch
@@ -1,7 +1,7 @@
-From b7729343206fa196b9a11747a92b3cf563277056 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 14/15] 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
@@ -85,5 +85,5 @@ index 11ee684ccc..3b19ac1532 100644
elif test -n "$runpath_var"; then
case "$finalize_perm_rpath " in
--
-2.20.1
+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/CVE-2019-12972.patch b/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch
deleted file mode 100644
index 07d1d65467..0000000000
--- a/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 30bcc01478433a1cb05b36dc5c4beef7d2c89b5b Mon Sep 17 00:00:00 2001
-From: Alan Modra <amodra@gmail.com>
-Date: Fri, 21 Jun 2019 11:51:38 +0930
-Subject: [PATCH] PR24689, string table corruption
-
-The testcase in the PR had a e_shstrndx section of type SHT_GROUP.
-hdr->contents were initialized by setup_group rather than being read
-from the file, thus last byte was not zero and string dereference ran
-off the end of the buffer.
-
- PR 24689
- * elfcode.h (elf_object_p): Check type of e_shstrndx section.
-
-Upstream-Status: Backport
-CVE: CVE-2019-12972
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- bfd/ChangeLog | 5 +++++
- bfd/elfcode.h | 3 ++-
- 2 files changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 91f09e6346..e66fb40a2c 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1,3 +1,8 @@
-+2019-06-21 Alan Modra <amodra@gmail.com>
-+
-+ PR 24689
-+ * elfcode.h (elf_object_p): Check type of e_shstrndx section.
-+
- 2019-02-20 Alan Modra <amodra@gmail.com>
-
- PR 24236
-diff --git a/bfd/elfcode.h b/bfd/elfcode.h
-index ec5ea766de..a35a629087 100644
---- a/bfd/elfcode.h
-+++ b/bfd/elfcode.h
-@@ -755,7 +755,8 @@ elf_object_p (bfd *abfd)
- /* A further sanity check. */
- if (i_ehdrp->e_shnum != 0)
- {
-- if (i_ehdrp->e_shstrndx >= elf_numsections (abfd))
-+ if (i_ehdrp->e_shstrndx >= elf_numsections (abfd)
-+ || i_shdrp[i_ehdrp->e_shstrndx].sh_type != SHT_STRTAB)
- {
- /* PR 2257:
- We used to just goto got_wrong_format_error here
---
-2.20.1
-
diff --git a/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch b/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch
deleted file mode 100644
index c915a832b0..0000000000
--- a/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From df78be05daf4eb07f60f50ec1080cb979af32ec0 Mon Sep 17 00:00:00 2001
-From: marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Tue, 23 Jul 2019 07:33:32 +0000
-Subject: [PATCH] libiberty: Check zero value shstrndx in simple-object-elf.c
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@273718 138bc75d-0d04-0410-961f-82ee72b054a4
-
-CVE: CVE-2019-14250
-Upstream-Status: Backport [from gcc: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=273718]
-[Removed Changelog entry]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
-diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
-index 502388991a08..bdee963634d6 100644
---- a/libiberty/simple-object-elf.c
-+++ b/libiberty/simple-object-elf.c
-@@ -548,7 +548,15 @@ simple_object_elf_match (unsigned char header[SIMPLE_OBJECT_MATCH_HEADER_LEN],
- XDELETE (eor);
- 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/binutils/binutils/CVE-2019-14444.patch b/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch
deleted file mode 100644
index 85b9a9f916..0000000000
--- a/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From e17869db99195849826eaaf5d2d0eb2cfdd7a2a7 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Mon, 5 Aug 2019 10:40:35 +0100
-Subject: [PATCH] Catch potential integer overflow in readelf when processing
- corrupt binaries.
-
- PR 24829
- * readelf.c (apply_relocations): Catch potential integer overflow
- whilst checking reloc location against section size.
-
-CVE: CVE-2019-14444
-Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e17869db99195849826eaaf5d2d0eb2cfdd7a2a7]
-[Removed Changelog entry]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
-diff --git a/binutils/readelf.c b/binutils/readelf.c
-index b896ad9f406..e785fde43e7 100644
---- a/binutils/readelf.c
-+++ b/binutils/readelf.c
-@@ -13366,7 +13366,7 @@ apply_relocations (Filedata * filedata,
- }
-
- rloc = start + rp->r_offset;
-- if ((rloc + reloc_size) > end || (rloc < start))
-+ if (rloc >= end || (rloc + reloc_size) > end || (rloc < start))
- {
- warn (_("skipping invalid relocation offset 0x%lx in section %s\n"),
- (unsigned long) rp->r_offset,
diff --git a/meta/recipes-devtools/binutils/binutils/CVE-2019-9071.patch b/meta/recipes-devtools/binutils/binutils/CVE-2019-9071.patch
deleted file mode 100644
index f02539942f..0000000000
--- a/meta/recipes-devtools/binutils/binutils/CVE-2019-9071.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From c1202057eb9161a86af27d867703235fee7b7555 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Wed, 10 Apr 2019 15:49:36 +0100
-Subject: [PATCH] Pull in patch for libiberty that fixes a stack exhaustion bug
- when demangling a pathalogically constructed mangled name.
-
- PR 89394
- * cp-demangle.c (cplus_demangle_fill_name): Reject negative
- lengths.
- (d_count_templates_scopes): Replace num_templates and num_scopes
- parameters with a struct d_print_info pointer parameter. Adjust
- body of the function accordingly. Add recursion counter and check
- that the recursion limit is not reached.
- (d_print_init): Pass dpi parameter to d_count_templates_scopes.
- Reset recursion counter afterwards, unless the recursion limit was
- reached.
-
-CVE: CVE-2019-9071
-CVE: CVE-2019-9070
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- ChangeLog | 16 ++++++++++++++
- libiberty/cp-demangle.c | 48 ++++++++++++++++++++++-------------------
- 2 files changed, 42 insertions(+), 22 deletions(-)
-
-diff --git a/ChangeLog b/ChangeLog
-index cd631a15b6..4df3aaa62c 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,19 @@
-+2019-04-10 Nick Clifton <nickc@redhat.com>
-+
-+ * libiberty: Sync with gcc. Bring in:
-+ 2019-04-10 Nick Clifton <nickc@redhat.com>
-+
-+ PR 89394
-+ * cp-demangle.c (cplus_demangle_fill_name): Reject negative
-+ lengths.
-+ (d_count_templates_scopes): Replace num_templates and num_scopes
-+ parameters with a struct d_print_info pointer parameter. Adjust
-+ body of the function accordingly. Add recursion counter and check
-+ that the recursion limit is not reached.
-+ (d_print_init): Pass dpi parameter to d_count_templates_scopes.
-+ Reset recursion counter afterwards, unless the recursion limit was
-+ reached.
-+
- 2018-06-24 Nick Clifton <nickc@redhat.com>
-
- 2.32 branch created.
-diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
-index b34b485692..779b4e763a 100644
---- a/libiberty/cp-demangle.c
-+++ b/libiberty/cp-demangle.c
-@@ -861,7 +861,7 @@ CP_STATIC_IF_GLIBCPP_V3
- int
- cplus_demangle_fill_name (struct demangle_component *p, const char *s, int len)
- {
-- if (p == NULL || s == NULL || len == 0)
-+ if (p == NULL || s == NULL || len <= 0)
- return 0;
- p->d_printing = 0;
- p->type = DEMANGLE_COMPONENT_NAME;
-@@ -4061,7 +4061,7 @@ d_growable_string_callback_adapter (const char *s, size_t l, void *opaque)
- are larger than the actual numbers encountered. */
-
- static void
--d_count_templates_scopes (int *num_templates, int *num_scopes,
-+d_count_templates_scopes (struct d_print_info *dpi,
- const struct demangle_component *dc)
- {
- if (dc == NULL)
-@@ -4081,13 +4081,13 @@ d_count_templates_scopes (int *num_templates, int *num_scopes,
- break;
-
- case DEMANGLE_COMPONENT_TEMPLATE:
-- (*num_templates)++;
-+ dpi->num_copy_templates++;
- goto recurse_left_right;
-
- case DEMANGLE_COMPONENT_REFERENCE:
- case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
- if (d_left (dc)->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM)
-- (*num_scopes)++;
-+ dpi->num_saved_scopes++;
- goto recurse_left_right;
-
- case DEMANGLE_COMPONENT_QUAL_NAME:
-@@ -4152,42 +4152,42 @@ d_count_templates_scopes (int *num_templates, int *num_scopes,
- case DEMANGLE_COMPONENT_TAGGED_NAME:
- case DEMANGLE_COMPONENT_CLONE:
- recurse_left_right:
-- d_count_templates_scopes (num_templates, num_scopes,
-- d_left (dc));
-- d_count_templates_scopes (num_templates, num_scopes,
-- d_right (dc));
-+ /* PR 89394 - Check for too much recursion. */
-+ if (dpi->recursion > DEMANGLE_RECURSION_LIMIT)
-+ /* FIXME: There ought to be a way to report to the
-+ user that the recursion limit has been reached. */
-+ return;
-+
-+ ++ dpi->recursion;
-+ d_count_templates_scopes (dpi, d_left (dc));
-+ d_count_templates_scopes (dpi, d_right (dc));
-+ -- dpi->recursion;
- break;
-
- case DEMANGLE_COMPONENT_CTOR:
-- d_count_templates_scopes (num_templates, num_scopes,
-- dc->u.s_ctor.name);
-+ d_count_templates_scopes (dpi, dc->u.s_ctor.name);
- break;
-
- case DEMANGLE_COMPONENT_DTOR:
-- d_count_templates_scopes (num_templates, num_scopes,
-- dc->u.s_dtor.name);
-+ d_count_templates_scopes (dpi, dc->u.s_dtor.name);
- break;
-
- case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
-- d_count_templates_scopes (num_templates, num_scopes,
-- dc->u.s_extended_operator.name);
-+ d_count_templates_scopes (dpi, dc->u.s_extended_operator.name);
- break;
-
- case DEMANGLE_COMPONENT_FIXED_TYPE:
-- d_count_templates_scopes (num_templates, num_scopes,
-- dc->u.s_fixed.length);
-+ d_count_templates_scopes (dpi, dc->u.s_fixed.length);
- break;
-
- case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:
- case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:
-- d_count_templates_scopes (num_templates, num_scopes,
-- d_left (dc));
-+ d_count_templates_scopes (dpi, d_left (dc));
- break;
-
- case DEMANGLE_COMPONENT_LAMBDA:
- case DEMANGLE_COMPONENT_DEFAULT_ARG:
-- d_count_templates_scopes (num_templates, num_scopes,
-- dc->u.s_unary_num.sub);
-+ d_count_templates_scopes (dpi, dc->u.s_unary_num.sub);
- break;
- }
- }
-@@ -4222,8 +4222,12 @@ d_print_init (struct d_print_info *dpi, demangle_callbackref callback,
- dpi->next_copy_template = 0;
- dpi->num_copy_templates = 0;
-
-- d_count_templates_scopes (&dpi->num_copy_templates,
-- &dpi->num_saved_scopes, dc);
-+ d_count_templates_scopes (dpi, dc);
-+ /* If we did not reach the recursion limit, then reset the
-+ current recursion value back to 0, so that we can print
-+ the templates. */
-+ if (dpi->recursion < DEMANGLE_RECURSION_LIMIT)
-+ dpi->recursion = 0;
- dpi->num_copy_templates *= dpi->num_saved_scopes;
-
- dpi->current_template = NULL;
---
-2.20.1
-
diff --git a/meta/recipes-devtools/binutils/binutils/CVE-2019-9074.patch b/meta/recipes-devtools/binutils/binutils/CVE-2019-9074.patch
deleted file mode 100644
index a11a51200e..0000000000
--- a/meta/recipes-devtools/binutils/binutils/CVE-2019-9074.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From e2ebb3906432dcca2727186ad79415f920730fb2 Mon Sep 17 00:00:00 2001
-From: Alan Modra <amodra@gmail.com>
-Date: Tue, 19 Feb 2019 22:48:44 +1030
-Subject: [PATCH] PR24235, Read memory violation in pei-x86_64.c
-
- PR 24235
- * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
- attempting to prevent read past end of section.
-
-Upstream-Status: Backport [https://github.com/bminor/binutils-gdb/commit/179f2db0d9c397d7dd8a59907b84208b79f7f48c]
-CVE: CVE-2019-9074
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- bfd/ChangeLog | 6 ++++++
- bfd/pei-x86_64.c | 9 ++++-----
- 2 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index dd2c741..cbf30de 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1,3 +1,9 @@
-+2019-02-19 Alan Modra <amodra@gmail.com>
-+
-+ PR 24235
-+ * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct checks
-+ attempting to prevent read past end of section.
-+
- 2019-02-04 Nick Clifton <nickc@redhat.com>
-
- * development.sh (experimental) Set to false.
-diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
-index ff1093c..7e75104 100644
---- a/bfd/pei-x86_64.c
-+++ b/bfd/pei-x86_64.c
-@@ -541,7 +541,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
- /* virt_size might be zero for objects. */
- if (stop == 0 && strcmp (abfd->xvec->name, "pe-x86-64") == 0)
- {
-- stop = (datasize / onaline) * onaline;
-+ stop = datasize;
- virt_size_is_zero = TRUE;
- }
- else if (datasize < stop)
-@@ -551,8 +551,8 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
- _("Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"),
- pdata_section->name, (unsigned long) datasize,
- (unsigned long) stop);
-- /* Be sure not to read passed datasize. */
-- stop = datasize / onaline;
-+ /* Be sure not to read past datasize. */
-+ stop = datasize;
- }
-
- /* Display functions table. */
-@@ -724,8 +724,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
- altent += imagebase;
-
- if (altent >= pdata_vma
-- && (altent + PDATA_ROW_SIZE <= pdata_vma
-- + pei_section_data (abfd, pdata_section)->virt_size))
-+ && altent - pdata_vma + PDATA_ROW_SIZE <= stop)
- {
- pex64_get_runtime_function
- (abfd, &arf, &pdata[altent - pdata_vma]);
---
-2.7.4
-
diff --git a/meta/recipes-devtools/binutils/binutils/CVE-2019-9075.patch b/meta/recipes-devtools/binutils/binutils/CVE-2019-9075.patch
deleted file mode 100644
index bcb1310f16..0000000000
--- a/meta/recipes-devtools/binutils/binutils/CVE-2019-9075.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 8abac8031ed369a2734b1cdb7df28a39a54b4b49 Mon Sep 17 00:00:00 2001
-From: Alan Modra <amodra@gmail.com>
-Date: Wed, 20 Feb 2019 08:21:24 +1030
-Subject: [PATCH] PR24236, Heap buffer overflow in
- _bfd_archive_64_bit_slurp_armap
-
- PR 24236
- * archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
- sentinel NUL to string buffer nearer to loop where it is used.
- Don't go past sentinel when scanning strings, and don't write
- NUL again.
- * archive.c (do_slurp_coff_armap): Simplify string handling to
- archive64.c style.
-
-Upstream-Status: Backport [https://github.com/bminor/binutils-gdb/commit/8abac8031ed369a2734b1cdb7df28a39a54b4b49]
-CVE: CVE-2019-9075
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- bfd/ChangeLog | 10 ++++++++++
- bfd/archive.c | 17 +++++++----------
- bfd/archive64.c | 10 +++++-----
- 3 files changed, 22 insertions(+), 15 deletions(-)
-
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 72c87c7..e39bb12 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1,3 +1,13 @@
-+2019-02-20 Alan Modra <amodra@gmail.com>
-+
-+ PR 24236
-+ * archive64.c (_bfd_archive_64_bit_slurp_armap): Move code adding
-+ sentinel NUL to string buffer nearer to loop where it is used.
-+ Don't go past sentinel when scanning strings, and don't write
-+ NUL again.
-+ * archive.c (do_slurp_coff_armap): Simplify string handling to
-+ archive64.c style.
-+
- 2019-02-19 Alan Modra <amodra@gmail.com>
-
- PR 24235
-diff --git a/bfd/archive.c b/bfd/archive.c
-index d2d9b72..68a92a3 100644
---- a/bfd/archive.c
-+++ b/bfd/archive.c
-@@ -1012,6 +1012,7 @@ do_slurp_coff_armap (bfd *abfd)
- int *raw_armap, *rawptr;
- struct artdata *ardata = bfd_ardata (abfd);
- char *stringbase;
-+ char *stringend;
- bfd_size_type stringsize;
- bfd_size_type parsed_size;
- carsym *carsyms;
-@@ -1071,22 +1072,18 @@ do_slurp_coff_armap (bfd *abfd)
- }
-
- /* OK, build the carsyms. */
-- for (i = 0; i < nsymz && stringsize > 0; i++)
-+ stringend = stringbase + stringsize;
-+ *stringend = 0;
-+ for (i = 0; i < nsymz; i++)
- {
-- bfd_size_type len;
--
- rawptr = raw_armap + i;
- carsyms->file_offset = swap ((bfd_byte *) rawptr);
- carsyms->name = stringbase;
-- /* PR 17512: file: 4a1d50c1. */
-- len = strnlen (stringbase, stringsize);
-- if (len < stringsize)
-- len ++;
-- stringbase += len;
-- stringsize -= len;
-+ stringbase += strlen (stringbase);
-+ if (stringbase != stringend)
-+ ++stringbase;
- carsyms++;
- }
-- *stringbase = 0;
-
- ardata->symdef_count = nsymz;
- ardata->first_file_filepos = bfd_tell (abfd);
-diff --git a/bfd/archive64.c b/bfd/archive64.c
-index 312bf82..42f6ed9 100644
---- a/bfd/archive64.c
-+++ b/bfd/archive64.c
-@@ -100,8 +100,6 @@ _bfd_archive_64_bit_slurp_armap (bfd *abfd)
- return FALSE;
- carsyms = ardata->symdefs;
- stringbase = ((char *) ardata->symdefs) + carsym_size;
-- stringbase[stringsize] = 0;
-- stringend = stringbase + stringsize;
-
- raw_armap = (bfd_byte *) bfd_alloc (abfd, ptrsize);
- if (raw_armap == NULL)
-@@ -115,15 +113,17 @@ _bfd_archive_64_bit_slurp_armap (bfd *abfd)
- goto release_raw_armap;
- }
-
-+ stringend = stringbase + stringsize;
-+ *stringend = 0;
- for (i = 0; i < nsymz; i++)
- {
- carsyms->file_offset = bfd_getb64 (raw_armap + i * 8);
- carsyms->name = stringbase;
-- if (stringbase < stringend)
-- stringbase += strlen (stringbase) + 1;
-+ stringbase += strlen (stringbase);
-+ if (stringbase != stringend)
-+ ++stringbase;
- ++carsyms;
- }
-- *stringbase = '\0';
-
- ardata->symdef_count = nsymz;
- ardata->first_file_filepos = bfd_tell (abfd);
---
-2.7.4
-
diff --git a/meta/recipes-devtools/binutils/binutils/CVE-2019-9076.patch b/meta/recipes-devtools/binutils/binutils/CVE-2019-9076.patch
deleted file mode 100644
index ec8cde2503..0000000000
--- a/meta/recipes-devtools/binutils/binutils/CVE-2019-9076.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 9f841c583880eb6d0194455c1583a766f853e628 Mon Sep 17 00:00:00 2001
-From: Alan Modra <amodra@gmail.com>
-Date: Wed, 20 Feb 2019 12:06:31 +1030
-Subject: [PATCH] PR24233, Out of memory
-
- PR 24233
- * objdump.c (dump_bfd_private_header): Print warning if
- bfd_print_private_bfd_data returns false.
-
-Upstream-Status: Backport [https://github.com/bminor/binutils-gdb/commit/7d272a55caebfc26ab2e15d1e9439bac978b9bb7]
-CVE: CVE-2019-9076
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- binutils/ChangeLog | 6 ++++++
- binutils/objdump.c | 4 +++-
- 2 files changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/binutils/ChangeLog b/binutils/ChangeLog
-index f837c37..d5dd7cb 100644
---- a/binutils/ChangeLog
-+++ b/binutils/ChangeLog
-@@ -1,3 +1,9 @@
-+2019-02-20 Alan Modra <amodra@gmail.com>
-+
-+ PR 24233
-+ * objdump.c (dump_bfd_private_header): Print warning if
-+ bfd_print_private_bfd_data returns false.
-+
- 2019-02-02 Nick Clifton <nickc@redhat.com>
-
- * configure: Regenerate.
-diff --git a/binutils/objdump.c b/binutils/objdump.c
-index 8725390..7d0c6a4 100644
---- a/binutils/objdump.c
-+++ b/binutils/objdump.c
-@@ -3178,7 +3178,9 @@ dump_bfd_header (bfd *abfd)
- static void
- dump_bfd_private_header (bfd *abfd)
- {
-- bfd_print_private_bfd_data (abfd, stdout);
-+ if (!bfd_print_private_bfd_data (abfd, stdout))
-+ non_fatal (_("warning: private headers incomplete: %s"),
-+ bfd_errmsg (bfd_get_error ()));
- }
-
- static void
---
-2.7.4
-
diff --git a/meta/recipes-devtools/binutils/binutils/CVE-2019-9077.patch b/meta/recipes-devtools/binutils/binutils/CVE-2019-9077.patch
deleted file mode 100644
index 11ecb71b2e..0000000000
--- a/meta/recipes-devtools/binutils/binutils/CVE-2019-9077.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f7bbc8890de45df6eda0ddef5dd04f835f54eecf Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Wed, 20 Feb 2019 17:03:47 +0000
-Subject: [PATCH] Fix a illegal memory access fault when parsing a corrupt MIPS
- option section using readelf.
-
- PR 24243
- * readelf.c (process_mips_specific): Check for an options section
- that is too small to even contain a single option.
-
-Upstream-Status: Backport [https://github.com/bminor/binutils-gdb/commit/7fc0c668f2aceb8582d74db1ad2528e2bba8a921]
-CVE: CVE-2019-9077
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- binutils/readelf.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/binutils/readelf.c b/binutils/readelf.c
-index 9df3742..18ab806 100644
---- a/binutils/readelf.c
-+++ b/binutils/readelf.c
-@@ -16179,6 +16179,12 @@ process_mips_specific (Filedata * filedata)
- error (_("No MIPS_OPTIONS header found\n"));
- return FALSE;
- }
-+ /* PR 24243 */
-+ if (sect->sh_size < sizeof (* eopt))
-+ {
-+ error (_("The MIPS options section is too small.\n"));
-+ return FALSE;
-+ }
-
- eopt = (Elf_External_Options *) get_data (NULL, filedata, options_offset, 1,
- sect->sh_size, _("options"));
---
-2.7.4
-
diff --git a/meta/recipes-devtools/binutils/binutils_2.32.bb b/meta/recipes-devtools/binutils/binutils_2.35.bb
index 89315915c4..2e645e1ed8 100644
--- a/meta/recipes-devtools/binutils/binutils_2.32.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
@@ -49,7 +54,12 @@ do_install_class-native () {
# Split out libbfd-*.so so including perf doesn't include extra stuff
PACKAGE_BEFORE_PN += "libbfd"
-FILES_libbfd = "${libdir}/libbfd-*.so"
+FILES_libbfd = "${libdir}/libbfd-*.so.* ${libdir}/libbfd-*.so"
+
+SRC_URI_append_class-nativesdk = " file://0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch "
+
+USE_ALTERNATIVES_FOR_class-nativesdk = ""
+FILES_${PN}_append_class-nativesdk = " ${bindir}"
BBCLASSEXTEND = "native nativesdk"
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.4.1.bb b/meta/recipes-devtools/bison/bison_3.7.2.bb
index 7946e20c57..ace4ea5c3f 100644
--- a/meta/recipes-devtools/bison/bison_3.4.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] = "201286a573b12da109df96282fe4ff4a"
-SRC_URI[sha256sum] = "27159ac5ebf736dffd5636fd2cd625767c9e437de65baa63cb0de83570bd820d"
-
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.2.2.bb b/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb
index 6b73c01dcc..e61ea9bf89 100644
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.2.2.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 = "55a8c9626fb906c20c3206f8fd39b9a8fb259b79"
+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.3.bb b/meta/recipes-devtools/ccache/ccache_3.7.3.bb
deleted file mode 100644
index c6a682ee0d..0000000000
--- a/meta/recipes-devtools/ccache/ccache_3.7.3.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require ccache.inc
-
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=0094c59039cec66b8a4c905204333514"
-
-SRC_URI[md5sum] = "7be62ea6e190941a8c12a3d5394fd926"
-SRC_URI[sha256sum] = "355955a61562c53c4ec4669e1c92708b0008f50d214b27f07a87cf4a1fa6b01e"
diff --git a/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb b/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
index 78e1565e47..c08da6cdca 100644
--- a/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
+++ b/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
@@ -7,8 +7,10 @@ SECTION = "console/utils"
LICENSE = "GPLv2 & CDDL-1.0 & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=32f68170be424c2cd64804337726b312"
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${REALPV}.tar.bz2"
-UPSTREAM_VERSION_UNKNOWN = "1"
+SRC_URI = " \
+ ${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${PV}.tar.bz2 \
+ file://0001-Don-t-set-uid-gid-during-install.patch \
+ "
SRC_URI[md5sum] = "7d45c5b7e1f78d85d1583b361aee6e8b"
SRC_URI[sha256sum] = "ed282eb6276c4154ce6a0b5dee0bdb81940d0cbbfc7d03f769c4735ef5f5860f"
@@ -20,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/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch b/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch
new file mode 100644
index 0000000000..9d38294b41
--- /dev/null
+++ b/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch
@@ -0,0 +1,27 @@
+From 529cd5b007aa681c3ca14e5ab1e30469dd51646b Mon Sep 17 00:00:00 2001
+From: Paul Barker <paul@betafive.co.uk>
+Date: Tue, 12 Nov 2019 22:17:19 +0000
+Subject: [PATCH] Don't set uid/gid during install
+
+Signed-off-by: Paul Barker <paul@betafive.co.uk>
+Upstream-Status: Inappropriate [native]
+---
+ RULES/rules.prg | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/RULES/rules.prg b/RULES/rules.prg
+index 023555c..f70f1a7 100644
+--- a/RULES/rules.prg
++++ b/RULES/rules.prg
+@@ -94,7 +94,7 @@ INSGRP= $(__DEFINSGRP:$(_UNIQ)%=%)
+
+ LD= @echo " ==> LINKING \"$@\""; ld
+ LOCALIZE= @echo " ==> LOCALIZING \"$@\""; $(RM_F) $@; cp
+-INSTALL= @echo " ==> INSTALLING \"$@\""; sh $(SRCROOT)/conf/install-sh -c -m $(INSMODEINS) -o $(INSUSR) -g $(INSGRP)
++INSTALL= @echo " ==> INSTALLING \"$@\""; sh $(SRCROOT)/conf/install-sh -c -m $(INSMODEINS)
+ CHMOD= @echo " ==> SETTING PERMISSIONS ON \"$@\""; chmod
+ CHOWN= @echo " ==> SETTING OWNER ON \"$@\""; chown
+ CHGRP= @echo " ==> SETTING GROUP ON \"$@\""; chgrp
+--
+2.24.0
+
diff --git a/meta/recipes-devtools/cmake/cmake-native_3.15.3.bb b/meta/recipes-devtools/cmake/cmake-native_3.18.2.bb
index b2952ee5f5..d91e42ef9a 100644
--- a/meta/recipes-devtools/cmake/cmake-native_3.15.3.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 35d78eea17..fa1b818ae4 100644
--- a/meta/recipes-devtools/cmake/cmake.inc
+++ b/meta/recipes-devtools/cmake/cmake.inc
@@ -5,15 +5,13 @@ SUMMARY = "Cross-platform, open-source make system"
DESCRIPTION = "CMake is used to control the software compilation process \
using simple platform and compiler independent configuration files. CMake \
generates native makefiles and workspaces that can be used in the compiler \
-environment of your choice. CMake is quite sophisticated: it is possible to \
-support complex environments requiring system configuration, pre-processor \
-generation, code generation, and template instantiation."
+environment of your choice."
HOMEPAGE = "http://www.cmake.org/"
BUGTRACKER = "http://public.kitware.com/Bug/my_view_page.php"
SECTION = "console/utils"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://Copyright.txt;md5=622747147b46f22e1953876a7cba3323 \
- file://Source/cmake.h;md5=4494dee184212fc89c469c3acd555a14;beginline=1;endline=3 \
+LICENSE = "BSD-3-Clause"
+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])}"
@@ -24,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] = "bf69e837eeda3dd4e9f52cffcf546a11"
-SRC_URI[sha256sum] = "13958243a01365b05652fa01b21d40fa834f70a9e30efa69c02604e64f58b8f5"
+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 3720833d3e..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 1e67c3fe52c6c51c00cf1ebb0bfc30c7a5ef9fdb 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 db229e63e2..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 5cb6c86696f842274043e7d406f84b3ead1c36e0 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 e73b277..91b8b67 100644
+index db6dbf3..5b26879 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
-@@ -1348,7 +1348,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 69f8162..f389523 100644
+index 10e66c3..ecc4eeb 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
-@@ -334,7 +334,7 @@ add_RunCMake_test(configure_file)
- add_RunCMake_test(CTestTimeoutAfterMatch)
+@@ -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 d7d87a5256..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 b003857d3481105c473e2e75bad4e9e2c6e70004 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
@@ -25,7 +25,7 @@ Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake
-index a145b46..7e18243 100644
+index 3993968..b2a8585 100644
--- a/Modules/FindQt4.cmake
+++ b/Modules/FindQt4.cmake
@@ -518,7 +518,7 @@ endfunction()
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 676e2857d7..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 d4a78e8739e845c2963666f7ef6a6c7a89827988 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
@@ -28,7 +28,7 @@ Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
1 file changed, 20 insertions(+), 19 deletions(-)
diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake
-index 7e18243..497d5c3 100644
+index b2a8585..77c89aa 100644
--- a/Modules/FindQt4.cmake
+++ b/Modules/FindQt4.cmake
@@ -988,25 +988,26 @@ if (QT_QMAKE_EXECUTABLE AND
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.15.3.bb b/meta/recipes-devtools/cmake/cmake_3.18.2.bb
index e0457677e8..64c92b89f2 100644
--- a/meta/recipes-devtools/cmake/cmake_3.15.3.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.0.bb b/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb
index ae0a35da84..c6d8963072 100644
--- a/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.0.bb
+++ b/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb
@@ -8,16 +8,16 @@ SRC_URI = "git://github.com/rpm-software-management/createrepo_c \
file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
"
-SRCREV = "2077ba104eae04bb819e9e0c906c8c835b62e7a6"
+SRCREV = "bac48ace91c51abe37792415e75452bbabd44d93"
S = "${WORKDIR}/git"
-DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm libmodulemd"
+DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm"
DEPENDS_append_class-native = " file-replacement-native"
inherit cmake pkgconfig bash-completion distutils3-base
-EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF"
+EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF -DWITH_LIBMODULEMD=OFF"
BBCLASSEXTEND = "native nativesdk"
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/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch b/meta/recipes-devtools/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch
new file mode 100644
index 0000000000..5bd94d7de4
--- /dev/null
+++ b/meta/recipes-devtools/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch
@@ -0,0 +1,24 @@
+From 004bd80d2523f538467b5ada2623eb207b55dad7 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 20 Dec 2019 15:44:28 +0100
+Subject: [PATCH] aclocal.m4: add missing header defines
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ aclocal.m4 | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/aclocal.m4 b/aclocal.m4
+index 3b19e82..c0c4acb 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -1927,3 +1927,8 @@ make an error
+ fi
+ fi # cf_cv_posix_visible
+ ])
++
++AC_DEFINE([HAVE_TCGETATTR], [], [Description])
++AC_DEFINE([HAVE_TCSETATTR], [], [Description])
++AC_DEFINE([HAVE_TERMIOS_H], [], [Description])
++
diff --git a/meta/recipes-devtools/diffstat/diffstat_1.62.bb b/meta/recipes-devtools/diffstat/diffstat_1.63.bb
index 93d77797c9..ee0a7e7bd6 100644
--- a/meta/recipes-devtools/diffstat/diffstat_1.62.bb
+++ b/meta/recipes-devtools/diffstat/diffstat_1.63.bb
@@ -10,10 +10,11 @@ LIC_FILES_CHKSUM = "file://install-sh;endline=42;md5=b3549726c1022bee09c174c72a0
SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \
file://run-ptest \
file://avoid-check-user-break-cc.patch \
-"
+ file://0001-aclocal.m4-add-missing-header-defines.patch \
+ "
-SRC_URI[md5sum] = "91e106bb34cb097750db7ddc0ba1d8fc"
-SRC_URI[sha256sum] = "7f09183644ed77a156b15346bbad4e89c93543e140add9dab18747e30522591f"
+SRC_URI[md5sum] = "b9272ec8af6257103261ec3622692991"
+SRC_URI[sha256sum] = "7eddd53401b99b90bac3f7ebf23dd583d7d99c6106e67a4f1161b7a20110dc6f"
S = "${WORKDIR}/diffstat-${PV}"
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 f38167f1ad..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"
@@ -84,3 +86,5 @@ SYSTEMD_SERVICE_${PN} = "dnf-makecache.service dnf-makecache.timer \
dnf-automatic-notifyonly.service dnf-automatic-notifyonly.timer \
"
SYSTEMD_AUTO_ENABLE ?= "disable"
+
+PNBLACKLIST[dnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}"
diff --git a/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb b/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb
index 69aa81af44..97ce449954 100644
--- a/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb
+++ b/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb
@@ -22,4 +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.inc b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
index a54a11c354..009f5ed807 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
@@ -4,9 +4,9 @@ fixing, configuring , and debugging ext2 filesystems."
HOMEPAGE = "http://e2fsprogs.sourceforge.net/"
LICENSE = "GPLv2 & LGPLv2 & BSD & MIT"
+LICENSE_e2fsprogs-dumpe2fs = "GPLv2"
LICENSE_e2fsprogs-e2fsck = "GPLv2"
LICENSE_e2fsprogs-mke2fs = "GPLv2"
-LICENSE_e2fsprogs-fsck = "GPLv2"
LICENSE_e2fsprogs-tune2fs = "GPLv2"
LICENSE_e2fsprogs-badblocks = "GPLv2"
LIC_FILES_CHKSUM = "file://NOTICE;md5=d50be0580c0b0a7fbc7a4830bbe6c12b \
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-configure.ac-correct-AM_GNU_GETTEXT.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-configure.ac-correct-AM_GNU_GETTEXT.patch
new file mode 100644
index 0000000000..2719594c2f
--- /dev/null
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-configure.ac-correct-AM_GNU_GETTEXT.patch
@@ -0,0 +1,26 @@
+From f907fea9ea053d5433b5199ce74008664141f753 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 19 Nov 2019 17:32:33 +0100
+Subject: [PATCH] configure.ac: correct AM_GNU_GETTEXT
+
+New version of gettext require the 'external' argument.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 654ff43d..4772b97b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -873,7 +873,7 @@ AC_SUBST(GETTEXT_PACKAGE)
+ AC_SUBST(PACKAGE)
+ AC_SUBST(VERSION)
+
+-AM_GNU_GETTEXT
++AM_GNU_GETTEXT([external])
+ dnl @MKDIR_P@ is expanded in AM_GNU_GETTEXT
+ AC_SUBST([mkdir_p],['$(MKDIR_P)'])
+ dnl
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-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch
new file mode 100644
index 0000000000..31b585fc9a
--- /dev/null
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch
@@ -0,0 +1,27 @@
+From d034239f05cfba849f6ad16eb3f1ea37efbe4f95 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 19 Nov 2019 18:34:00 +0100
+Subject: [PATCH] intl: do not try to use gettext defines that no longer exist
+
+Newer version of gettext no longer define this in m4 files,
+so patch it out until e2fsprogs upstream sorts the situation.
+
+Upstream-Status: Inappropriate [hardcodes a choice]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ intl/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/intl/Makefile.in b/intl/Makefile.in
+index e037e23c..89a876b8 100644
+--- a/intl/Makefile.in
++++ b/intl/Makefile.in
+@@ -175,7 +175,7 @@ libgnuintl.h.msvc-static libgnuintl.h.msvc-shared README.woe32 Makefile.msvc
+ DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
+ COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h
+
+-all: all-@USE_INCLUDED_LIBINTL@
++all:
+ all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
+ all-no: all-no-@BUILD_INCLUDED_LIBINTL@
+ all-no-yes: libgnuintl.$la
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 69c09bc1d7..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 c7914309aeee6209ddb6995c084805a911d9cc82 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.
@@ -19,7 +19,7 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/support/profile.c b/lib/support/profile.c
-index 9e96673b..32d83002 100644
+index 585ed595..810dd66b 100644
--- a/lib/support/profile.c
+++ b/lib/support/profile.c
@@ -335,7 +335,7 @@ profile_init(const char * const *files, profile_t *ret_profile)
@@ -31,6 +31,3 @@ index 9e96673b..32d83002 100644
strcmp(*fs, default_filename))
goto errout;
---
-2.16.1
-
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
index 830e9d57a5..aac88eed98 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
@@ -1,14 +1,23 @@
+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
+
When executing a script don't echo every command, as we do this for entire
filesystems at rootfs time.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@intel.com>
+---
+ debugfs/debugfs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
-index 5590295..ac57292 100644
+index 15b01214..15164df2 100644
--- a/debugfs/debugfs.c
+++ b/debugfs/debugfs.c
-@@ -2378,7 +2378,7 @@ static int source_file(const char *cmd_file, int ss_idx)
+@@ -2492,7 +2492,7 @@ static int source_file(const char *cmd_file, int ss_idx)
cp = strchr(buf, '\r');
if (cp)
*cp = 0;
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.3.bb b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb
index fdc9454b58..15054768dd 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.3.bb
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb
@@ -1,17 +1,19 @@
require e2fsprogs.inc
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://run-ptest \
+ file://ptest.patch \
+ file://mkdir_p.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 = "1f56fb81236fe3e25e2c60c1e89ea0aa7cb36260"
+SRCREV = "506d96fe640f76ab04276e0a7c578aa108ce19f8"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
@@ -80,12 +82,13 @@ do_install_append_class-target() {
mv ${D}${base_sbindir}/tune2fs ${D}${base_sbindir}/tune2fs.e2fsprogs
}
-RDEPENDS_e2fsprogs = "e2fsprogs-badblocks"
+RDEPENDS_e2fsprogs = "e2fsprogs-badblocks e2fsprogs-dumpe2fs"
RRECOMMENDS_e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck"
-PACKAGES =+ "e2fsprogs-e2fsck e2fsprogs-e2scrub e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs"
+PACKAGES =+ "e2fsprogs-badblocks e2fsprogs-dumpe2fs e2fsprogs-e2fsck e2fsprogs-e2scrub e2fsprogs-mke2fs e2fsprogs-resize2fs e2fsprogs-tune2fs"
PACKAGES =+ "libcomerr libss libe2p libext2fs"
+FILES_e2fsprogs-dumpe2fs = "${base_sbindir}/dumpe2fs"
FILES_e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*"
FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*"
FILES_e2fsprogs-e2scrub = "${base_sbindir}/e2scrub*"
@@ -115,7 +118,7 @@ ALTERNATIVE_LINK_NAME[tune2fs] = "${base_sbindir}/tune2fs"
RDEPENDS_e2fsprogs-e2scrub = "bash"
RDEPENDS_${PN}-ptest += "coreutils procps bash bzip2 diffutils perl sed"
-RDEPENDS_${PN}-ptest += "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs"
+RDEPENDS_${PN}-ptest += "e2fsprogs-badblocks e2fsprogs-dumpe2fs e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-resize2fs e2fsprogs-tune2fs"
do_compile_ptest() {
oe_runmake -C ${B}/tests
diff --git a/meta/recipes-devtools/elfutils/elfutils_0.177.bb b/meta/recipes-devtools/elfutils/elfutils_0.180.bb
index 78c3791936..61e46a4ed7 100644
--- a/meta/recipes-devtools/elfutils/elfutils_0.177.bb
+++ b/meta/recipes-devtools/elfutils/elfutils_0.180.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://sourceware.org/elfutils"
SECTION = "base"
LICENSE = "GPLv2 & LGPLv3+ & GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "libtool bzip2 zlib virtual/libintl"
+DEPENDS = "zlib virtual/libintl"
DEPENDS_append_libc-musl = " argp-standalone fts musl-obstack "
# The Debian patches below are from:
# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz
@@ -13,50 +13,39 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
file://0003-fixheadercheck.patch \
file://0004-Disable-the-test-to-convert-euc-jp.patch \
file://0006-Fix-build-on-aarch64-musl.patch \
- file://0007-Fix-control-path-where-we-have-str-as-uninitialized-.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://musl-obstack-fts.patch \
- file://musl-libs.patch \
- file://musl-utils.patch \
- file://musl-tests.patch \
+ 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] = "0b583722f911e1632544718d502aab87"
-SRC_URI[sha256sum] = "fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc05042e"
+SRC_URI[sha256sum] = "b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d"
-inherit autotools gettext ptest
+inherit autotools gettext ptest pkgconfig
+
+EXTRA_OECONF = "--program-prefix=eu- --disable-debuginfod"
+
+DEPENDS_BZIP2 = "bzip2-replacement-native"
+DEPENDS_BZIP2_class-target = "bzip2"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}"
+PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
-EXTRA_OECONF = "--program-prefix=eu- --without-lzma"
-EXTRA_OECONF_append_class-native = " --without-bzlib"
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"
-do_install_append() {
- if [ "${TARGET_ARCH}" != "x86_64" ] && [ -z `echo "${TARGET_ARCH}"|grep 'i.86'` ];then
- rm -f ${D}${bindir}/eu-objdump
- fi
-}
+RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
do_compile_ptest() {
cd ${B}/tests
@@ -66,10 +55,11 @@ do_compile_ptest() {
do_install_ptest() {
if [ ${PTEST_ENABLED} = "1" ]; then
# copy the files which needed by the cases
- TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint"
+ TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip"
install -d -m 755 ${D}${PTEST_PATH}/src
install -d -m 755 ${D}${PTEST_PATH}/libelf
install -d -m 755 ${D}${PTEST_PATH}/libdw
+ install -d -m 755 ${D}${PTEST_PATH}/libasm
for test_file in ${TEST_FILES}; do
if [ -f ${B}/src/${test_file} ]; then
cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src
@@ -77,6 +67,7 @@ do_install_ptest() {
done
cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so
cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so
+ cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so
cp -r ${S}/tests/ ${D}${PTEST_PATH}
cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests
cp -r ${B}/config.h ${D}${PTEST_PATH}
@@ -123,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
@@ -131,6 +124,7 @@ INHIBIT_PACKAGE_STRIP_FILES = "\
${PKGD}${PTEST_PATH}/tests/elfstrmerge \
${PKGD}${PTEST_PATH}/tests/backtrace-child \
${PKGD}${PTEST_PATH}/tests/backtrace-data \
+ ${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \
${PKGD}${PTEST_PATH}/tests/deleted \
${PKGD}${PTEST_PATH}/src/strip \
${PKGD}${PTEST_PATH}/src/addr2line \
@@ -139,10 +133,14 @@ INHIBIT_PACKAGE_STRIP_FILES = "\
${PKGD}${PTEST_PATH}/src/readelf \
${PKGD}${PTEST_PATH}/src/nm \
${PKGD}${PTEST_PATH}/src/elflint \
+ ${PKGD}${PTEST_PATH}/src/elfclassify \
+ ${PKGD}${PTEST_PATH}/src/stack \
+ ${PKGD}${PTEST_PATH}/src/unstrip \
${PKGD}${PTEST_PATH}/libelf/libelf.so \
${PKGD}${PTEST_PATH}/libdw/libdw.so \
+ ${PKGD}${PTEST_PATH}/libasm/libasm.so \
${PKGD}${PTEST_PATH}/backends/libebl_i386.so \
${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \
"
-PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1"
+PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1"
diff --git a/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch b/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch
index af79ef496d..62031073e3 100644
--- a/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch
+++ b/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch
@@ -1,4 +1,4 @@
-From b99aa12cf879ce200e03d75e543c7ab2dfa5503b Mon Sep 17 00:00:00 2001
+From ec9a7742734aae5417c0ebbffce66ac353e6cae7 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 15 Aug 2017 17:10:57 +0800
Subject: [PATCH] dso link change
@@ -23,10 +23,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
-index 2b1c0dc..9305b84 100644
+index e462e7d..ea1215b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -44,7 +44,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl
+@@ -45,7 +45,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread
libelf = ../libelf/libelf.a -lz
else
libasm = ../libasm/libasm.so
@@ -34,12 +34,12 @@ index 2b1c0dc..9305b84 100644
+libdw = ../libdw/libdw.so $(zip_LIBS) $(libelf) $(libebl) -ldl
libelf = ../libelf/libelf.so
endif
- libebl = ../libebl/libebl.a
+ libebl = ../libebl/libebl.a ../backends/libebl_backends.a ../libcpu/libcpu.a
diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 1b0c7d3..bced19b 100644
+index eab4ae6..f59a01f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
-@@ -476,7 +476,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl
+@@ -516,7 +516,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread
libelf = ../libelf/libelf.a -lz
libasm = ../libasm/libasm.a
else
diff --git a/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch b/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch
index 0d533c8f10..73ead6d412 100644
--- a/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch
+++ b/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch
@@ -1,4 +1,4 @@
-From d7be687c35fa42954874034c82ca9059d28196fe Mon Sep 17 00:00:00 2001
+From 8e5fff8b1d819e0870fb22b27950bb5f10c7a272 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 4 Oct 2017 22:30:46 -0700
Subject: [PATCH] libasm may link with libbz2 if found
@@ -17,16 +17,16 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
-index 9305b84..9b7e853 100644
+index ea1215b..13d9bda 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -39,11 +39,11 @@ EXTRA_DIST += make-debug-archive.in
+@@ -40,11 +40,11 @@ EXTRA_DIST += make-debug-archive.in
CLEANFILES += make-debug-archive
if BUILD_STATIC
-libasm = ../libasm/libasm.a
+libasm = ../libasm/libasm.a $(zip_LIBS)
- libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl
+ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread
libelf = ../libelf/libelf.a -lz
else
-libasm = ../libasm/libasm.so
diff --git a/meta/recipes-devtools/elfutils/files/musl-obstack-fts.patch b/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch
index 40f2b69cf4..2450b0d6b8 100644
--- a/meta/recipes-devtools/elfutils/files/musl-obstack-fts.patch
+++ b/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch
@@ -1,7 +1,7 @@
-From 77b89dbc9f9f965ad0ef2e341d7d46bce5f07549 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/3] 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
@@ -12,17 +12,18 @@ Upstream-Status: Inappropriate [workaround for musl]
Rebase to 0.177
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
- configure.ac | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.ac | 54 +++++++++++++++++++++++++++++++++++++++++++++++
libdw/Makefile.am | 2 +-
- src/Makefile.am | 8 ++++----
- 3 files changed, 59 insertions(+), 5 deletions(-)
+ src/Makefile.am | 6 +++---
+ 3 files changed, 58 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
-index f93964c..b87b762 100644
+index e9649c2..03643c8 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -494,6 +494,60 @@ else
+@@ -538,6 +538,60 @@ else
fi
AC_SUBST([argp_LDADD])
@@ -84,45 +85,40 @@ index f93964c..b87b762 100644
dnl Documentation.
diff --git a/libdw/Makefile.am b/libdw/Makefile.am
-index 7a3d532..a541fa3 100644
+index 33b5838..ff92e02 100644
--- a/libdw/Makefile.am
+++ b/libdw/Makefile.am
-@@ -108,7 +108,7 @@ am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
- libdw_so_LIBS = libdw_pic.a ../libdwelf/libdwelf_pic.a \
- ../libdwfl/libdwfl_pic.a ../libebl/libebl.a
+@@ -109,7 +109,7 @@ libdw_so_LIBS = ../libebl/libebl_pic.a ../backends/libebl_backends_pic.a \
+ ../libcpu/libcpu_pic.a libdw_pic.a ../libdwelf/libdwelf_pic.a \
+ ../libdwfl/libdwfl_pic.a
libdw_so_DEPS = ../lib/libeu.a ../libelf/libelf.so
--libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS)
-+libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(fts_LDADD) $(zip_LIBS)
+-libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS) -pthread
++libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(fts_LDADD) $(zip_LIBS) -pthread
libdw_so_SOURCES =
libdw.so$(EXEEXT): $(srcdir)/libdw.map $(libdw_so_LIBS) $(libdw_so_DEPS)
- # The rpath is necessary for libebl because its $ORIGIN use will
+ $(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $@ \
diff --git a/src/Makefile.am b/src/Makefile.am
-index b72f853..2f3dfce 100644
+index 13d9bda..d5a4f7d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -69,8 +69,8 @@ ar_no_Wstack_usage = yes
+@@ -69,7 +69,7 @@ ar_no_Wstack_usage = yes
unstrip_no_Wstack_usage = yes
- readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
--nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl \
-- $(demanglelib)
-+nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) \
-+ $(obstack_LDADD) -ldl $(demanglelib)
+ readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD)
+-nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) \
++nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) $(obstack_LDADD) \
+ $(demanglelib)
size_LDADD = $(libelf) $(libeu) $(argp_LDADD)
- strip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl
- elflint_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
+ strip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
@@ -78,9 +78,9 @@ findtextrel_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD)
addr2line_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) $(demanglelib)
- elfcmp_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
- objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
+ elfcmp_LDADD = $(libebl) $(libdw) $(libelf) $(libeu) $(argp_LDADD)
+ objdump_LDADD = $(libasm) $(libebl) $(libdw) $(libelf) $(libeu) $(argp_LDADD)
-ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD)
+ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) $(obstack_LDADD)
strings_LDADD = $(libelf) $(libeu) $(argp_LDADD)
-ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD)
+ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) $(obstack_LDADD)
- unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl
- stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl $(demanglelib)
+ 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.7.4
-
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/musl-libs.patch b/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch
index b9b9f120df..d5ec0ec9e5 100644
--- a/meta/recipes-devtools/elfutils/files/musl-libs.patch
+++ b/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch
@@ -1,7 +1,7 @@
-From d5a1651df9884fcf57ed320bc2f866538af2f420 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/3] musl-libs
+Subject: [PATCH] musl-libs
Collection of fixes needed to compile libelf and other libraries
provided by elfutils for musl targets
@@ -14,6 +14,7 @@ Upstream-Status: Inappropriate [workaround for musl]
Rebase to 0.177
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
lib/error.h | 27 +++++++++++++++++++++++++++
lib/fixedsizehash.h | 1 -
@@ -103,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 @@
@@ -115,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 @@
@@ -129,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
-
@@ -139,6 +140,3 @@ index bed273d..be228e6 100644
+}
+#endif
#endif /* elf.h */
---
-2.7.4
-
diff --git a/meta/recipes-devtools/elfutils/files/musl-utils.patch b/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
index a8ad931236..4f28d9d027 100644
--- a/meta/recipes-devtools/elfutils/files/musl-utils.patch
+++ b/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
@@ -1,7 +1,7 @@
-From 7f5e2fd86d54e0a4d195ec65afb9b411829dff9f 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/3] musl-utils
+Subject: [PATCH] musl-utils
Provide missing defines which otherwise are available on glibc system headers
@@ -13,6 +13,7 @@ Upstream-Status: Inappropriate [workaround for musl]
Rebase to 0.177
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
src/arlib.h | 6 ++++++
src/elfcompress.c | 7 +++++++
@@ -57,10 +58,10 @@ index 6ba6af4..0c7674b 100644
ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
diff --git a/src/readelf.c b/src/readelf.c
-index 5c02a9b..817562d 100644
+index 5994615..f3cc071 100644
--- a/src/readelf.c
+++ b/src/readelf.c
-@@ -4813,10 +4813,11 @@ listptr_base (struct listptr *p)
+@@ -4829,10 +4829,11 @@ listptr_base (struct listptr *p)
return cudie_base (&cu);
}
@@ -74,7 +75,7 @@ index 5c02a9b..817562d 100644
struct listptr *p1 = (void *) a;
struct listptr *p2 = (void *) b;
-@@ -4832,21 +4833,21 @@ compare_listptr (const void *a, const void *b, void *arg)
+@@ -4848,21 +4849,21 @@ compare_listptr (const void *a, const void *b, void *arg)
p1->warned = p2->warned = true;
error (0, 0,
gettext ("%s %#" PRIx64 " used with different address sizes"),
@@ -99,7 +100,7 @@ index 5c02a9b..817562d 100644
}
if (p1->attr != p2 ->attr)
{
-@@ -4854,7 +4855,7 @@ compare_listptr (const void *a, const void *b, void *arg)
+@@ -4870,7 +4871,7 @@ compare_listptr (const void *a, const void *b, void *arg)
error (0, 0,
gettext ("%s %#" PRIx64
" used with different attribute %s and %s"),
@@ -108,7 +109,7 @@ index 5c02a9b..817562d 100644
dwarf_attr_name (p2->attr));
}
}
-@@ -4926,8 +4927,11 @@ static void
+@@ -4942,8 +4943,11 @@ static void
sort_listptr (struct listptr_table *table, const char *name)
{
if (table->n > 0)
@@ -141,7 +142,7 @@ index 4054c2a..d2d2176 100644
/* Name and version of program. */
diff --git a/src/unstrip.c b/src/unstrip.c
-index fc87832..21ea6b3 100644
+index 9b8c09a..1fb5063 100644
--- a/src/unstrip.c
+++ b/src/unstrip.c
@@ -56,6 +56,15 @@
@@ -160,6 +161,3 @@ index fc87832..21ea6b3 100644
/* Name and version of program. */
ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
---
-2.7.4
-
diff --git a/meta/recipes-devtools/elfutils/files/musl-tests.patch b/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch
index be35791b1a..481e4b38eb 100644
--- a/meta/recipes-devtools/elfutils/files/musl-tests.patch
+++ b/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch
@@ -1,4 +1,7 @@
-Fix error on musl:
+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] 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'?
@@ -11,10 +14,14 @@ Upstream-Status: Inappropriate [workaround in musl]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Index: elfutils-0.176/tests/elfstrmerge.c
-===================================================================
---- elfutils-0.176.orig/tests/elfstrmerge.c
-+++ elfutils-0.176/tests/elfstrmerge.c
+---
+ tests/elfstrmerge.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/tests/elfstrmerge.c b/tests/elfstrmerge.c
+index ba0d68d..1d2447f 100644
+--- a/tests/elfstrmerge.c
++++ b/tests/elfstrmerge.c
@@ -33,6 +33,11 @@
#include ELFUTILS_HEADER(dwelf)
#include "elf-knowledge.h"
diff --git a/meta/recipes-devtools/elfutils/files/0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch b/meta/recipes-devtools/elfutils/files/0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch
deleted file mode 100644
index 611a24c0f5..0000000000
--- a/meta/recipes-devtools/elfutils/files/0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 112d1645bab7922c7796fe32ddea8fa6e1bbded1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 29 Jun 2018 15:14:28 +0800
-Subject: [PATCH] Fix control path where we have str as uninitialized string
-
-|
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/work/i586-oe-linux-musl/elfutils/0.164-r0/elfutils-0.164/libcpu/i386_disasm.c:
-In function 'i386_disasm':
-|
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/work/i586-oe-linux-musl/elfutils/0.164-r0/elfutils-0.164/libcpu/i386_disasm.c:310:5:
-error: 'str' may be used uninitialized in this function
-[-Werror=maybe-uninitialized]
-| memcpy (buf + bufcnt, _str, _len); \
-| ^
-|
-/home/ubuntu/work/oe/openembedded-core/build/tmp-musl/work/i586-oe-linux-musl/elfutils/0.164-r0/elfutils-0.164/libcpu/i386_disasm.c:709:17:
-note: 'str' was declared here
-| const char *str;
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Rebase to 0.172
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- libcpu/i386_disasm.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libcpu/i386_disasm.c b/libcpu/i386_disasm.c
-index a7e03f9..837a3a8 100644
---- a/libcpu/i386_disasm.c
-+++ b/libcpu/i386_disasm.c
-@@ -821,6 +821,7 @@ i386_disasm (Ebl *ebl __attribute__((unused)),
- }
- FALLTHROUGH;
- default:
-+ str = "";
- assert (! "INVALID not handled");
- }
- }
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 4460d582c7..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff
+++ /dev/null
@@ -1,831 +0,0 @@
-From 8efad9105b38985bea373416ae8fcacf21d1d129 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 175468f..91a38e2 100644
---- a/backends/Makefile.am
-+++ b/backends/Makefile.am
-@@ -33,16 +33,19 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
-
-
- modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \
-- tilegx m68k bpf riscv csky
-+ tilegx m68k bpf riscv csky parisc
- libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
- libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
- libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \
- libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \
- libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \
-- libebl_csky_pic.a
-+ libebl_csky_pic.a libebl_parisc_pic.a
- noinst_LIBRARIES = $(libebl_pic)
- noinst_DATA = $(libebl_pic:_pic.a=.so)
-
-+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c
-+libebl_parisc_pic_a_SOURCES = $(parisc_SRCS)
-+am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os)
-
- libelf = ../libelf/libelf.so
- libdw = ../libdw/libdw.so
-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. */
---
-2.7.4
-
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 1097b0ec6f..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff
+++ /dev/null
@@ -1,717 +0,0 @@
-From 68b497668cde5171880d073a7ea50d11c3bddbfc 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 | 8 +-
- 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 | 2 +
- 7 files changed, 624 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 91a38e2..aba8a4a 100644
---- a/backends/Makefile.am
-+++ b/backends/Makefile.am
-@@ -33,13 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
-
-
- 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
- libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
- libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
- libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \
- libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \
- libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \
-- libebl_csky_pic.a libebl_parisc_pic.a
-+ libebl_csky_pic.a libebl_parisc_pic.a libebl_mips_pic.a
- noinst_LIBRARIES = $(libebl_pic)
- noinst_DATA = $(libebl_pic:_pic.a=.so)
-
-@@ -145,6 +145,10 @@ csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \
- libebl_csky_pic_a_SOURCES = $(csky_SRCS)
- am_libebl_csky_pic_a_OBJECTS = $(csky_SRCS:.c=.os)
-
-+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c
-+libebl_mips_pic_a_SOURCES = $(mips_SRCS)
-+am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
-+
- libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu)
- @rm -f $(@:.so=.map)
- $(AM_V_at)echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' \
-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 01711f5..d0c3589 100644
---- a/libebl/eblopenbackend.c
-+++ b/libebl/eblopenbackend.c
-@@ -71,6 +71,8 @@ static const struct
- { "sparc", "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 },
- { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 },
- { "s390", "ebl_s390", "s390", 4, EM_S390, 0, 0 },
-+ { "mips", "elf_mips", "mips", 4, EM_MIPS, 0, 0 },
-+ { "mips", "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 },
-
- { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 },
- { "m68k", "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB },
---
-2.7.4
-
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 fda4f68059..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From 96e38289f2887ddb8e6d2fb91ea04bdbdf034ab5 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 2/2] 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 aba8a4a..6ac0eec 100644
---- a/backends/Makefile.am
-+++ b/backends/Makefile.am
-@@ -145,7 +145,7 @@ csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \
- libebl_csky_pic_a_SOURCES = $(csky_SRCS)
- am_libebl_csky_pic_a_OBJECTS = $(csky_SRCS:.c=.os)
-
--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_mips_pic_a_SOURCES = $(mips_SRCS)
- am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
-
-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;
- }
---
-2.7.4
-
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.37.bb b/meta/recipes-devtools/file/file_5.39.bb
index 803aa9a271..0dcc90548a 100644
--- a/meta/recipes-devtools/file/file_5.37.bb
+++ b/meta/recipes-devtools/file/file_5.39.bb
@@ -5,30 +5,38 @@ HOMEPAGE = "http://www.darwinsys.com/file/"
SECTION = "console/utils"
# two clause BSD
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdda1b"
-DEPENDS = "zlib file-replacement-native"
-DEPENDS_class-native = "zlib-native"
-
-# Blacklist a bogus tag in upstream check
-UPSTREAM_CHECK_GITTAGREGEX = "FILE(?P<pver>(?!6_23).+)"
+DEPENDS = "file-replacement-native"
+DEPENDS_class-native = "bzip2-replacement-native"
SRC_URI = "git://github.com/file/file.git"
-SRCREV = "a0d5b0e4e9f97d74a9911e95cedd579852e25398"
+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"
+do_compile_append_class-native() {
+ oe_runmake check
+}
+
do_install_append_class-native() {
create_cmdline_wrapper ${D}/${bindir}/file \
--magic-file ${datadir}/misc/magic.mgc
diff --git a/meta/recipes-devtools/flex/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch b/meta/recipes-devtools/flex/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch
new file mode 100644
index 0000000000..60bf7ce8cf
--- /dev/null
+++ b/meta/recipes-devtools/flex/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch
@@ -0,0 +1,32 @@
+From ed1f7e9de0d6a1d5a9e581e02a63593d22cf1e52 Mon Sep 17 00:00:00 2001
+From: Explorer09 <explorer09@gmail.com>
+Date: Mon, 4 Sep 2017 10:47:33 +0800
+Subject: [PATCH] build: AC_USE_SYSTEM_EXTENSIONS in configure.ac.
+
+This would, e.g. define _GNU_SOURCE in config.h, enabling the
+reallocarray() prototype in glibc 2.26+ on Linux systems with that
+version of glibc.
+
+Fixes #241.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 55e774b..c879fe1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -25,8 +25,10 @@
+ # autoconf requirements and initialization
+
+ AC_INIT([the fast lexical analyser generator],[2.6.4],[flex-help@lists.sourceforge.net],[flex])
++AC_PREREQ([2.60])
+ AC_CONFIG_SRCDIR([src/scan.l])
+ AC_CONFIG_AUX_DIR([build-aux])
++AC_USE_SYSTEM_EXTENSIONS
+ LT_INIT
+ AM_INIT_AUTOMAKE([1.11.3 -Wno-portability foreign check-news std-options dist-lzip parallel-tests subdir-objects])
+ AC_CONFIG_HEADER([src/config.h])
diff --git a/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch b/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch
deleted file mode 100644
index 438ca5f527..0000000000
--- a/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 7072befe1397af4eb01c3ff7edf99f0cd5076089 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 30 Aug 2016 14:25:32 +0200
-Subject: [PATCH] avoid c++ comments in c-code - fails with gcc-6
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-fixes:
-
-| error: C++ style comments are not allowed in ISO C90
-| num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- src/flex.skl | 2 +-
- src/scan.c | 2 +-
- src/skel.c | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/flex.skl b/src/flex.skl
-index 73a0b9e..ed71627 100644
---- a/src/flex.skl
-+++ b/src/flex.skl
-@@ -2350,7 +2350,7 @@ void yyFlexLexer::yyensure_buffer_stack(void)
- * scanner will even need a stack. We use 2 instead of 1 to avoid an
- * immediate realloc on the next call.
- */
-- num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
-+ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
- YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
- (num_to_alloc * sizeof(struct yy_buffer_state*)
- M4_YY_CALL_LAST_ARG);
-diff --git a/src/scan.c b/src/scan.c
-index b55df2d..f1dce75 100644
---- a/src/scan.c
-+++ b/src/scan.c
-@@ -4672,7 +4672,7 @@ static void yyensure_buffer_stack (void)
- * scanner will even need a stack. We use 2 instead of 1 to avoid an
- * immediate realloc on the next call.
- */
-- num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
-+ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways...*/
- (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
- (num_to_alloc * sizeof(struct yy_buffer_state*)
- );
-diff --git a/src/skel.c b/src/skel.c
-index ef657d3..26cc889 100644
---- a/src/skel.c
-+++ b/src/skel.c
-@@ -2561,7 +2561,7 @@ const char *skel[] = {
- " * scanner will even need a stack. We use 2 instead of 1 to avoid an",
- " * immediate realloc on the next call.",
- " */",
-- " num_to_alloc = 1; // After all that talk, this was set to 1 anyways...",
-+ " num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */",
- " YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc",
- " (num_to_alloc * sizeof(struct yy_buffer_state*)",
- " M4_YY_CALL_LAST_ARG);",
---
-2.5.5
-
diff --git a/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch b/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch
deleted file mode 100644
index 216ac7ae1c..0000000000
--- a/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 3939eccdff598f47e5b37b05d58bf1b44d3796e7 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Oct 2016 14:15:38 +0300
-Subject: [PATCH] Prevent buffer overflow in yy_get_next_buffer
-
-This is upstream commit a5cbe929ac3255d371e698f62dc256afe7006466
-with some additional backporting to make binutils build again.
-
-Upstream-Status: Backport
-CVE: CVE-2016-6354
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- src/flex.skl | 2 +-
- src/scan.c | 2 +-
- src/skel.c | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/flex.skl b/src/flex.skl
-index ed71627..814d562 100644
---- a/src/flex.skl
-+++ b/src/flex.skl
-@@ -1718,7 +1718,7 @@ int yyFlexLexer::yy_get_next_buffer()
-
- else
- {
-- yy_size_t num_to_read =
-+ int num_to_read =
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
-diff --git a/src/scan.c b/src/scan.c
-index f1dce75..1949872 100644
---- a/src/scan.c
-+++ b/src/scan.c
-@@ -4181,7 +4181,7 @@ static int yy_get_next_buffer (void)
-
- else
- {
-- yy_size_t num_to_read =
-+ int num_to_read =
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
-diff --git a/src/skel.c b/src/skel.c
-index 26cc889..0344d18 100644
---- a/src/skel.c
-+++ b/src/skel.c
-@@ -1929,7 +1929,7 @@ const char *skel[] = {
- "",
- " else",
- " {",
-- " yy_size_t num_to_read =",
-+ " int num_to_read =",
- " YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;",
- "",
- " while ( num_to_read <= 0 )",
---
-2.1.4
-
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/do_not_create_pdf_doc.patch b/meta/recipes-devtools/flex/flex/do_not_create_pdf_doc.patch
deleted file mode 100644
index 29792efee8..0000000000
--- a/meta/recipes-devtools/flex/flex/do_not_create_pdf_doc.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Inappropriate (embedded specific)
-
-Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
-
-Index: flex-2.6.0/doc/Makefile.am
-===================================================================
---- flex-2.6.0.orig/doc/Makefile.am
-+++ flex-2.6.0/doc/Makefile.am
-@@ -2,7 +2,7 @@ help2man = @HELP2MAN@
-
- info_TEXINFOS = flex.texi
- dist_man_MANS = flex.1
--dist_doc_DATA= flex.pdf
-+EXTRA_DIST= flex.pdf
-
- CLEANFILES = \
- flex.aux \
diff --git a/meta/recipes-devtools/flex/flex/run-ptest b/meta/recipes-devtools/flex/flex/run-ptest
index 19db337900..037301c40f 100755
--- a/meta/recipes-devtools/flex/flex/run-ptest
+++ b/meta/recipes-devtools/flex/flex/run-ptest
@@ -2,4 +2,4 @@
# make would want to rebuild some files with a compiler otherwise :-/
make FLEX=/usr/bin/flex -t check-TESTS || true
-make FLEX=/usr/bin/flex check-TESTS
+make FLEX=/usr/bin/flex abs_builddir=./ check-TESTS
diff --git a/meta/recipes-devtools/flex/flex_2.6.0.bb b/meta/recipes-devtools/flex/flex_2.6.4.bb
index 12ce0cb461..3d57572865 100644
--- a/meta/recipes-devtools/flex/flex_2.6.0.bb
+++ b/meta/recipes-devtools/flex/flex_2.6.4.bb
@@ -3,24 +3,23 @@ DESCRIPTION = "Flex is a fast lexical analyser generator. Flex is a tool for ge
lexical patterns in text."
HOMEPAGE = "http://sourceforge.net/projects/flex/"
SECTION = "devel"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
DEPENDS = "${@bb.utils.contains('PTEST_ENABLED', '1', 'bison-native flex-native', '', d)}"
BBCLASSEXTEND = "native nativesdk"
LIC_FILES_CHKSUM = "file://COPYING;md5=e4742cf92e89040b39486a6219b68067"
-SRC_URI = "${SOURCEFORGE_MIRROR}/flex/flex-${PV}.tar.bz2 \
+SRC_URI = "https://github.com/westes/flex/releases/download/v${PV}/flex-${PV}.tar.gz \
file://run-ptest \
- file://do_not_create_pdf_doc.patch \
file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
- file://0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch \
- file://CVE-2016-6354.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] = "266270f13c48ed043d95648075084d59"
-SRC_URI[sha256sum] = "24e611ef5a4703a191012f80c1027dc9d12555183ce0ecd46f3636e587e9b8e9"
+SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d"
+SRC_URI[sha256sum] = "e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995"
# Flex has moved to github from 2.6.1 onwards
UPSTREAM_CHECK_URI = "https://github.com/westes/flex/releases"
@@ -30,7 +29,7 @@ inherit autotools gettext texinfo ptest
M4 = "${bindir}/m4"
M4_class-native = "${STAGING_BINDIR_NATIVE}/m4"
-EXTRA_OECONF += "ac_cv_path_M4=${M4}"
+EXTRA_OECONF += "ac_cv_path_M4=${M4} ac_cv_func_reallocarray=no"
EXTRA_OEMAKE += "m4=${STAGING_BINDIR_NATIVE}/m4"
EXTRA_OEMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', 'FLEX=${STAGING_BINDIR_NATIVE}/flex', '', d)}"
@@ -66,8 +65,13 @@ do_install_ptest() {
-e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \-e 's/^Makefile:/_Makefile:/' \
-e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/^top_srcdir = \(.*\)/top_srcdir = ./' \
-e 's/^builddir = \(.*\)/builddir = ./' -e 's/^top_builddir = \(.*\)/top_builddir = ./' \
+ -e 's:${UNINATIVE_LOADER}:${base_bindir}/false:g' \
-i ${D}${PTEST_PATH}/Makefile
}
+# The uninative loader is different on i386 & x86_64 hosts. Since it is only
+# being replaced with /bin/false anyway, it doesn't need to be part of the task
+# hash
+do_install_ptest[vardepsexclude] += "UNINATIVE_LOADER"
# Not Apache Flex, or Adobe Flex, or IBM Flex.
CVE_PRODUCT = "flex_project:flex"
diff --git a/meta/recipes-devtools/gcc/gcc-9.2.inc b/meta/recipes-devtools/gcc/gcc-10.2.inc
index c6395998d5..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,34 +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://CVE-2019-14250.patch \
- file://CVE-2019-15847_1.patch \
- file://CVE-2019-15847_2.patch \
- file://CVE-2019-15847_3.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
@@ -90,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 \
@@ -102,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-8.3/CVE-2019-14250.patch b/meta/recipes-devtools/gcc/gcc-8.3/CVE-2019-14250.patch
deleted file mode 100644
index e327684e16..0000000000
--- a/meta/recipes-devtools/gcc/gcc-8.3/CVE-2019-14250.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From a4f1b58eb48b349a5f353bc69c30be553506d33b Mon Sep 17 00:00:00 2001
-From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Thu, 25 Jul 2019 10:48:26 +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-8-branch@273794 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-8.2.0/libiberty/simple-object-elf.c
-===================================================================
---- gcc-8.2.0.orig/libiberty/simple-object-elf.c
-+++ gcc-8.2.0/libiberty/simple-object-elf.c
-@@ -549,6 +549,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/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/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-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
index 44cba287f3..3dcfdf835f 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -47,6 +47,7 @@ def get_gcc_multiarch_setting(bb, d):
"i586": "--enable-targets=all",
"i686": "--enable-targets=all",
"powerpc": "--enable-targets=powerpc64",
+ "powerpc64le": "--enable-targets=powerpcle",
"mips": "--enable-targets=all",
"sparc": "--enable-targets=all",
}
diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc
index 24ba8ce75f..a64c4caf00 100644
--- a/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -17,6 +17,8 @@ GCCTHREADS ?= "posix"
GCCPIE ??= ""
+SYMVERS_CONF ?= "--enable-symvers=gnu"
+
EXTRA_OECONF = "\
${@['--enable-clocale=generic', ''][d.getVar('USE_NLS') != 'no']} \
--with-gnu-ld \
@@ -27,10 +29,11 @@ EXTRA_OECONF = "\
${GCCPIE} \
--enable-c99 \
--enable-long-long \
- --enable-symvers=gnu \
+ ${SYMVERS_CONF} \
--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 f14cbf7152..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"
@@ -158,7 +175,7 @@ SYSTEMLIBS1 = "${target_libdir}/"
EXTRA_OECONF += "--enable-poison-system-directories"
EXTRA_OECONF_remove_elf = "--with-sysroot=/not/exist"
EXTRA_OECONF_remove_eabi = "--with-sysroot=/not/exist"
-EXTRA_OECONF_append_elf = "--without-headers --with-newlib"
-EXTRA_OECONF_append_eabi = "--without-headers --with-newlib"
+EXTRA_OECONF_append_elf = " --without-headers --with-newlib"
+EXTRA_OECONF_append_eabi = " --without-headers --with-newlib"
# gcc 4.7 needs -isystem
export ARCH_FLAGS_FOR_TARGET = "--sysroot=${STAGING_DIR_TARGET} -isystem=${target_includedir}"
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 8855bb1f34..6fa8c274cd 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -61,98 +61,22 @@ do_compile () {
export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}"
export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}"
+ # Prevent native/host sysroot path from being used in configargs.h header,
+ # as it will be rewritten when used by other sysroots preventing support
+ # for gcc plugins
+ oe_runmake configure-gcc
+ sed -i 's@${STAGING_DIR_TARGET}@/host@g' ${B}/gcc/configargs.h
+ sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/configargs.h
+
+ # Prevent sysroot/workdir paths from being used in checksum-options.
+ # checksum-options is used to generate a checksum which is embedded into
+ # the output binary.
+ oe_runmake TARGET-gcc=checksum-options all-gcc
+ sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
+ sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/checksum-options
+
oe_runmake all-host configure-target-libgcc
(cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c unwind.h md-unwind-support.h sfp-machine.h gthr-default.h)
- # now generate script to drive testing
- echo "#!/usr/bin/env sh" >${B}/${TARGET_PREFIX}testgcc
- set >> ${B}/${TARGET_PREFIX}testgcc
- # prune out the unneeded vars
- sed -i -e "/^BASH/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^USER/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^OPT/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^DIRSTACK/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^EUID/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^FUNCNAME/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^GROUPS/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^HOST/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^HOME/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^IFS/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^LC_ALL/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^LOGNAME/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^MACHTYPE/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^OSTYPE/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^PIPE/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^SHELL/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^'/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^UID/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^TERM/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^PKG_/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^POSIXLY_/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^PPID/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^PS4/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^Q/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^SHLVL/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^STAGING/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^LD_LIBRARY_PATH/d" ${B}/${TARGET_PREFIX}testgcc
- sed -i -e "/^PSEUDO/d" ${B}/${TARGET_PREFIX}testgcc
-
- # append execution part of the script
-cat >> ${B}/${TARGET_PREFIX}testgcc << STOP
-target="\$1"
-usage () {
- echo "Usage:"
- echo "\$0 user@target 'extra options to dejagnu'"
- echo "\$0 target 'extra options to dejagnu'"
- echo "\$0 target"
- echo "e.g. \$0 192.168.7.2 ' dg.exp=visibility-d.c'"
- echo "will only run visibility-d.c test case"
- echo "e.g. \$0 192.168.7.2 '/-mthumb dg.exp=visibility-d.c'"
- echo "will only run visibility-d.c test case in thumb mode"
- echo "You need to have dejagnu autogen expect installed"
- echo "on the build host"
- }
-if [ "x\$target" = "x" ]
-then
- echo "Please specify the target machine and remote user in form of user@target\n"
- usage
- exit 1;
-fi
-
-shift
-
-echo "\$target" | grep "@" 2>&1 > /dev/null
-if [ "x\$?" = "x0" ]
-then
- user=\$(echo \$target | cut -d '@' -f 1)
- target=\$(echo \$target | cut -d '@' -f 2)
-else
- user=\$USER
-fi
-ssh \$user@\$target date 2>&1 > /dev/null
-if [ "x\$?" != "x0" ]
-then
- echo "Failed connecting to \$user@\$target it could be because"
- echo "you don't have passwordless ssh setup to access \$target"
- echo "or sometimes host key has been changed"
- echo "in such case do something like below on build host"
- echo "ssh-keygen -f "~/.ssh/known_hosts" -R \$target"
- echo "and then try ssh \$user@\$target"
-
- usage
- exit 1
-fi
- echo "lappend boards_dir [pwd]/../../.." > ${B}/site.exp
- echo "load_generic_config \"unix\"" > ${B}/${PACKAGE_ARCH}.exp
- echo "set_board_info username \$user" >> ${B}/${PACKAGE_ARCH}.exp
- echo "set_board_info rsh_prog ssh" >> ${B}/${PACKAGE_ARCH}.exp
- echo "set_board_info rcp_prog scp" >> ${B}/${PACKAGE_ARCH}.exp
- echo "set_board_info hostname \$target" >> ${B}/${PACKAGE_ARCH}.exp
- DEJAGNU=${B}/site.exp make -k check RUNTESTFLAGS="--target_board=${PACKAGE_ARCH}\$@"
-
-STOP
-
- chmod +x ${B}/${TARGET_PREFIX}testgcc
-
}
INHIBIT_PACKAGE_STRIP = "1"
@@ -193,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 2da3c02ef0..9dcce26536 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -16,9 +16,16 @@ EXTRA_OECONF_PATHS = "\
EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
EXTRA_OECONF_append = " --cache-file=${B}/config.cache"
+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 = ""
# Building with thumb enabled on armv6t fails
ARM_INSTRUCTION_SET_armv6 = "arm"
@@ -36,9 +43,10 @@ RUNTIMELIBSSP_mingw32 ?= "libssp"
RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM} \
${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'libquadmath', '', d)} \
"
+# Only build libstdc++ for newlib
+RUNTIMETARGET_libc-newlib = "libstdc++-v3"
# libiberty
-# libmudflap
# libgfortran needs separate recipe due to libquadmath dependency
SLIB = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
@@ -130,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";;
@@ -158,9 +170,6 @@ PACKAGES = "\
libssp \
libssp-dev \
libssp-staticdev \
- libmudflap \
- libmudflap-dev \
- libmudflap-staticdev \
libquadmath \
libquadmath-dev \
libquadmath-staticdev \
@@ -179,7 +188,7 @@ RRECOMMENDS_${PN}-dbg = ""
# include python debugging scripts
FILES_${PN}-dbg += "\
- ${libdir}/libstdc++.so.*-gdb.py \
+ ${libdir}/libstdc++.*-gdb.py \
${datadir}/gcc-${BINV}/python/libstdcxx \
"
@@ -233,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 \
"
@@ -302,10 +301,6 @@ do_check() {
# HACK: this works around the configure setting CXX with -nostd* args
sed -i 's/-nostdinc++ -nostdlib++//g' $(find ${B} -name testsuite_flags | head -1)
- # HACK: this works around the de-stashing changes to configargs.h, as well as recipe-sysroot changing the content
- sed -i '/static const char configuration_arguments/d' ${B}/gcc/configargs.h
- ${CC} -v 2>&1 | grep "^Configured with:" | \
- sed 's/Configured with: \(.*\)/static const char configuration_arguments[] = "\1";/g' >> ${B}/gcc/configargs.h
if [ "${TOOLCHAIN_TEST_TARGET}" = "user" ]; then
# qemu user has issues allocating large amounts of memory
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.inc b/meta/recipes-devtools/gcc/gcc-sanitizers.inc
index 8b1d1c94bf..668e14a59f 100644
--- a/meta/recipes-devtools/gcc/gcc-sanitizers.inc
+++ b/meta/recipes-devtools/gcc/gcc-sanitizers.inc
@@ -43,7 +43,7 @@ do_install () {
INHIBIT_DEFAULT_DEPS = "1"
ALLOW_EMPTY_${PN} = "1"
-DEPENDS = "gcc-runtime virtual/${TARGET_PREFIX}gcc"
+DEPENDS = "virtual/crypt gcc-runtime virtual/${TARGET_PREFIX}gcc"
# used to fix ../../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized]
DEBUG_OPTIMIZATION_append = " -Wno-error"
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 bdc6ff658f..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* \
@@ -137,6 +139,21 @@ FILES_${PN}-doc = "\
"
do_compile () {
+ # Prevent full target sysroot path from being used in configargs.h header,
+ # as it will be rewritten when used by other sysroots preventing support
+ # for gcc plugins. Additionally the path is embeddeded into the output
+ # binary, this prevents building a reproducible binary.
+ oe_runmake configure-gcc
+ sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/configargs.h
+ sed -i 's@${STAGING_DIR_HOST}@/@g' ${B}/gcc/configargs.h
+
+ # Prevent sysroot/workdir paths from being used in checksum-options.
+ # checksum-options is used to generate a checksum which is embedded into
+ # the output binary.
+ oe_runmake TARGET-gcc=checksum-options all-gcc
+ sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
+ sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/checksum-options
+
oe_runmake all-host
}
@@ -164,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++
@@ -172,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 ba62bc1fd3..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
@@ -24,14 +24,39 @@ Upstream-Status: Inappropriate
RP 2015/7/28
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Added PREFIXVAR and EXEC_PREFIXVAR to support runtime relocation. Without
+these as part of the gccrelocprefix the system can't do runtime relocation
+if the executable is moved. (These paths were missed in the original
+implementation.)
+
+Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
---
- gcc/cppdefault.c | 50 +++++++++++++++++++++++++++++++++++-------------
- gcc/cppdefault.h | 3 ++-
- gcc/gcc.c | 20 +++++++++++++------
- 3 files changed, 53 insertions(+), 20 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(-)
+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 980e2bd47a7..39b6059efdc 100644
+index 2f43b88a0c3..6b6be04686c 100644
--- a/gcc/cppdefault.c
+++ b/gcc/cppdefault.c
@@ -35,6 +35,30 @@
@@ -39,7 +64,7 @@ index 980e2bd47a7..39b6059efdc 100644
#endif
+static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_INCLUDE_DIR;
-+static char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR;
++char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR;
+static char GPLUSPLUS_TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_TOOL_INCLUDE_DIR;
+static char GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_BACKWARD_INCLUDE_DIR;
+static char STANDARD_STARTFILE_PREFIX_2VAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET;
@@ -113,7 +138,7 @@ index 980e2bd47a7..39b6059efdc 100644
/* A multilib suffix needs adding if different multilibs use
different headers. */
#ifdef SYSROOT_HEADERS_SUFFIX_SPEC
-@@ -85,16 +109,16 @@ const struct default_include cpp_include_defaults[]
+@@ -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. */
@@ -134,8 +159,27 @@ index 980e2bd47a7..39b6059efdc 100644
#endif
{ 0, 0, 0, 0, 0, 0 }
};
+ #endif /* no INCLUDE_DEFAULTS */
+
+-#ifdef GCC_INCLUDE_DIR
+-const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR;
+-const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
+-#else
+-const char cpp_GCC_INCLUDE_DIR[] = "";
+-const size_t cpp_GCC_INCLUDE_DIR_len = 0;
+-#endif
+-
+ /* The configured prefix. */
+-const char cpp_PREFIX[] = PREFIX;
+-const size_t cpp_PREFIX_len = sizeof PREFIX - 1;
+-const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX;
++char PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX;
++char EXEC_PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX;
+
+ /* This value is set by cpp_relocated at runtime */
+ const char *gcc_exec_prefix;
diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
-index e2d96f1e760..29fa5f815c8 100644
+index a681264f75e..5e10a2fa140 100644
--- a/gcc/cppdefault.h
+++ b/gcc/cppdefault.h
@@ -33,7 +33,8 @@
@@ -148,11 +192,32 @@ index e2d96f1e760..29fa5f815c8 100644
const char *const component; /* The component containing the directory
(see update_path in prefix.c) */
const char cplusplus; /* Only look here if we're compiling C++. */
+@@ -50,17 +51,13 @@ struct default_include
+ };
+
+ extern const struct default_include cpp_include_defaults[];
+-extern const char cpp_GCC_INCLUDE_DIR[];
+-extern const size_t cpp_GCC_INCLUDE_DIR_len;
++extern char GCC_INCLUDE_DIRVAR[] __attribute__ ((section (".gccrelocprefix")));
+
+ /* The configure-time prefix, i.e., the value supplied as the argument
+ to --prefix=. */
+-extern const char cpp_PREFIX[];
++extern char PREFIXVAR[] __attribute__ ((section (".gccrelocprefix")));
+ /* The length of the configure-time prefix. */
+-extern const size_t cpp_PREFIX_len;
+-/* The configure-time execution prefix. This is typically the lib/gcc
+- subdirectory of cpp_PREFIX. */
+-extern const char cpp_EXEC_PREFIX[];
++extern char EXEC_PREFIXVAR[] __attribute__ ((section (".gccrelocprefix")));
+ /* The run-time execution prefix. This is typically the lib/gcc
+ subdirectory of the actual installation. */
+ extern const char *gcc_exec_prefix;
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 1a3704b2763..db0e2934038 100644
+index c87f603955f..535d5c3bb65 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -253,6 +253,8 @@ FILE *report_times_to_file = NULL;
+@@ -252,6 +252,8 @@ FILE *report_times_to_file = NULL;
#endif
static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT;
@@ -161,7 +226,7 @@ index 1a3704b2763..db0e2934038 100644
/* 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 argument.
+@@ -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.
@@ -169,7 +234,7 @@ index 1a3704b2763..db0e2934038 100644
%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.
-@@ -1493,10 +1496,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. */
@@ -184,7 +249,7 @@ index 1a3704b2763..db0e2934038 100644
/* For native compilers, these are well-known paths containing
components that may be provided by the system. For cross
-@@ -1504,9 +1507,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
+@@ -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;
@@ -196,7 +261,7 @@ index 1a3704b2763..db0e2934038 100644
= STANDARD_STARTFILE_PREFIX_2;
/* A relative path to be used in finding the location of tools
-@@ -5915,6 +5918,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
+@@ -5952,6 +5955,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
}
break;
@@ -208,6 +273,74 @@ index 1a3704b2763..db0e2934038 100644
case 'S':
value = do_spec_1 (startfile_spec, 0, NULL);
if (value != 0)
---
-2.22.1
-
+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;
+
+- if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0)
++ if (iprefix && (len = strlen(GCC_INCLUDE_DIRVAR) - 7) != 0)
+ {
+ /* 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, const char *iprefix,
+ now. */
+ if (sysroot && p->add_sysroot)
+ continue;
+- if (!filename_ncmp (p->fname, cpp_GCC_INCLUDE_DIR, len))
++ if (!filename_ncmp (p->fname, GCC_INCLUDE_DIRVAR, len))
+ {
+ char *str = concat (iprefix, p->fname + len, NULL);
+ if (p->multilib == 1 && imultilib)
+@@ -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
+- && !filename_ncmp (p->fname, cpp_PREFIX, cpp_PREFIX_len))
++ && !filename_ncmp (p->fname, PREFIXVAR, strlen(PREFIXVAR)))
+ {
+ static const char *relocated_prefix;
+ char *ostr;
+@@ -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,
+- cpp_EXEC_PREFIX,
+- cpp_PREFIX);
++ EXEC_PREFIXVAR,
++ PREFIXVAR);
+ free (dummy);
+ }
+ ostr = concat (relocated_prefix,
+- p->fname + cpp_PREFIX_len,
++ p->fname + strlen(PREFIXVAR),
+ NULL);
+ str = update_path (ostr, p->component);
+ free (ostr);
+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"
+
+-static const char *std_prefix = PREFIX;
++static const char PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX;
++
++static const char *std_prefix = PREFIXVAR;
+
+ static const char *get_key_value (char *);
+ static char *translate_name (char *);
+@@ -212,7 +214,7 @@ translate_name (char *name)
+ prefix = getenv (key);
+
+ if (prefix == 0)
+- prefix = PREFIX;
++ prefix = PREFIXVAR;
+
+ /* We used to strip trailing DIR_SEPARATORs here, but that can
+ sometimes yield a result with no separator when one was coded
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.inc b/meta/recipes-devtools/gcc/libgcc.inc
index e008d14f36..6d48ec9809 100644
--- a/meta/recipes-devtools/gcc/libgcc.inc
+++ b/meta/recipes-devtools/gcc/libgcc.inc
@@ -9,14 +9,18 @@ do_install_append_class-target () {
"linux-musleabi") extra_target_os="linux-gnueabi";;
*) extra_target_os="linux";;
esac
- ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ if [ ! -e ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os ]; then
+ ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ fi
fi
if [ -n "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}" ]; then
case "${TARGET_OS}" in
"linux-musleabi") extra_target_os="linux-musleabihf";;
"linux-gnueabi") extra_target_os="linux-gnueabihf";;
esac
- ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ if [ ! -e ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os ]; then
+ ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ fi
fi
}
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-8.3.1.inc b/meta/recipes-devtools/gdb/gdb-8.3.1.inc
deleted file mode 100644
index 39f1c48cc7..0000000000
--- a/meta/recipes-devtools/gdb/gdb-8.3.1.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
- file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
-
-SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
- file://0001-gdbserver-ctrl-c-handling.patch \
- file://0002-make-man-install-relative-to-DESTDIR.patch \
- file://0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
- file://0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
- file://0005-Add-support-for-Renesas-SH-sh4-architecture.patch \
- file://0006-Dont-disable-libreadline.a-when-using-disable-static.patch \
- file://0007-use-asm-sgidefs.h.patch \
- file://0008-Use-exorted-definitions-of-SIGRTMIN.patch \
- file://0009-Change-order-of-CFLAGS.patch \
- file://0010-resolve-restrict-keyword-conflict.patch \
- file://0011-Fix-invalid-sigprocmask-call.patch \
- "
-SRC_URI[md5sum] = "73b6a5d8141672c62bf851cd34c4aa83"
-SRC_URI[sha256sum] = "1e55b4d7cdca7b34be12f4ceae651623aa73b2fd640152313f9f66a7149757c4"
diff --git a/meta/recipes-devtools/gdb/gdb-9.2.inc b/meta/recipes-devtools/gdb/gdb-9.2.inc
new file mode 100644
index 0000000000..017b61ef62
--- /dev/null
+++ b/meta/recipes-devtools/gdb/gdb-9.2.inc
@@ -0,0 +1,21 @@
+LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
+
+SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
+ file://0001-make-man-install-relative-to-DESTDIR.patch \
+ file://0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
+ file://0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
+ file://0004-Add-support-for-Renesas-SH-sh4-architecture.patch \
+ file://0005-Dont-disable-libreadline.a-when-using-disable-static.patch \
+ file://0006-use-asm-sgidefs.h.patch \
+ file://0007-Use-exorted-definitions-of-SIGRTMIN.patch \
+ file://0008-Change-order-of-CFLAGS.patch \
+ file://0009-resolve-restrict-keyword-conflict.patch \
+ file://0010-Fix-invalid-sigprocmask-call.patch \
+ file://0011-gdbserver-ctrl-c-handling.patch \
+ "
+SRC_URI[md5sum] = "db95524e554870209ab7d9f8fd8dc557"
+SRC_URI[sha256sum] = "360cd7ae79b776988e89d8f9a01c985d0b1fa21c767a4295e5f88cb49175c555"
diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_8.3.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_8.3.1.bb
+++ b/meta/recipes-devtools/gdb/gdb-cross-canadian_9.2.bb
diff --git a/meta/recipes-devtools/gdb/gdb-cross_8.3.1.bb b/meta/recipes-devtools/gdb/gdb-cross_9.2.bb
index 50cf159fdb..50cf159fdb 100644
--- a/meta/recipes-devtools/gdb/gdb-cross_8.3.1.bb
+++ b/meta/recipes-devtools/gdb/gdb-cross_9.2.bb
diff --git a/meta/recipes-devtools/gdb/gdb/0001-gdbserver-ctrl-c-handling.patch b/meta/recipes-devtools/gdb/gdb/0001-gdbserver-ctrl-c-handling.patch
deleted file mode 100644
index 71fe7f83b6..0000000000
--- a/meta/recipes-devtools/gdb/gdb/0001-gdbserver-ctrl-c-handling.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-This problem was created by the upstream commit 78708b7c8c
-After applying the commit, it will send SIGINT to the process group(-signal_pid).
-But if we use gdbserver send SIGINT, and the attached process is not a process
-group leader, then the "kill (-signal_pid, SIGINT)" returns error and fails to
-interrupt the attached process.
-
-Upstream-Status: Submitted [https://sourceware.org/bugzilla/show_bug.cgi?id=18945]
-
-Author: Josh Gao
-Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
-
-Index: gdb-8.2/gdb/gdbserver/linux-low.c
-===================================================================
---- gdb-8.2.orig/gdb/gdbserver/linux-low.c
-+++ gdb-8.2/gdb/gdbserver/linux-low.c
-@@ -5940,9 +5940,7 @@ linux_look_up_symbols (void)
- static void
- linux_request_interrupt (void)
- {
-- /* Send a SIGINT to the process group. This acts just like the user
-- typed a ^C on the controlling terminal. */
-- kill (-signal_pid, SIGINT);
-+ kill (signal_pid, SIGINT);
- }
-
- /* Copy LEN bytes from inferior's auxiliary vector starting at OFFSET
diff --git a/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch b/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch
index 60479e5410..82287ea13a 100644
--- a/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
+++ b/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch
@@ -1,7 +1,7 @@
-From b0209f282716bed2c230c7b496fbcc7af503d0cc Mon Sep 17 00:00:00 2001
+From 036f8e1d387f65e52cb021dbb1bd28e8b75cf017 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 02:27:55 +0000
-Subject: [PATCH 02/11] make man install relative to DESTDIR
+Subject: [PATCH] make man install relative to DESTDIR
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/sim/common/Makefile.in b/sim/common/Makefile.in
-index 227e4cfbc2..8c3457e0bd 100644
+index c6de14122c..c4b1214946 100644
--- a/sim/common/Makefile.in
+++ b/sim/common/Makefile.in
@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias)
@@ -23,6 +23,3 @@ index 227e4cfbc2..8c3457e0bd 100644
infodir = @infodir@
includedir = @includedir@
---
-2.18.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch b/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
index cf54c74c09..6067caf63d 100644
--- a/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
+++ b/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
@@ -1,7 +1,7 @@
-From b14a57d90e1cdd8144cda4c8882bd1db44d26dab Mon Sep 17 00:00:00 2001
+From 6bff2862f9597f324a9385eb2f828e838e51a8a1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 23 Mar 2016 06:30:09 +0000
-Subject: [PATCH 03/11] mips-linux-nat: Define _ABIO32 if not defined
+Subject: [PATCH] mips-linux-nat: Define _ABIO32 if not defined
This helps building gdb on mips64 on musl, since
musl does not provide sgidefs.h this define is
@@ -16,7 +16,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 4 insertions(+)
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index 32835c16b2..68a7587af2 100644
+index 104c972f24..7f575b3363 100644
--- a/gdb/mips-linux-nat.c
+++ b/gdb/mips-linux-nat.c
@@ -41,6 +41,10 @@
@@ -30,6 +30,3 @@ index 32835c16b2..68a7587af2 100644
class mips_linux_nat_target final : public linux_nat_trad_target
{
---
-2.18.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
index 170d512ef7..c4bab7bb1a 100644
--- a/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
+++ b/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
@@ -1,4 +1,4 @@
-From da30370c1e3ff7728a857e119e0529a9f097086e Mon Sep 17 00:00:00 2001
+From d5817bcf2f7313699bfa85b41220d862db327664 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 30 Apr 2016 18:32:14 -0700
Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems
@@ -6,14 +6,13 @@ Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
gdb/gdbserver/linux-ppc-low.c | 6 ++++++
gdb/nat/ppc-linux.h | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c
-index 1b695e53..1978347c 100644
+index 5d8d67bec2..ffcf65ab58 100644
--- a/gdb/gdbserver/linux-ppc-low.c
+++ b/gdb/gdbserver/linux-ppc-low.c
@@ -23,7 +23,13 @@
@@ -31,7 +30,7 @@ index 1b695e53..1978347c 100644
#include "arch/ppc-linux-common.h"
#include "arch/ppc-linux-tdesc.h"
diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
-index f1561b3b..40399361 100644
+index d937a65b69..1fd54b4a0e 100644
--- a/gdb/nat/ppc-linux.h
+++ b/gdb/nat/ppc-linux.h
@@ -18,7 +18,13 @@
diff --git a/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch b/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch
index f840cafe2e..fd165d4b81 100644
--- a/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
+++ b/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch
@@ -1,7 +1,7 @@
-From 215486b53a7a6dfca064cd2e9196a9de6ed6f0c2 Mon Sep 17 00:00:00 2001
+From 505f10a0ea1a8bba0584859d9a348bb779593ec2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 02:31:12 +0000
-Subject: [PATCH 05/11] Add support for Renesas SH (sh4) architecture.
+Subject: [PATCH] Add support for Renesas SH (sh4) architecture.
gdb (7.4-1~cvs20111117.2) experimental; urgency=low
.
@@ -27,10 +27,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
11 files changed, 617 insertions(+), 29 deletions(-)
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index c76a4e4394..921fdadb49 100644
+index c3e074b21f..42dd7af59c 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
-@@ -2326,6 +2326,8 @@ ALLDEPFILES = \
+@@ -2317,6 +2317,8 @@ ALLDEPFILES = \
sh-nbsd-nat.c \
sh-nbsd-tdep.c \
sh-tdep.c \
@@ -38,12 +38,12 @@ index c76a4e4394..921fdadb49 100644
+ sh-linux-nat.c \
sol2-tdep.c \
solib-aix.c \
- solib-spu.c \
+ solib-svr4.c \
diff --git a/gdb/configure.host b/gdb/configure.host
-index 23a2f16399..39a886ec53 100644
+index ce52823729..5b5173a71a 100644
--- a/gdb/configure.host
+++ b/gdb/configure.host
-@@ -153,6 +153,7 @@ riscv*-*-linux*) gdb_host=linux ;;
+@@ -148,6 +148,7 @@ riscv*-*-linux*) gdb_host=linux ;;
s390*-*-linux*) gdb_host=linux ;;
@@ -52,7 +52,7 @@ index 23a2f16399..39a886ec53 100644
gdb_host=nbsd ;;
sh*-*-openbsd*) gdb_host=nbsd ;;
diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
-index db93967910..4109c549e8 100644
+index 13c10eeeda..1d0d583a64 100644
--- a/gdb/sh-linux-tdep.c
+++ b/gdb/sh-linux-tdep.c
@@ -18,14 +18,37 @@
@@ -93,7 +93,7 @@ index db93967910..4109c549e8 100644
#include "glibc-tdep.h"
#include "sh-tdep.h"
#include "linux-tdep.h"
-@@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
+@@ -181,9 +204,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
sh_linux_rt_sigreturn_init
};
@@ -600,7 +600,7 @@ index db93967910..4109c549e8 100644
/* GNU/Linux uses SVR4-style shared libraries. */
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
-index fe64cf979a..4417114cd0 100644
+index e3aee0ac28..5958cf3688 100644
--- a/gdb/sh-tdep.c
+++ b/gdb/sh-tdep.c
@@ -21,6 +21,9 @@
@@ -655,7 +655,7 @@ index fe64cf979a..4417114cd0 100644
len = TYPE_LENGTH (type);
val = sh_justify_value_in_reg (gdbarch, args[argnum], len);
-@@ -1834,7 +1820,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
+@@ -1835,7 +1821,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
reg->how = DWARF2_FRAME_REG_UNDEFINED;
}
@@ -664,7 +664,7 @@ index fe64cf979a..4417114cd0 100644
sh_alloc_frame_cache (void)
{
struct sh_frame_cache *cache;
-@@ -1861,7 +1847,7 @@ sh_alloc_frame_cache (void)
+@@ -1862,7 +1848,7 @@ sh_alloc_frame_cache (void)
return cache;
}
@@ -673,7 +673,7 @@ index fe64cf979a..4417114cd0 100644
sh_frame_cache (struct frame_info *this_frame, void **this_cache)
{
struct gdbarch *gdbarch = get_frame_arch (this_frame);
-@@ -1928,9 +1914,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
+@@ -1929,9 +1915,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
return cache;
}
@@ -686,7 +686,7 @@ index fe64cf979a..4417114cd0 100644
{
struct gdbarch *gdbarch = get_frame_arch (this_frame);
struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
-@@ -1944,7 +1930,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
+@@ -1945,7 +1931,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
the current frame. Frob regnum so that we pull the value from
the correct place. */
if (regnum == gdbarch_pc_regnum (gdbarch))
@@ -695,7 +695,7 @@ index fe64cf979a..4417114cd0 100644
if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
return frame_unwind_got_memory (this_frame, regnum,
-@@ -2255,8 +2241,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
+@@ -2234,8 +2220,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
static struct gdbarch *
sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
{
@@ -705,7 +705,7 @@ index fe64cf979a..4417114cd0 100644
/* If there is already a candidate, use it. */
arches = gdbarch_list_lookup_by_info (arches, &info);
-@@ -2268,6 +2254,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+@@ -2247,6 +2233,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep = XCNEW (struct gdbarch_tdep);
gdbarch = gdbarch_alloc (&info, tdep);
@@ -724,7 +724,7 @@ index fe64cf979a..4417114cd0 100644
set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
-@@ -2422,10 +2420,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+@@ -2398,10 +2396,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
break;
}
@@ -738,7 +738,7 @@ index fe64cf979a..4417114cd0 100644
frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind);
diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
-index 59acd35b88..be3f998d84 100644
+index 76e2e76e39..2710f63010 100644
--- a/gdb/sh-tdep.h
+++ b/gdb/sh-tdep.h
@@ -21,6 +21,12 @@
@@ -821,7 +821,7 @@ index 59acd35b88..be3f998d84 100644
where each general-purpose register is stored inside the associated
core file section. */
diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
-index 9879f0ca47..cbc0e4d5f7 100644
+index 4914498f98..6e25cbed18 100644
--- a/gdb/testsuite/gdb.asm/asm-source.exp
+++ b/gdb/testsuite/gdb.asm/asm-source.exp
@@ -116,6 +116,11 @@ switch -glob -- [istarget] {
@@ -909,6 +909,3 @@ index 756606880f..1205a9bc9c 100644
static int count = 0;
---
-2.18.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch b/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch
index 9ae3ee62be..d0360da439 100644
--- a/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
+++ b/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch
@@ -1,7 +1,7 @@
-From 5fdd42acaa965be7c420a3f2ba12b77ea503c59b Mon Sep 17 00:00:00 2001
+From d132f21d89157e980574da7d0c949f6dd17df8c3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 30 Apr 2016 15:25:03 -0700
-Subject: [PATCH 06/11] Dont disable libreadline.a when using --disable-static
+Subject: [PATCH] Dont disable libreadline.a when using --disable-static
If gdb is configured with --disable-static then this is dutifully passed to
readline which then disables libreadline.a, which causes a problem when gdb
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/Makefile.def b/Makefile.def
-index 75063b6d12..c27bbe4d28 100644
+index 311feb9de3..24c0685d48 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -105,7 +105,8 @@ host_modules= { module= libiconv;
@@ -33,10 +33,10 @@ index 75063b6d12..c27bbe4d28 100644
host_modules= { module= sim; };
host_modules= { module= texinfo; no_install= true; };
diff --git a/Makefile.in b/Makefile.in
-index 7814fe745f..3b0dc7cbb0 100644
+index 1aabf6ede4..d957efde81 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -25470,7 +25470,7 @@ configure-readline:
+@@ -25510,7 +25510,7 @@ configure-readline:
$$s/$$module_srcdir/configure \
--srcdir=$${topdir}/$$module_srcdir \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
@@ -45,6 +45,3 @@ index 7814fe745f..3b0dc7cbb0 100644
|| exit 1
@endif readline
---
-2.18.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch b/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch
index 808f4bfa14..d222d01083 100644
--- a/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
+++ b/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch
@@ -1,7 +1,7 @@
-From d6e12d52f9cef7f5e6315003ceaa236f6cc7723b Mon Sep 17 00:00:00 2001
+From 329e5bf29e934ba99622372a9660865864bb0298 Mon Sep 17 00:00:00 2001
From: Andre McCurdy <amccurdy@gmail.com>
Date: Sat, 30 Apr 2016 15:29:06 -0700
-Subject: [PATCH 07/11] use <asm/sgidefs.h>
+Subject: [PATCH] use <asm/sgidefs.h>
Build fix for MIPS with musl libc
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index 68a7587af2..2b77221372 100644
+index 7f575b3363..dc93a64a93 100644
--- a/gdb/mips-linux-nat.c
+++ b/gdb/mips-linux-nat.c
@@ -31,7 +31,7 @@
@@ -31,6 +31,3 @@ index 68a7587af2..2b77221372 100644
#include "nat/gdb_ptrace.h"
#include <asm/ptrace.h>
#include "inf-ptrace.h"
---
-2.18.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch b/meta/recipes-devtools/gdb/gdb/0007-Use-exorted-definitions-of-SIGRTMIN.patch
index 95bec5fd60..09896611f0 100644
--- a/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
+++ b/meta/recipes-devtools/gdb/gdb/0007-Use-exorted-definitions-of-SIGRTMIN.patch
@@ -1,4 +1,4 @@
-From bab0b34672727c50313eb98b8522355cbe1bde36 Mon Sep 17 00:00:00 2001
+From 782bb2ab9b104dad4bbaed1d9ac769ce7e5b9f4d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 30 Apr 2016 15:31:40 -0700
Subject: [PATCH] Use exorted definitions of SIGRTMIN
@@ -14,17 +14,16 @@ https://sourceware.org/bugzilla/show_bug.cgi?id=13012
Upstream-Status: Submitted
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
gdb/linux-nat.c | 4 ++--
gdb/nat/linux-nat.h | 4 ++++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
-index 063afe26..fb1d2d5d 100644
+index 4484fa5c87..3bb0ee7a49 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
-@@ -4713,6 +4713,6 @@ lin_thread_get_thread_signals (sigset_t *set)
+@@ -4588,6 +4588,6 @@ lin_thread_get_thread_signals (sigset_t *set)
/* NPTL reserves the first two RT signals, but does not provide any
way for the debugger to query the signal numbers - fortunately
they don't change. */
@@ -34,10 +33,10 @@ index 063afe26..fb1d2d5d 100644
+ sigaddset (set, SIGRTMIN + 1);
}
diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h
-index 1e32dd9e..b886305d 100644
+index 44dcbb7758..975d7276f6 100644
--- a/gdb/nat/linux-nat.h
+++ b/gdb/nat/linux-nat.h
-@@ -90,4 +90,8 @@ extern void linux_stop_lwp (struct lwp_info *lwp);
+@@ -91,4 +91,8 @@ extern void linux_stop_lwp (struct lwp_info *lwp);
extern int lwp_is_stepping (struct lwp_info *lwp);
diff --git a/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch b/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch
index bc4bc26835..18168c6bae 100644
--- a/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
+++ b/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch
@@ -1,7 +1,7 @@
-From ba6ffa461fe781d44d6dcbc0fbd569237b450fdc Mon Sep 17 00:00:00 2001
+From 40c9c174590ce6fdc873b453285249fe957f376d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 30 Apr 2016 15:35:39 -0700
-Subject: [PATCH 09/11] Change order of CFLAGS
+Subject: [PATCH] Change order of CFLAGS
Lets us override Werror if need be
@@ -13,18 +13,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
-index f2f8a084bd..9528db1364 100644
+index 16a9f2fd38..b9c8cd9c41 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
-@@ -143,7 +143,7 @@ CPPFLAGS = @CPPFLAGS@
+@@ -146,7 +146,7 @@ PTHREAD_LIBS = @PTHREAD_LIBS@
INTERNAL_CFLAGS_BASE = ${CXXFLAGS} ${GLOBAL_CFLAGS} \
- ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS}
+ ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} $(PTHREAD_CFLAGS)
INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
-INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
+INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${COMPILER_CFLAGS} -DGDBSERVER
# LDFLAGS is specifically reserved for setting from the command line
# when running make.
---
-2.18.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch b/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch
index 809d52f250..8f15c49d0e 100644
--- a/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
+++ b/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch
@@ -1,7 +1,7 @@
-From 19b581056c1709f7d2872cd76b977542a0fe6142 Mon Sep 17 00:00:00 2001
+From 5b69a98f6bb7363a1f79f29bac2b25b7df6d2fdd Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 10 May 2016 08:47:05 -0700
-Subject: [PATCH 10/11] resolve restrict keyword conflict
+Subject: [PATCH] resolve restrict keyword conflict
GCC detects that we call 'restrict' as param name in function
signatures and complains since both params are called 'restrict'
@@ -11,13 +11,13 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- gdb/gnulib/import/sys_time.in.h | 8 ++++----
+ gnulib/import/sys_time.in.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
-diff --git a/gdb/gnulib/import/sys_time.in.h b/gdb/gnulib/import/sys_time.in.h
-index b4a0e49c50..d22cea9aaf 100644
---- a/gdb/gnulib/import/sys_time.in.h
-+++ b/gdb/gnulib/import/sys_time.in.h
+diff --git a/gnulib/import/sys_time.in.h b/gnulib/import/sys_time.in.h
+index d535a6a48b..7c34d5a1aa 100644
+--- a/gnulib/import/sys_time.in.h
++++ b/gnulib/import/sys_time.in.h
@@ -93,20 +93,20 @@ struct timeval
# define gettimeofday rpl_gettimeofday
# endif
@@ -43,6 +43,3 @@ index b4a0e49c50..d22cea9aaf 100644
# endif
_GL_CXXALIASWARN (gettimeofday);
# if defined __cplusplus && defined GNULIB_NAMESPACE
---
-2.18.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0011-Fix-invalid-sigprocmask-call.patch b/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch
index bce025c391..5209c00275 100644
--- a/meta/recipes-devtools/gdb/gdb/0011-Fix-invalid-sigprocmask-call.patch
+++ b/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch
@@ -1,7 +1,7 @@
-From b1985595e46721bb168ac38f4c841a915cc2f799 Mon Sep 17 00:00:00 2001
+From bc1f01ff5e524f7777083024bce348a9b0017a7a Mon Sep 17 00:00:00 2001
From: Yousong Zhou <yszhou4tech@gmail.com>
Date: Fri, 24 Mar 2017 10:36:03 +0800
-Subject: [PATCH 11/11] Fix invalid sigprocmask call
+Subject: [PATCH] Fix invalid sigprocmask call
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -28,22 +28,19 @@ Upstream-Status: Pending [not author, cherry-picked from LEDE https://bugs.lede-
Signed-off-by: André Draszik <adraszik@tycoint.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- gdb/common/signals-state-save-restore.c | 2 +-
+ gdb/gdbsupport/signals-state-save-restore.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/gdb/common/signals-state-save-restore.c b/gdb/common/signals-state-save-restore.c
-index 5bb66321bb..6597decbc6 100644
---- a/gdb/common/signals-state-save-restore.c
-+++ b/gdb/common/signals-state-save-restore.c
-@@ -41,7 +41,7 @@ save_original_signals_state (bool quiet)
+diff --git a/gdb/gdbsupport/signals-state-save-restore.c b/gdb/gdbsupport/signals-state-save-restore.c
+index c292d498da..af9dcaeb08 100644
+--- a/gdb/gdbsupport/signals-state-save-restore.c
++++ b/gdb/gdbsupport/signals-state-save-restore.c
+@@ -38,7 +38,7 @@ save_original_signals_state (bool quiet)
int i;
int res;
-- res = sigprocmask (0, NULL, &original_signal_mask);
-+ res = sigprocmask (SIG_BLOCK, NULL, &original_signal_mask);
+- res = gdb_sigmask (0, NULL, &original_signal_mask);
++ res = gdb_sigmask (SIG_BLOCK, NULL, &original_signal_mask);
if (res == -1)
perror_with_name (("sigprocmask"));
---
-2.18.0
-
diff --git a/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch b/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch
new file mode 100644
index 0000000000..eedd94c4d4
--- /dev/null
+++ b/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch
@@ -0,0 +1,39 @@
+From 3d6700d38153a0ec8e0800de703a5089a8cd3d2d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Nov 2018 18:00:23 -0800
+Subject: [PATCH] gdbserver ctrl-c handling
+
+This problem was created by the upstream commit 78708b7c8c
+After applying the commit, it will send SIGINT to the process
+group(-signal_pid).
+But if we use gdbserver send SIGINT, and the attached process is not a
+process
+group leader, then the "kill (-signal_pid, SIGINT)" returns error and
+fails to
+interrupt the attached process.
+
+Upstream-Status: Submitted
+[https://sourceware.org/bugzilla/show_bug.cgi?id=18945]
+
+Author: Josh Gao
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdb/gdbserver/linux-low.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
+index 4255795ea6..762f8bafb6 100644
+--- a/gdb/gdbserver/linux-low.c
++++ b/gdb/gdbserver/linux-low.c
+@@ -5904,9 +5904,7 @@ linux_look_up_symbols (void)
+ static void
+ linux_request_interrupt (void)
+ {
+- /* Send a SIGINT to the process group. This acts just like the user
+- typed a ^C on the controlling terminal. */
+- kill (-signal_pid, SIGINT);
++ kill (signal_pid, SIGINT);
+ }
+
+ /* Copy LEN bytes from inferior's auxiliary vector starting at OFFSET
diff --git a/meta/recipes-devtools/gdb/gdb_8.3.1.bb b/meta/recipes-devtools/gdb/gdb_9.2.bb
index d70757a151..d70757a151 100644
--- a/meta/recipes-devtools/gdb/gdb_8.3.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 6e137432f0..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
@@ -39,12 +41,12 @@ do_compile_prepend () {
do_install () {
oe_runmake install DESTDIR="${D}" bindir=${bindir} \
template_dir=${datadir}/git-core/templates
- install -d ${D}/${mandir}/man1
- install -d ${D}/${mandir}/man5
- install -d ${D}/${mandir}/man7
- install -t ${D}/${mandir}/man1 ${WORKDIR}/man1/*
- install -t ${D}/${mandir}/man5 ${WORKDIR}/man5/*
- install -t ${D}/${mandir}/man7 ${WORKDIR}/man7/*
+
+ for section in man1 man5 man7; do
+ install -d ${D}/${mandir}/$section
+ install -t ${D}/${mandir}/$section ${WORKDIR}/$section/*
+ done
+
install -d ${D}/${datadir}/bash-completion/completions/
install -m 644 ${S}/contrib/completion/git-completion.bash ${D}/${datadir}/bash-completion/completions/git
}
@@ -94,19 +96,15 @@ do_install_append_class-nativesdk() {
FILES_${PN} += "${datadir}/git-core ${libexecdir}/git-core/"
PERLTOOLS = " \
+ ${bindir}/git-cvsserver \
${libexecdir}/git-core/git-add--interactive \
${libexecdir}/git-core/git-archimport \
${libexecdir}/git-core/git-cvsexportcommit \
${libexecdir}/git-core/git-cvsimport \
${libexecdir}/git-core/git-cvsserver \
- ${bindir}/git-cvsserver \
- ${libexecdir}/git-core/git-difftool \
${libexecdir}/git-core/git-send-email \
${libexecdir}/git-core/git-svn \
${libexecdir}/git-core/git-instaweb \
- ${libexecdir}/git-core/git-submodule \
- ${libexecdir}/git-core/git-am \
- ${libexecdir}/git-core/git-request-pull \
${datadir}/gitweb/gitweb.cgi \
${datadir}/git-core/templates/hooks/prepare-commit-msg.sample \
${datadir}/git-core/templates/hooks/pre-rebase.sample \
diff --git a/meta/recipes-devtools/git/git_2.23.0.bb b/meta/recipes-devtools/git/git_2.23.0.bb
deleted file mode 100644
index 1539182a90..0000000000
--- a/meta/recipes-devtools/git/git_2.23.0.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] = "203c238ffdcef76f9bd6c67cfbaf949f"
-SRC_URI[tarball.sha256sum] = "e3396c90888111a01bf607346db09b0fbf49a95bc83faf9506b61195936f0cfe"
-SRC_URI[manpages.md5sum] = "90a72e553de712d798d68b15b57bc928"
-SRC_URI[manpages.sha256sum] = "a5b0998f95c2290386d191d34780d145ea67e527fac98541e0350749bf76be75"
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.2.bb b/meta/recipes-devtools/glide/glide_0.13.3.bb
index 7faaf4a388..31295edf90 100644
--- a/meta/recipes-devtools/glide/glide_0.13.2.bb
+++ b/meta/recipes-devtools/glide/glide_0.13.3.bb
@@ -5,10 +5,14 @@ LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=54905cf894f8cc416a92f4fc
GO_IMPORT = "github.com/Masterminds/glide"
SRC_URI = "git://${GO_IMPORT}"
-SRCREV = "9ef6ca313b3200079861f2de4e567b1d22081d19"
+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 1630c12823..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 = "b98424c249119b79d3f709e26eb86f2fd4d5e5f3"
-PV = "20190501+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.12/0001-allow-CC-and-CXX-to-have-multiple-words.patch b/meta/recipes-devtools/go/go-1.12/0001-allow-CC-and-CXX-to-have-multiple-words.patch
deleted file mode 100644
index 4442858c83..0000000000
--- a/meta/recipes-devtools/go/go-1.12/0001-allow-CC-and-CXX-to-have-multiple-words.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 7cc519aa5f84cf8fc7ac8c10fc69aa8040330ea0 Mon Sep 17 00:00:00 2001
-From: Matt Madison <matt@madison.systems>
-Date: Mon, 19 Feb 2018 08:49:33 -0800
-Subject: [PATCH] allow CC and CXX to have multiple words
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Matt Madison <matt@madison.systems>
-
----
- 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 afadbad..cedbfbf 100644
---- a/src/cmd/go/internal/envcmd/env.go
-+++ b/src/cmd/go/internal/envcmd/env.go
-@@ -85,11 +85,11 @@ func MkEnv() []cfg.EnvVar {
-
- cc := cfg.DefaultCC(cfg.Goos, cfg.Goarch)
- if env := strings.Fields(os.Getenv("CC")); len(env) > 0 {
-- cc = env[0]
-+ cc = strings.Join(env, " ")
- }
- cxx := cfg.DefaultCXX(cfg.Goos, cfg.Goarch)
- if env := strings.Fields(os.Getenv("CXX")); len(env) > 0 {
-- cxx = env[0]
-+ cxx = strings.Join(env, " ")
- }
- env = append(env, cfg.EnvVar{Name: "CC", Value: cc})
- env = append(env, cfg.EnvVar{Name: "CXX", Value: cxx})
diff --git a/meta/recipes-devtools/go/go-1.12/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/meta/recipes-devtools/go/go-1.12/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
deleted file mode 100644
index b6ca40edee..0000000000
--- a/meta/recipes-devtools/go/go-1.12/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 5c32c38bf19b24f0aadd78012d17ff5caa82151e Mon Sep 17 00:00:00 2001
-From: Matt Madison <matt@madison.systems>
-Date: Sat, 17 Feb 2018 05:24:20 -0800
-Subject: [PATCH] allow GOTOOLDIR to be overridden in the environment
-
-to allow for split host/target build roots
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Matt Madison <matt@madison.systems>
-
----
- src/cmd/dist/build.go | 4 +++-
- src/cmd/go/internal/cfg/cfg.go | 7 +++++--
- 2 files changed, 8 insertions(+), 3 deletions(-)
-
-Index: go/src/cmd/dist/build.go
-===================================================================
---- go.orig/src/cmd/dist/build.go
-+++ go/src/cmd/dist/build.go
-@@ -228,7 +228,9 @@ func xinit() {
- workdir = xworkdir()
- xatexit(rmworkdir)
-
-- tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
-+ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
-+ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
-+ }
- }
-
- // compilerEnv returns a map from "goos/goarch" to the
-Index: go/src/cmd/go/internal/cfg/cfg.go
-===================================================================
---- go.orig/src/cmd/go/internal/cfg/cfg.go
-+++ go/src/cmd/go/internal/cfg/cfg.go
-@@ -116,7 +116,11 @@ func init() {
- // variables. This matches the initialization of ToolDir in
- // go/build, except for using GOROOT rather than
- // runtime.GOROOT.
-- build.ToolDir = filepath.Join(GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
-+ if s := os.Getenv("GOTOOLDIR"); s != "" {
-+ build.ToolDir = filepath.Clean(s)
-+ } else {
-+ build.ToolDir = filepath.Join(GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
-+ }
- }
- }
-
diff --git a/meta/recipes-devtools/go/go-1.12/0009-ld-replace-glibc-dynamic-linker-with-musl.patch b/meta/recipes-devtools/go/go-1.12/0009-ld-replace-glibc-dynamic-linker-with-musl.patch
deleted file mode 100644
index 840cf4bbd7..0000000000
--- a/meta/recipes-devtools/go/go-1.12/0009-ld-replace-glibc-dynamic-linker-with-musl.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 35ea4be34e94912b00837e0f7c7385f2e98fe769 Mon Sep 17 00:00:00 2001
-From: Matt Madison <matt@madison.systems>
-Date: Sun, 18 Feb 2018 08:24:05 -0800
-Subject: [PATCH] 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.
-
-Upstream-Status: Inappropriate [Real fix should be portable across libcs]
-
-Signed-off-by: Matt Madison <matt@madison.systems>
-
----
- 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(-)
-
---- 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",
---- 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",
---- 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: "XXX",
---- 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",
---- 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",
---- a/src/cmd/link/internal/ppc64/obj.go
-+++ b/src/cmd/link/internal/ppc64/obj.go
-@@ -62,7 +62,7 @@ func Init() (*sys.Arch, ld.Arch) {
- Machoreloc1: machoreloc1,
-
- // 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",
---- 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",
---- 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",
diff --git a/meta/recipes-devtools/go/go-1.12.inc b/meta/recipes-devtools/go/go-1.15.inc
index 39157ff882..97d748b922 100644
--- a/meta/recipes-devtools/go/go-1.12.inc
+++ b/meta/recipes-devtools/go/go-1.15.inc
@@ -1,7 +1,7 @@
require go-common.inc
-GO_BASEVERSION = "1.12"
-GO_MINOR = ".9"
+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] = "6132109d4050da349eadc9f7b0304ef4"
-SRC_URI[main.sha256sum] = "ab0e56ed9c4732a653ed22e232652709afbf573e710f56a07f7fdeca578d62fc"
+SRC_URI[main.sha256sum] = "28bf9d0bcde251011caae230a4a05d917b172ea203f2a62f2c2f9533589d4b4d"
diff --git a/meta/recipes-devtools/go/go-1.15/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
new file mode 100644
index 0000000000..5f4823be22
--- /dev/null
+++ b/meta/recipes-devtools/go/go-1.15/0001-allow-CC-and-CXX-to-have-multiple-words.patch
@@ -0,0 +1,33 @@
+From 9e3dc44cdfa58d96504d0a789dc82617dd5bef55 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:01:13 +0430
+Subject: [PATCH 1/9] cmd/go: Allow CC and CXX to have multiple words
+
+Upstream-Status: Inappropriate [OE specific]
+
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+
+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(-)
+
+--- a/src/cmd/go/internal/envcmd/env.go
++++ b/src/cmd/go/internal/envcmd/env.go
+@@ -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 {
+- cc = env[0]
++ cc = strings.Join(env, " ")
+ }
+ cxx := cfg.DefaultCXX(cfg.Goos, cfg.Goarch)
+ if env := strings.Fields(cfg.Getenv("CXX")); len(env) > 0 {
+- cxx = env[0]
++ cxx = strings.Join(env, " ")
+ }
+ env = append(env, cfg.EnvVar{Name: "AR", Value: envOr("AR", "ar")})
+ env = append(env, cfg.EnvVar{Name: "CC", Value: cc})
diff --git a/meta/recipes-devtools/go/go-1.12/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 66b8561874..d0511c0c40 100644
--- a/meta/recipes-devtools/go/go-1.12/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
@@ -1,7 +1,9 @@
-From 47db69e20ed66fb62b01affd83d829654b829893 Mon Sep 17 00:00:00 2001
-From: Matt Madison <matt@madison.systems>
-Date: Mon, 19 Feb 2018 08:50:59 -0800
-Subject: [PATCH] cmd/go: make content-based hash generation less pedantic
+From a13ae484e41139094505d2834437e9262a5315f7 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:14:22 +0430
+Subject: [PATCH 2/9] cmd/go: make content-based hash generation less pedantic
+
+Upstream-Status: Inappropriate [OE specific]
Go 1.10's build tool now uses content-based hashes to
determine when something should be built or re-built.
@@ -38,20 +40,19 @@ This patch filters out all compiler flags except those
beginning with '-m'. The default behavior can be restored
by setting the CGO_PEDANTIC environment variable.
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Matt Madison <matt@madison.systems>
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
---
src/cmd/go/internal/envcmd/env.go | 2 +-
- src/cmd/go/internal/work/exec.go | 63 ++++++++++++++++++++++---------
- 2 files changed, 46 insertions(+), 19 deletions(-)
+ 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 cedbfbf..5763a0d 100644
--- a/src/cmd/go/internal/envcmd/env.go
+++ b/src/cmd/go/internal/envcmd/env.go
-@@ -128,7 +128,7 @@ func ExtraEnvVars() []cfg.EnvVar {
+@@ -157,7 +157,7 @@ func ExtraEnvVars() []cfg.EnvVar {
func ExtraEnvVarsCostly() []cfg.EnvVar {
var b work.Builder
b.Init()
@@ -60,29 +61,27 @@ index cedbfbf..5763a0d 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 12e1527..e41bfac 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
-@@ -174,6 +174,8 @@ func (b *Builder) Do(root *Action) {
- wg.Wait()
- }
+@@ -33,6 +33,8 @@ import (
+ "cmd/go/internal/str"
+ )
+var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != ""
+
- // buildActionID computes the action ID for a build action.
- func (b *Builder) buildActionID(a *Action) cache.ActionID {
- p := a.Package
-@@ -190,7 +192,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
- // but it does not hide the exact value of $GOPATH.
- // Include the full dir in that case.
+ // 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 {
+@@ -209,7 +211,7 @@ func (b *Builder) buildActionID(a *Actio
// Assume b.WorkDir is being trimmed properly.
-- if !p.Goroot && !strings.HasPrefix(p.Dir, b.WorkDir) {
-+ if !p.Goroot && !omitGopath && !strings.HasPrefix(p.Dir, b.WorkDir) {
+ // 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)
-@@ -201,13 +203,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"))
@@ -100,7 +99,7 @@ index 12e1527..e41bfac 100644
}
// TODO(rsc): Should we include the SWIG version or Fortran/GCC/G++/Objective-C compiler versions?
}
-@@ -2096,33 +2098,33 @@ 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 {
@@ -137,13 +136,28 @@ index 12e1527..e41bfac 100644
// fcExe returns the FC compiler setting without all the extra flags we add implicitly.
-func (b *Builder) fcExe() []string {
-- return b.compilerExe(os.Getenv("FC"), "gfortran")
+- return b.compilerExe(cfg.Getenv("FC"), "gfortran")
+func (b *Builder) fcExe(filtered bool) []string {
+ return b.compilerExe(os.Getenv("FC"), "gfortran", filtered)
++}
++
++var filterFlags = os.Getenv("CGO_PEDANTIC") == ""
++
++func filterCompilerFlags(flags []string) []string {
++ var newflags []string
++ if !filterFlags {
++ return flags
++ }
++ for _, flag := range flags {
++ if strings.HasPrefix(flag, "-m") {
++ newflags = append(newflags, flag)
++ }
++ }
++ return newflags
}
// compilerExe returns the compiler to use given an
-@@ -2131,11 +2133,14 @@ 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"].
@@ -153,41 +167,27 @@ index 12e1527..e41bfac 100644
if len(compiler) == 0 {
compiler = []string{def}
}
++
+ if filtered {
+ return append(compiler[0:1], filterCompilerFlags(compiler[1:])...)
+ }
++
return compiler
}
-@@ -2285,8 +2290,23 @@ func envList(key, def string) []string {
- return strings.Fields(v)
+@@ -2510,7 +2532,7 @@ func envList(key, def string) []string {
}
-+var filterFlags = os.Getenv("CGO_PEDANTIC") == ""
-+
-+func filterCompilerFlags(flags []string) []string {
-+ var newflags []string
-+ if !filterFlags {
-+ return flags
-+ }
-+ for _, flag := range flags {
-+ if strings.HasPrefix(flag, "-m") {
-+ newflags = append(newflags, flag)
-+ }
-+ }
-+ return newflags
-+}
-+
// CFlags returns the flags to use when invoking the C, C++ or Fortran compilers, or cgo.
-func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) {
+func (b *Builder) CFlags(p *load.Package, filtered bool) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) {
defaults := "-g -O2"
if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
-@@ -2304,6 +2324,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
- if ldflags, err = buildFlags("LDFLAGS", defaults, p.CgoLDFLAGS, checkLinkerFlags); err != nil {
+@@ -2529,6 +2551,14 @@ func (b *Builder) CFlags(p *load.Package
return
}
+
+ if filtered {
+ cppflags = filterCompilerFlags(cppflags)
+ cflags = filterCompilerFlags(cflags)
@@ -195,10 +195,11 @@ index 12e1527..e41bfac 100644
+ fflags = filterCompilerFlags(fflags)
+ ldflags = filterCompilerFlags(ldflags)
+ }
-
++
return
}
-@@ -2319,7 +2346,7 @@ var cgoRe = regexp.MustCompile(`[/\\:]`)
+
+@@ -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
@@ -207,7 +208,7 @@ index 12e1527..e41bfac 100644
if err != nil {
return nil, nil, err
}
-@@ -2679,7 +2706,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) {
diff --git a/meta/recipes-devtools/go/go-1.15/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
new file mode 100644
index 0000000000..662c705471
--- /dev/null
+++ b/meta/recipes-devtools/go/go-1.15/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
@@ -0,0 +1,47 @@
+From 28ada8896b76d620240bafc22aa395071d601482 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:15:37 +0430
+Subject: [PATCH 3/9] cmd/go: Allow GOTOOLDIR to be overridden in the environment
+
+to allow for split host/target build roots
+
+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 [OE specific]
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+---
+ src/cmd/dist/build.go | 4 +++-
+ src/cmd/go/internal/cfg/cfg.go | 6 +++++-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+--- a/src/cmd/dist/build.go
++++ b/src/cmd/dist/build.go
+@@ -246,7 +246,9 @@ func xinit() {
+ workdir = xworkdir()
+ xatexit(rmworkdir)
+
+- tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
++ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
++ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
++ }
+ }
+
+ // compilerEnv returns a map from "goos/goarch" to the
+--- a/src/cmd/go/internal/cfg/cfg.go
++++ b/src/cmd/go/internal/cfg/cfg.go
+@@ -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.
+- build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
++ if s := os.Getenv("GOTOOLDIR"); s != "" {
++ build.ToolDir = filepath.Clean(s)
++ } else {
++ build.ToolDir = filepath.Join(ctxt.GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
++ }
+ }
+
+ ctxt.GOPATH = envOr("GOPATH", ctxt.GOPATH)
diff --git a/meta/recipes-devtools/go/go-1.12/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 004a33a023..da29923920 100644
--- a/meta/recipes-devtools/go/go-1.12/0004-ld-add-soname-to-shareable-objects.patch
+++ b/meta/recipes-devtools/go/go-1.15/0004-ld-add-soname-to-shareable-objects.patch
@@ -1,24 +1,25 @@
-From 55eb8c95a89f32aec16b7764e78e8cf75169dc81 Mon Sep 17 00:00:00 2001
-From: Matt Madison <matt@madison.systems>
-Date: Sat, 17 Feb 2018 06:26:10 -0800
-Subject: [PATCH] ld: add soname to shareable objects
+From bf5cf5301ae5914498454c87293d1df2e1d8489f Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:16:32 +0430
+Subject: [PATCH 4/9] ld: add soname to shareable objects
so that OE's shared library dependency handling
can find them.
-Upstream-Status: Inappropriate [OE specific]
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
-Signed-off-by: Matt Madison <matt@madison.systems>
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
---
- src/cmd/link/internal/ld/lib.go | 4 ++++
- 1 file changed, 4 insertions(+)
+ 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 220aab3..703925f 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
-@@ -1135,6 +1135,7 @@ func (ctxt *Link) hostlink() {
+@@ -1446,6 +1446,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
@@ -26,16 +27,15 @@ index 220aab3..703925f 100644
if ctxt.HeadType != objabi.Hwindows {
// Pass -z nodelete to mark the shared library as
// non-closeable: a dlclose will do nothing.
-@@ -1146,6 +1147,8 @@ func (ctxt *Link) hostlink() {
+@@ -1457,6 +1458,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
-+
case BuildModePlugin:
if ctxt.HeadType == objabi.Hdarwin {
argv = append(argv, "-dynamiclib")
-@@ -1154,6 +1157,7 @@ func (ctxt *Link) hostlink() {
+@@ -1465,6 +1467,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
diff --git a/meta/recipes-devtools/go/go-1.12/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 ace8de9eae..59c12d9546 100644
--- a/meta/recipes-devtools/go/go-1.12/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
@@ -1,32 +1,34 @@
-From 1bf15aa8fb773604b2524cfdab493fa4d8fa9285 Mon Sep 17 00:00:00 2001
-From: Matt Madison <matt@madison.systems>
-Date: Sat, 17 Feb 2018 06:32:45 -0800
-Subject: [PATCH] make.bash: override CC when building dist and go_bootstrap
+From f05ef3ded52b98537c10efd0b15cd9612471524d Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:17:16 +0430
+Subject: [PATCH 5/9] make.bash: override CC when building dist and
+ go_bootstrap
for handling OE cross-canadian builds.
-Upstream-Status: Inappropriate [OE specific]
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
-Signed-off-by: Matt Madison <matt@madison.systems>
+Upstream-Status: Inappropriate [OE specific]
+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 78882d9..25943d0 100755
--- a/src/make.bash
+++ b/src/make.bash
-@@ -163,7 +163,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
+@@ -178,7 +178,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ];
exit 1
fi
rm -f cmd/dist/dist
--GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
-+CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
+-GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
++CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
# -e doesn't propagate out of eval, so check success by hand.
eval $(./cmd/dist/dist env -p || echo FAIL=true)
-@@ -194,7 +194,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.
diff --git a/meta/recipes-devtools/go/go-1.12/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 0c0d5da80a..7aee0bac43 100644
--- a/meta/recipes-devtools/go/go-1.12/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
@@ -1,7 +1,9 @@
-From fe0fcaf43ef3aab81541dad2a71b46254dc4cf6a Mon Sep 17 00:00:00 2001
-From: Matt Madison <matt@madison.systems>
-Date: Sat, 17 Feb 2018 10:03:48 -0800
-Subject: [PATCH] cmd/dist: separate host and target builds
+From 10735bb84df17ba657f76835f483cd8543a879c1 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:18:12 +0430
+Subject: [PATCH 6/9] cmd/dist: separate host and target builds
+
+Upstream-Status: Inappropriate [OE specific]
Change the dist tool to allow for OE-style cross-
and cross-canadian builds:
@@ -27,29 +29,26 @@ the staleness checks in the dist tool will fail if the "std"
library has not also been built. So host-only builds have to
build everything anyway.
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Matt Madison <matt@madison.systems>
-
-more dist cleanup
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
---
- src/cmd/dist/build.go | 153 ++++++++++++++++++++++++++++++------------
- 1 file changed, 111 insertions(+), 42 deletions(-)
+ src/cmd/dist/build.go | 155 ++++++++++++++++++++++++++++++------------
+ 1 file changed, 112 insertions(+), 43 deletions(-)
-Index: go/src/cmd/dist/build.go
-===================================================================
---- go.orig/src/cmd/dist/build.go
-+++ go/src/cmd/dist/build.go
-@@ -39,6 +39,7 @@ var (
+--- a/src/cmd/dist/build.go
++++ b/src/cmd/dist/build.go
+@@ -41,6 +41,7 @@ var (
goldflags string
workdir string
tooldir string
-+ build_tooldir string
++ build_tooldir string
oldgoos string
oldgoarch string
exe string
-@@ -50,6 +51,7 @@ var (
+@@ -53,6 +54,7 @@ var (
rebuildall bool
defaultclang bool
@@ -57,41 +56,33 @@ Index: go/src/cmd/dist/build.go
vflag int // verbosity
)
-@@ -231,6 +233,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)
}
-+ build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
+
++ build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
}
// compilerEnv returns a map from "goos/goarch" to the
-@@ -260,7 +264,6 @@ func compilerEnv(envName, def string) ma
- if gohostos != goos || gohostarch != goarch {
- m[gohostos+"/"+gohostarch] = m[""]
- }
-- m[""] = env
- }
-
- for _, goos := range okgoos {
-@@ -487,8 +490,10 @@ func setup() {
- // We keep it in pkg/, just like the object directory above.
+@@ -480,8 +484,10 @@ func setup() {
+ p := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
if rebuildall {
- xremoveall(tooldir)
+ xremoveall(p)
+ xremoveall(build_tooldir)
}
- xmkdirall(tooldir)
+ xmkdirall(p)
+ xmkdirall(build_tooldir)
- // Remove tool binaries from before the tool/gohostos_gohostarch
- xremoveall(pathf("%s/bin/tool", goroot))
-@@ -1155,11 +1160,29 @@ func cmdbootstrap() {
+ if goos != gohostos || goarch != gohostarch {
+ p := pathf("%s/pkg/%s_%s", goroot, goos, goarch)
+@@ -1244,12 +1250,29 @@ func cmdbootstrap() {
var noBanner bool
var debug bool
+ var hostOnly bool
+ var targetOnly bool
-+ var toBuild = []string { "std", "cmd" }
++ var toBuild = []string{"std", "cmd"}
+
flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process")
@@ -101,8 +92,8 @@ Index: go/src/cmd/dist/build.go
- xflagparse(0)
+ xflagparse(-1)
-+
-+ if (hostOnly && targetOnly) {
+
++ if hostOnly && targetOnly {
+ fatalf("specify only one of --host-only or --target-only\n")
+ }
+ crossBuild = hostOnly || targetOnly
@@ -113,26 +104,26 @@ Index: go/src/cmd/dist/build.go
+ fatalf("package names not permitted without --host-only or --target-only\n")
+ }
+ }
-
- if debug {
- // cmd/buildid is used in debug mode.
-@@ -1207,8 +1230,13 @@ func cmdbootstrap() {
+ // 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
+@@ -1303,8 +1326,13 @@ func cmdbootstrap() {
xprintf("\n")
}
- gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
-- goldflags = os.Getenv("GO_LDFLAGS")
+- goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
+ // For split host/target cross/cross-canadian builds, we don't
+ // want to be setting these flags until after we have compiled
+ // the toolchain that runs on the build host.
-+ if ! crossBuild {
++ if !crossBuild {
+ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
-+ goldflags = os.Getenv("GO_LDFLAGS")
++ goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
+ }
goBootstrap := pathf("%s/go_bootstrap", tooldir)
cmdGo := pathf("%s/go", gobin)
if debug {
-@@ -1237,7 +1265,11 @@ func cmdbootstrap() {
+@@ -1333,7 +1361,11 @@ func cmdbootstrap() {
xprintf("\n")
}
xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n")
@@ -145,7 +136,7 @@ Index: go/src/cmd/dist/build.go
goInstall(goBootstrap, append([]string{"-i"}, toolchain...)...)
if debug {
run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
-@@ -1274,50 +1306,84 @@ func cmdbootstrap() {
+@@ -1370,50 +1402,84 @@ func cmdbootstrap() {
}
checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
@@ -267,16 +258,17 @@ Index: go/src/cmd/dist/build.go
}
// Check that there are no new files in $GOROOT/bin other than
-@@ -1335,7 +1401,11 @@ func cmdbootstrap() {
+@@ -1430,8 +1496,11 @@ func cmdbootstrap() {
+ }
}
- // Remove go_bootstrap now that we're done.
+- // Remove go_bootstrap now that we're done.
- xremove(pathf("%s/go_bootstrap", tooldir))
+ // Except that for split host/target cross-builds, we need to
+ // keep it.
-+ if ! crossBuild {
++ if !crossBuild {
+ xremove(pathf("%s/go_bootstrap", tooldir))
+ }
- // Print trailing banner unless instructed otherwise.
- if !noBanner {
+ if goos == "android" {
+ // Make sure the exec wrapper will sync a fresh $GOROOT to the device.
diff --git a/meta/recipes-devtools/go/go-1.12/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 29ef947abd..4b4d0d4f3d 100644
--- a/meta/recipes-devtools/go/go-1.12/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
@@ -1,7 +1,9 @@
-From 7cc60b3887be2d5674b9f5d422d022976cf205e5 Mon Sep 17 00:00:00 2001
-From: Matt Madison <matt@madison.systems>
-Date: Fri, 2 Mar 2018 06:00:20 -0800
-Subject: [PATCH] cmd/go: make GOROOT precious by default
+From 9ba507e076c744f4d394418e4a849e68cd426a4a Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:18:56 +0430
+Subject: [PATCH 7/9] cmd/go: make GOROOT precious by default
+
+Upstream-Status: Inappropriate [OE specific]
The go build tool normally rebuilds whatever it detects is
stale. This can be a problem when GOROOT is intended to
@@ -14,21 +16,20 @@ This patch prevents the install and linkshared actions from
installing to GOROOT unless overridden with the GOROOT_OVERRIDE
environment variable.
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Matt Madison <matt@madison.systems>
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Matt Madison <matt@madison.systems>.
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
---
src/cmd/go/internal/work/action.go | 3 +++
- src/cmd/go/internal/work/build.go | 5 +++++
+ src/cmd/go/internal/work/build.go | 6 ++++++
src/cmd/go/internal/work/exec.go | 25 +++++++++++++++++++++++++
- 3 files changed, 33 insertions(+)
+ 3 files changed, 34 insertions(+)
-Index: go/src/cmd/go/internal/work/action.go
-===================================================================
---- go.orig/src/cmd/go/internal/work/action.go
-+++ go/src/cmd/go/internal/work/action.go
-@@ -600,6 +600,9 @@ func (b *Builder) addTransitiveLinkDeps(
+--- a/src/cmd/go/internal/work/action.go
++++ b/src/cmd/go/internal/work/action.go
+@@ -670,6 +670,9 @@ func (b *Builder) addTransitiveLinkDeps(
if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] {
continue
}
@@ -38,22 +39,21 @@ Index: go/src/cmd/go/internal/work/action.go
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
-Index: go/src/cmd/go/internal/work/build.go
-===================================================================
---- go.orig/src/cmd/go/internal/work/build.go
-+++ go/src/cmd/go/internal/work/build.go
-@@ -147,6 +147,7 @@ See also: go install, go get, go clean.
- }
+--- a/src/cmd/go/internal/work/build.go
++++ b/src/cmd/go/internal/work/build.go
+@@ -167,6 +167,8 @@ See also: go install, go get, go clean.
const concurrentGCBackendCompilationEnabledByDefault = true
-+var goRootPrecious bool = true
++var goRootPrecious bool = true
++
func init() {
// break init cycle
-@@ -160,6 +161,10 @@ func init() {
+ CmdBuild.Run = runBuild
+@@ -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
@@ -61,12 +61,10 @@ Index: go/src/cmd/go/internal/work/build.go
}
// Note that flags consulted by other parts of the code
-Index: go/src/cmd/go/internal/work/exec.go
-===================================================================
---- go.orig/src/cmd/go/internal/work/exec.go
-+++ go/src/cmd/go/internal/work/exec.go
-@@ -436,6 +436,23 @@ func (b *Builder) build(a *Action) (err
- return fmt.Errorf("missing or invalid binary-only package; expected file %q", a.Package.Target)
+--- a/src/cmd/go/internal/work/exec.go
++++ b/src/cmd/go/internal/work/exec.go
+@@ -468,6 +468,23 @@ func (b *Builder) build(a *Action) (err
+ return errors.New("binary-only packages are no longer supported")
}
+ if goRootPrecious && (a.Package.Standard || a.Package.Goroot) {
@@ -89,8 +87,8 @@ Index: go/src/cmd/go/internal/work/exec.go
if err := b.Mkdir(a.Objdir); err != nil {
return err
}
-@@ -1438,6 +1455,14 @@ func BuildInstallFunc(b *Builder, a *Act
- return nil
+@@ -1520,6 +1537,14 @@ func BuildInstallFunc(b *Builder, a *Act
+ return err
}
+ if goRootPrecious && a.Package != nil {
diff --git a/meta/recipes-devtools/go/go-1.12/0008-use-GOBUILDMODE-to-set-buildmode.patch b/meta/recipes-devtools/go/go-1.15/0008-use-GOBUILDMODE-to-set-buildmode.patch
index 225cf439c5..4e5d5021d6 100644
--- a/meta/recipes-devtools/go/go-1.12/0008-use-GOBUILDMODE-to-set-buildmode.patch
+++ b/meta/recipes-devtools/go/go-1.15/0008-use-GOBUILDMODE-to-set-buildmode.patch
@@ -1,7 +1,10 @@
-From 0e0c247f0caec23528889ff09d98348cba9028f1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 26 Oct 2018 15:02:32 +0800
-Subject: [PATCH] use GOBUILDMODE to set buildmode
+From 971b5626339ce0c4d57f9721c9a81af566c5a044 Mon Sep 17 00:00:00 2001
+From: Alex Kube <alexander.j.kube@gmail.com>
+Date: Wed, 23 Oct 2019 21:19:26 +0430
+Subject: [PATCH 8/9] cmd/go: Use GOBUILDMODE to set buildmode
+
+Upstream-Status: Denied [upstream choose antoher solution: `17a256b
+cmd/go: -buildmode=pie for android/arm']
While building go itself, the go build system does not support
to set `-buildmode=pie' from environment.
@@ -10,28 +13,30 @@ Add GOBUILDMODE to support it which make PIE executables the default
build mode, as PIE executables are required as of Yocto
Refers: https://groups.google.com/forum/#!topic/golang-dev/gRCe5URKewI
-Upstream-Status: Denied [upstream choose antoher solution: `17a256b
-cmd/go: -buildmode=pie for android/arm']
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Adapted to Go 1.13 from patches originally submitted to
+the meta/recipes-devtools/go tree by
+Hongxu Jia <hongxu.jia@windriver.com>
+
+Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
---
- src/cmd/go/internal/work/build.go | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
+ src/cmd/go/internal/work/build.go | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
-Index: go/src/cmd/go/internal/work/build.go
-===================================================================
---- go.orig/src/cmd/go/internal/work/build.go
-+++ go/src/cmd/go/internal/work/build.go
-@@ -223,7 +223,11 @@ func AddBuildFlags(cmd *base.Command) {
+--- a/src/cmd/go/internal/work/build.go
++++ b/src/cmd/go/internal/work/build.go
+@@ -254,7 +254,13 @@ func AddBuildFlags(cmd *base.Command, ma
cmd.Flag.Var(&load.BuildAsmflags, "asmflags", "")
cmd.Flag.Var(buildCompiler{}, "compiler", "")
- cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", "default", "")
++
+ if bm := os.Getenv("GOBUILDMODE"); bm != "" {
+ cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", bm, "")
+ } else {
+ cmd.Flag.StringVar(&cfg.BuildBuildmode, "buildmode", "default", "")
+ }
++
cmd.Flag.Var(&load.BuildGcflags, "gcflags", "")
cmd.Flag.Var(&load.BuildGccgoflags, "gccgoflags", "")
- cmd.Flag.StringVar(&cfg.BuildMod, "mod", "", "")
+ 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-common.inc b/meta/recipes-devtools/go/go-common.inc
index 93a3d3b5fb..f18d928c70 100644
--- a/meta/recipes-devtools/go/go-common.inc
+++ b/meta/recipes-devtools/go/go-common.inc
@@ -27,6 +27,16 @@ export GOTMPDIR ?= "${WORKDIR}/go-tmp"
GOTMPDIR[vardepvalue] = ""
export CGO_ENABLED = "1"
+export GOHOSTOS ?= "${BUILD_GOOS}"
+export GOHOSTARCH ?= "${BUILD_GOARCH}"
+export GOROOT_BOOTSTRAP ?= "${STAGING_LIBDIR_NATIVE}/go"
+export GOOS ?= "${TARGET_GOOS}"
+export GOARCH ?= "${TARGET_GOARCH}"
+export GOARM ?= "${TARGET_GOARM}"
+export GO386 ?= "${TARGET_GO386}"
+export GOMIPS ?= "${TARGET_GOMIPS}"
+export GOROOT_FINAL ?= "${libdir}/go"
+
do_compile_prepend() {
BUILD_CC=${BUILD_CC}
}
diff --git a/meta/recipes-devtools/go/go-cross-canadian.inc b/meta/recipes-devtools/go/go-cross-canadian.inc
index 945d0f9d10..d49250a8e2 100644
--- a/meta/recipes-devtools/go/go-cross-canadian.inc
+++ b/meta/recipes-devtools/go/go-cross-canadian.inc
@@ -13,11 +13,7 @@ DEBUG_PREFIX_MAP = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDP
-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
"
-export GOHOSTOS = "${BUILD_GOOS}"
-export GOHOSTARCH = "${BUILD_GOARCH}"
-export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
export GOTOOLDIR_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/${HOST_SYS}/go/pkg/tool/${BUILD_GOTUPLE}"
-export GOROOT_FINAL = "${libdir}/go"
export CGO_CFLAGS = "${CFLAGS}"
export CGO_LDFLAGS = "${LDFLAGS}"
export GO_LDFLAGS = '-linkmode external -extld ${HOST_PREFIX}gcc -extldflags "--sysroot=${STAGING_DIR_HOST} ${SECURITY_NOPIE_CFLAGS} ${HOST_CC_ARCH} ${LDFLAGS}"'
@@ -25,8 +21,8 @@ export GO_LDFLAGS = '-linkmode external -extld ${HOST_PREFIX}gcc -extldflags "--
do_configure[noexec] = "1"
do_compile() {
- export CC_FOR_${HOST_GOOS}_${HOST_GOARCH}="${HOST_PREFIX}gcc --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}"
- export CXX_FOR_${HOST_GOOS}_${HOST_GOARCH}="${HOST_PREFIX}gxx --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}"
+ export CC_FOR_${HOST_GOTUPLE}="${HOST_PREFIX}gcc --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}"
+ export CXX_FOR_${HOST_GOTUPLE}="${HOST_PREFIX}gxx --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}"
cd src
./make.bash --host-only --no-banner
cd ${B}
diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.12.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.12.bb
+++ b/meta/recipes-devtools/go/go-cross-canadian_1.15.bb
diff --git a/meta/recipes-devtools/go/go-cross.inc b/meta/recipes-devtools/go/go-cross.inc
index 3d344a74d3..3d5803bf07 100644
--- a/meta/recipes-devtools/go/go-cross.inc
+++ b/meta/recipes-devtools/go/go-cross.inc
@@ -5,23 +5,14 @@ DEPENDS = "go-native"
PN = "go-cross-${TUNE_PKGARCH}"
-export GOHOSTOS = "${BUILD_GOOS}"
-export GOHOSTARCH = "${BUILD_GOARCH}"
-export GOOS = "${TARGET_GOOS}"
-export GOARCH = "${TARGET_GOARCH}"
-export GOARM = "${TARGET_GOARM}"
-export GO386 = "${TARGET_GO386}"
-export GOMIPS = "${TARGET_GOMIPS}"
-export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
-export GOROOT_FINAL = "${libdir}/go"
export GOCACHE = "${B}/.cache"
CC = "${@d.getVar('BUILD_CC').strip()}"
do_configure[noexec] = "1"
do_compile() {
- export CC_FOR_${GOOS}_${GOARCH}="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
- export CXX_FOR_${GOOS}_${GOARCh}="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
+ export CC_FOR_${TARGET_GOTUPLE}="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
+ export CXX_FOR_${TARGET_GOTUPLE}="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
cd src
./make.bash --host-only --no-banner
cd ${B}
diff --git a/meta/recipes-devtools/go/go-cross_1.12.bb b/meta/recipes-devtools/go/go-cross_1.15.bb
index 80b5a03f6c..80b5a03f6c 100644
--- a/meta/recipes-devtools/go/go-cross_1.12.bb
+++ b/meta/recipes-devtools/go/go-cross_1.15.bb
diff --git a/meta/recipes-devtools/go/go-crosssdk.inc b/meta/recipes-devtools/go/go-crosssdk.inc
index 94f6fb8eb7..f0bec79719 100644
--- a/meta/recipes-devtools/go/go-crosssdk.inc
+++ b/meta/recipes-devtools/go/go-crosssdk.inc
@@ -4,18 +4,11 @@ DEPENDS = "go-native virtual/${TARGET_PREFIX}gcc-crosssdk virtual/nativesdk-${TA
PN = "go-crosssdk-${SDK_SYS}"
PROVIDES = "virtual/${TARGET_PREFIX}go-crosssdk"
-export GOHOSTOS = "${BUILD_GOOS}"
-export GOHOSTARCH = "${BUILD_GOARCH}"
-export GOOS = "${TARGET_GOOS}"
-export GOARCH = "${TARGET_GOARCH}"
-export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
-export GOROOT_FINAL = "${libdir}/go"
-
do_configure[noexec] = "1"
do_compile() {
- export CC_FOR_${TARGET_GOOS}_${TARGET_GOARCH}="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}${SDKPATHNATIVE}"
- export CXX_FOR_${TARGET_GOOS}_${TARGET_GOARCH}="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}${SDKPATHNATIVE}"
+ export CC_FOR_${TARGET_GOTUPLE}="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}${SDKPATHNATIVE}"
+ export CXX_FOR_${TARGET_GOTUPLE}="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}${SDKPATHNATIVE}"
cd src
./make.bash --host-only --no-banner
cd ${B}
diff --git a/meta/recipes-devtools/go/go-crosssdk_1.12.bb b/meta/recipes-devtools/go/go-crosssdk_1.15.bb
index 1857c8a577..1857c8a577 100644
--- a/meta/recipes-devtools/go/go-crosssdk_1.12.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/0001-bolt_riscv64-Add-support-for-riscv64.patch b/meta/recipes-devtools/go/go-dep/0001-bolt_riscv64-Add-support-for-riscv64.patch
new file mode 100644
index 0000000000..4d97d48243
--- /dev/null
+++ b/meta/recipes-devtools/go/go-dep/0001-bolt_riscv64-Add-support-for-riscv64.patch
@@ -0,0 +1,33 @@
+From 5e051669d117d7cd9b24cea3494959eec396ec1e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 25 Jan 2020 22:37:25 -0800
+Subject: [PATCH] /bolt_riscv64: Add support for riscv64
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ vendor/github.com/boltdb/bolt/bolt_riscv64.go | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+ create mode 100644 vendor/github.com/boltdb/bolt/bolt_riscv64.go
+
+diff --git a/vendor/github.com/boltdb/bolt/bolt_riscv64.go b/vendor/github.com/boltdb/bolt/bolt_riscv64.go
+new file mode 100644
+index 00000000..3d6b88d4
+--- /dev/null
++++ b/vendor/github.com/boltdb/bolt/bolt_riscv64.go
+@@ -0,0 +1,12 @@
++// +build riscv64
++
++package bolt
++
++// maxMapSize represents the largest mmap size supported by Bolt.
++const maxMapSize = 0xFFFFFFFFFFFF // 256TB
++
++// maxAllocSize is the size used when creating array pointers.
++const maxAllocSize = 0x7FFFFFFF
++
++// Are unaligned load/stores broken on this arch?
++var brokenUnaligned = false
+--
+2.25.0
+
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 ead87870e2..0da2c6607c 100644
--- a/meta/recipes-devtools/go/go-dep_0.5.4.bb
+++ b/meta/recipes-devtools/go/go-dep_0.5.4.bb
@@ -6,12 +6,18 @@ LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=1bad315647751fab0007812f
GO_IMPORT = "github.com/golang/dep"
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.12.bb b/meta/recipes-devtools/go/go-native_1.12.bb
deleted file mode 100644
index bbf3c0dd73..0000000000
--- a/meta/recipes-devtools/go/go-native_1.12.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.inc b/meta/recipes-devtools/go/go-runtime.inc
index 9731e164e9..21179a83a0 100644
--- a/meta/recipes-devtools/go/go-runtime.inc
+++ b/meta/recipes-devtools/go/go-runtime.inc
@@ -2,15 +2,6 @@ DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native"
DEPENDS_class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk"
PROVIDES = "virtual/${TARGET_PREFIX}go-runtime"
-export GOHOSTOS = "${BUILD_GOOS}"
-export GOHOSTARCH = "${BUILD_GOARCH}"
-export GOOS = "${TARGET_GOOS}"
-export GOARCH = "${TARGET_GOARCH}"
-export GOARM = "${TARGET_GOARM}"
-export GO386 = "${TARGET_GO386}"
-export GOMIPS = "${TARGET_GOMIPS}"
-export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
-export GOROOT_FINAL = "${libdir}/go"
export CGO_CFLAGS = "${CFLAGS}"
export CGO_CPPFLAGS = "${CPPFLAGS}"
export CGO_CXXFLAGS = "${CXXFLAGS}"
@@ -29,14 +20,14 @@ do_configure_libc-musl() {
}
do_compile() {
- export CC_FOR_${TARGET_GOOS}_${TARGET_GOARCH}="${CC}"
- export CXX_FOR_${TARGET_GOOS}_${TARGET_GOARCH}="${CXX}"
+ export CC_FOR_${TARGET_GOTUPLE}="${CC}"
+ export CXX_FOR_${TARGET_GOTUPLE}="${CXX}"
cd src
./make.bash --target-only --no-banner std
if [ -n "${GO_DYNLINK}" ]; then
export GOTOOLDIR="${B}/pkg/tool/native_native"
- CC="$CC_FOR_${TARGET_GOOS}_${TARGET_GOARCH}" GOARCH="${TARGET_GOARCH}" GOOS="${TARGET_GOOS}" GOROOT=${B} \
+ CC="$CC_FOR_${TARGET_GOTUPLE}" GOARCH="${TARGET_GOARCH}" GOOS="${TARGET_GOOS}" GOROOT=${B} \
$GOTOOLDIR/go_bootstrap install -linkshared -buildmode=shared ${GO_SHLIB_LDFLAGS} std
fi
cd ${B}
diff --git a/meta/recipes-devtools/go/go-runtime_1.12.bb b/meta/recipes-devtools/go/go-runtime_1.15.bb
index 43b68b4e46..4eeee65e0c 100644
--- a/meta/recipes-devtools/go/go-runtime_1.12.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 91efd3e977..8e44247031 100644
--- a/meta/recipes-devtools/go/go-target.inc
+++ b/meta/recipes-devtools/go/go-target.inc
@@ -1,15 +1,6 @@
DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native"
DEPENDS_class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk go-native"
-export GOHOSTOS = "${BUILD_GOOS}"
-export GOHOSTARCH = "${BUILD_GOARCH}"
-export GOOS = "${TARGET_GOOS}"
-export GOARCH = "${TARGET_GOARCH}"
-export GOARM = "${TARGET_GOARM}"
-export GO386 = "${TARGET_GO386}"
-export GOMIPS = "${TARGET_GOMIPS}"
-export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
-export GOROOT_FINAL = "${libdir}/go"
export GOCACHE = "${B}/.cache"
GO_LDFLAGS = ""
GO_LDFLAGS_class-nativesdk = "-linkmode external"
@@ -43,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.12.bb b/meta/recipes-devtools/go/go_1.12.bb
deleted file mode 100644
index 42cdb0430a..0000000000
--- a/meta/recipes-devtools/go/go_1.12.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require go-${PV}.inc
-require go-target.inc
-
-export GOBUILDMODE=""
-
-# Add pie to GOBUILDMODE to satisfy "textrel" QA checking, but mips
-# doesn't support -buildmode=pie, so skip the QA checking for mips and its
-# variants.
-python() {
- if 'mips' in d.getVar('TARGET_ARCH'):
- d.appendVar('INSANE_SKIP_%s' % d.getVar('PN'), " textrel")
- else:
- d.setVar('GOBUILDMODE', 'pie')
-}
diff --git a/meta/recipes-devtools/go/go_1.15.bb b/meta/recipes-devtools/go/go_1.15.bb
new file mode 100644
index 0000000000..4bf9dd50b2
--- /dev/null
+++ b/meta/recipes-devtools/go/go_1.15.bb
@@ -0,0 +1,15 @@
+require go-${PV}.inc
+require go-target.inc
+
+inherit linuxloader
+
+export GOBUILDMODE=""
+export CGO_ENABLED_riscv64 = ""
+export GO_LDSO = "${@get_linuxloader(d)}"
+
+# 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")
+}
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/i2c-tools/i2c-tools_4.1.bb b/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb
index dcbd05aed4..c5761170aa 100644
--- a/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb
+++ b/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb
@@ -31,6 +31,7 @@ FILES_${PN}-misc = "${sbindir}/i2c-stub-from-dump \
RDEPENDS_${PN}-misc = "${PN} perl perl-module-posix \
perl-module-constant perl-module-file-basename \
perl-module-fcntl perl-module-strict perl-module-vars \
+ perl-module-carp \
"
ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb b/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
index 053945ebbc..231c1c20ec 100644
--- a/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
+++ b/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
@@ -34,3 +34,5 @@ do_install() {
}
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS_${PN}_class-nativesdk = "patchelf"
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-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
deleted file mode 100644
index 26e8b06f37..0000000000
--- a/meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ff4aae4c8beaf17cb8e7a3431f6c541eccfae244 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 1/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/python2/CMakeLists.txt | 2 +-
- libcomps/src/python/src/python3/CMakeLists.txt | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libcomps/src/python/src/python2/CMakeLists.txt b/libcomps/src/python/src/python2/CMakeLists.txt
-index 3ad9e18..0e7dd4b 100644
---- a/libcomps/src/python/src/python2/CMakeLists.txt
-+++ b/libcomps/src/python/src/python2/CMakeLists.txt
-@@ -1,7 +1,7 @@
- find_package (PythonLibs 2.6)
- find_package (PythonInterp 2.6 REQUIRED)
-
--execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
-+#execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
-
- include_directories(${PYTHON_INCLUDE_PATH})
- include_directories(${LIBCOMPS_INCLUDE_PATH})
-diff --git a/libcomps/src/python/src/python3/CMakeLists.txt b/libcomps/src/python/src/python3/CMakeLists.txt
-index 7fafa9f..ed82d3d 100644
---- a/libcomps/src/python/src/python3/CMakeLists.txt
-+++ b/libcomps/src/python/src/python3/CMakeLists.txt
-@@ -2,7 +2,7 @@ find_package (PythonLibs 3.0)
- find_package (PythonInterp 3.0)
- #add_custom_target(py3-copy)
-
--execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
-+#execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
-
- include_directories(${PYTHON_INCLUDE_PATH})
- include_directories(${LIBCOMPS_INCLUDE_PATH})
---
-2.11.0
-
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/0002-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
new file mode 100644
index 0000000000..3e9102605b
--- /dev/null
+++ b/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
@@ -0,0 +1,27 @@
+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 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 b9b96ab..6d44567 100644
+--- a/libcomps/src/python/src/CMakeLists.txt
++++ b/libcomps/src/python/src/CMakeLists.txt
+@@ -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 ()
+- EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
++ #EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
+
+ 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 372c3c3580..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.11"
-SRCREV = "d868a79b76fb980d1371c28124ae07f00d2b63a9"
+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/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 4ff294c32c..37991e6d80 100644
--- a/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
+++ b/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb
@@ -2,14 +2,17 @@ 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-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"
@@ -20,9 +23,12 @@ 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"
BBCLASSEXTEND = "native nativesdk"
+PNBLACKLIST[libdnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'Does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}"
diff --git a/meta/recipes-devtools/libedit/libedit/0001-readline.c-fix-cannot-get-history.patch b/meta/recipes-devtools/libedit/libedit/0001-readline.c-fix-cannot-get-history.patch
deleted file mode 100644
index 7e54ac97ea..0000000000
--- a/meta/recipes-devtools/libedit/libedit/0001-readline.c-fix-cannot-get-history.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ef1fa9bef497d9491a51017f3cad0135a23bb0b4 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 20 Aug 2019 17:33:15 +0800
-Subject: [PATCH] readline.c: fix cannot get history
-
-if history_offset not increate when add history,
-it will make current history event not align with offset,
-and cannot get history correctly.
-
-Upstream-Status: Submitted [tech-userlevel@NetBSD.org]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- src/readline.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/readline.c b/src/readline.c
-index 43ac5bd..54b0548 100644
---- a/src/readline.c
-+++ b/src/readline.c
-@@ -1476,7 +1476,10 @@ add_history(const char *line)
- if (ev.num == history_length)
- history_base++;
- else
-+ {
-+ history_offset++;
- history_length = ev.num;
-+ }
- return 0;
- }
-
---
-2.7.4
-
diff --git a/meta/recipes-devtools/libedit/libedit_20190324-3.1.bb b/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb
index 25667ccce7..8d2d57a930 100644
--- a/meta/recipes-devtools/libedit/libedit_20190324-3.1.bb
+++ b/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb
@@ -12,9 +12,14 @@ inherit autotools
SRC_URI = "http://www.thrysoee.dk/editline/${BP}.tar.gz \
file://stdc-predef.patch \
- file://0001-readline.c-fix-cannot-get-history.patch \
"
-SRC_URI[md5sum] = "bec755c8044ad84b752dfe49a0b371d8"
-SRC_URI[sha256sum] = "ac8f0f51c1cf65492e4d1e3ed2be360bda41e54633444666422fbf393bba1bae"
+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/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/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch b/meta/recipes-devtools/libmodulemd/libmodulemd/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch
deleted file mode 100644
index 2598c177c4..0000000000
--- a/meta/recipes-devtools/libmodulemd/libmodulemd/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 74ea6a665d0f3417e75f1d3d02f27a12f128ec70 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 14e895a..fc80fc6 100755
---- a/spec_tmpl.sh
-+++ b/spec_tmpl.sh
-@@ -1,4 +1,4 @@
--#!/usr/bin/sh
-+#!/bin/sh
-
- version=$1
- libmodulemd_v1_version=$2
diff --git a/meta/recipes-devtools/libmodulemd/libmodulemd/0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch b/meta/recipes-devtools/libmodulemd/libmodulemd/0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch
deleted file mode 100644
index 1568d25f9d..0000000000
--- a/meta/recipes-devtools/libmodulemd/libmodulemd/0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From b651551134cf170038b3e01812e3767969506491 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 21 May 2019 17:59:26 +0200
-Subject: [PATCH] v1/meson.build: explicitly specify the v1 library in
- pkgconfig
-
-Otherwise there would be '-lmodulemd' which resolves
-to v2 version if both v2 and v1 are present in the sysroot.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- modulemd/v1/meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/modulemd/v1/meson.build b/modulemd/v1/meson.build
-index 4d54e69..9144ca2 100644
---- a/modulemd/v1/meson.build
-+++ b/modulemd/v1/meson.build
-@@ -325,7 +325,7 @@ configure_file(
- )
-
- pkg.generate(
-- libraries : modulemd_v1_lib,
-+ libraries : '-l:libmodulemd.so.1',
- subdirs : v1_header_path,
- version : libmodulemd_v1_version,
- name : 'modulemd',
diff --git a/meta/recipes-devtools/libmodulemd/libmodulemd/0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch b/meta/recipes-devtools/libmodulemd/libmodulemd/0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch
deleted file mode 100644
index 0b7535624c..0000000000
--- a/meta/recipes-devtools/libmodulemd/libmodulemd/0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 4a2a592c5a3898df37ff231d9c410f0fd32f5d5d Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 6 Nov 2018 13:43:00 +0100
-Subject: [PATCH] modulemd/v[12]/meson.build: do not generate gtkdoc or python
- bindings
-
-All of these really need a configuration option.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- meson.build | 3 +--
- modulemd/v1/meson.build | 8 --------
- modulemd/v2/meson.build | 12 ------------
- 3 files changed, 1 insertion(+), 22 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 5a0cd3d..f51b16e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -52,7 +52,6 @@ gnome = import('gnome')
- pkg = import('pkgconfig')
- gobject = dependency('gobject-2.0')
- yaml = dependency('yaml-0.1')
--gtkdoc = dependency('gtk-doc')
-
- sh = find_program('sh')
- sed = find_program('sed')
-@@ -127,4 +126,4 @@ configure_file(
- )
-
- subdir('modulemd')
--subdir('bindings/python')
-+
-diff --git a/modulemd/v1/meson.build b/modulemd/v1/meson.build
-index ddc95a1..e85fafd 100644
---- a/modulemd/v1/meson.build
-+++ b/modulemd/v1/meson.build
-@@ -356,11 +356,3 @@ configure_file(
- configuration : xcdata
- )
-
--gnome.gtkdoc(
-- 'modulemd-1.0',
-- install_dir: 'modulemd-1.0',
-- src_dir : './modulemd/v1',
-- main_xml : 'modulemd-v1-docs.xml',
-- install : true,
--)
--
-diff --git a/modulemd/v2/meson.build b/modulemd/v2/meson.build
-index 93c7fbd..0d9ed24 100644
---- a/modulemd/v2/meson.build
-+++ b/modulemd/v2/meson.build
-@@ -285,15 +285,3 @@ configure_file(
- configuration : xcdata
- )
-
--gnome.gtkdoc(
-- 'modulemd-2.0',
-- install_dir: 'modulemd-2.0',
-- src_dir : './modulemd/v2',
-- main_xml : 'modulemd-v2-docs.xml',
-- gobject_typesfile : join_paths(meson.current_build_dir(), 'modulemd-2.0.types'),
-- dependencies : [
-- modulemd_v2_dep,
-- ],
-- install : true,
--)
--
diff --git a/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb b/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
index 63d3fad6ab..10204acf23 100644
--- a/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
+++ b/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
@@ -2,20 +2,18 @@ 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 \
- file://0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch \
- file://0002-modulemd-v1-meson.build-do-not-generate-gir-or-gtkdo.patch \
- file://0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch \
+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.6.0"
-SRCREV = "7c7f88258491866cdb86d26cadfce37a78f242ec"
+PV = "2.9.4"
+SRCREV = "c7254db07b21495fc9bd247c5b17ee20149c05e3"
S = "${WORKDIR}/git"
-inherit meson gobject-introspection
+inherit meson gobject-introspection python3-dir
-EXTRA_OEMESON = "-Ddeveloper_build=false -Dbuild_api_v1=true -Dbuild_api_v2=true"
+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"
@@ -24,3 +22,5 @@ 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.10.5.bb b/meta/recipes-devtools/librepo/librepo_1.12.1.bb
index 87d64bf3a0..0597351052 100644
--- a/meta/recipes-devtools/librepo/librepo_1.10.5.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 = "385e2ced1083cac0bcb19e30500311f6923e6dfc"
+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/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
index 789c308863..d02b7ba6ab 100644
--- a/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
+++ b/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
@@ -1,13 +1,14 @@
-From 4c08879d2dfbe7face4e679ac8499dc7bff2dd20 Mon Sep 17 00:00:00 2001
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+From dbeecdb307be8b783b42cbc89dcb9c5e7f528989 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 21 May 2016 00:33:20 +0000
-Subject: [PATCH 06/19] llvm: TargetLibraryInfo: Undefine libc functions if
- they are macros
+Subject: [PATCH] llvm: TargetLibraryInfo: Undefine libc functions if they are macros
musl defines some functions as macros and not inline functions
if this is the case then make sure to undefine them
-Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../llvm/Analysis/TargetLibraryInfo.def | 21 +++++++++++++++++++
@@ -87,6 +88,3 @@ index afed404f04c..876888656f2 100644
TLI_DEFINE_ENUM_INTERNAL(tmpfile64)
TLI_DEFINE_STRING_INTERNAL("tmpfile64")
/// int toascii(int c);
---
-2.22.0
-
diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
index f47080c9fd..b01b8647c9 100644
--- a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
+++ b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
@@ -1,14 +1,16 @@
-From b66d6f39a374b8df41e7235351e5dee2e81f440c Mon Sep 17 00:00:00 2001
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001
From: Martin Kelly <mkelly@xevo.com>
Date: Fri, 19 May 2017 00:22:57 -0700
-Subject: [PATCH 07/19] llvm: allow env override of exe path
+Subject: [PATCH] llvm: allow env override of exe path
When using a native llvm-config from inside a sysroot, we need llvm-config to
return the libraries, include directories, etc. from inside the sysroot rather
than from the native sysroot. Thus provide an env override for calling
llvm-config from a target sysroot.
-Upstream-Status: Pending
Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
@@ -33,6 +35,3 @@ index 7ef7c46a262..a4f7ed82c7b 100644
// This just needs to be some symbol in the binary; C++ doesn't
// allow taking the address of ::main however.
void *P = (void *)(intptr_t)GetExecutablePath;
---
-2.22.0
-
diff --git a/meta/recipes-devtools/llvm/llvm_git.bb b/meta/recipes-devtools/llvm/llvm_git.bb
index 9b113f692f..4c2d490315 100644
--- a/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/meta/recipes-devtools/llvm/llvm_git.bb
@@ -3,35 +3,40 @@
DESCRIPTION = "The LLVM Compiler Infrastructure"
HOMEPAGE = "http://llvm.org"
-LICENSE = "NCSA"
+LICENSE = "Apache-2.0-with-LLVM-exception"
SECTION = "devel"
-LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=c6b766a4e85dd28301eeed54a6684648"
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe"
DEPENDS = "libffi libxml2 zlib libedit ninja-native llvm-native"
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
+
RDEPENDS_${PN}_append_class-target = " ncurses-terminfo"
inherit cmake pkgconfig
PROVIDES += "llvm${PV}"
+MAJOR_VERSION = "10"
+MINOR_VERSION = "0"
+PATCH_VERSION = "1"
+
+PV = "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}"
+
LLVM_RELEASE = "${PV}"
LLVM_DIR = "llvm${LLVM_RELEASE}"
-SRCREV = "19a71f6bdf2dddb10764939e7f0ec2b98dba76c9"
-
BRANCH = "release/${MAJOR_VERSION}.x"
-MAJOR_VERSION = "8"
-MINOR_VERSION = "0"
-PATCH_VERSION = "1"
-SOLIBVER = "1"
-PV = "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}"
+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 \
"
+UPSTREAM_CHECK_GITTAGREGEX = "llvmorg-(?P<pver>\d+(\.\d+)+)"
+
S = "${WORKDIR}/git/llvm"
LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install"
@@ -45,6 +50,7 @@ def get_llvm_arch(bb, d, arch_var):
elif re.match(r'aarch64$', a): return 'AArch64'
elif re.match(r'aarch64_be$', a): return 'AArch64'
elif re.match(r'mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips'
+ elif re.match(r'riscv(32|64)(eb|)$', a): return 'RISCV'
elif re.match(r'p(pc|owerpc)(|64)', a): return 'PowerPC'
else:
raise bb.parse.SkipRecipe("Cannot map '%s' to a supported LLVM architecture" % a)
@@ -156,7 +162,7 @@ FILES_${PN}-liblto += "\
"
FILES_${PN}-liboptremarks += "\
- ${libdir}/${LLVM_DIR}/libOptRemarks.so.* \
+ ${libdir}/${LLVM_DIR}/libRemarks.so.* \
"
FILES_${PN}-llvmhello = "\
@@ -165,7 +171,7 @@ FILES_${PN}-llvmhello = "\
FILES_${PN}-dev += " \
${libdir}/${LLVM_DIR}/llvm-config \
- ${libdir}/${LLVM_DIR}/libOptRemarks.so \
+ ${libdir}/${LLVM_DIR}/libRemarks.so \
${libdir}/${LLVM_DIR}/libLLVM-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}.so \
"
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/makedevs/makedevs/makedevs.c b/meta/recipes-devtools/makedevs/makedevs/makedevs.c
index cba7681414..32b9872932 100644
--- a/meta/recipes-devtools/makedevs/makedevs/makedevs.c
+++ b/meta/recipes-devtools/makedevs/makedevs/makedevs.c
@@ -230,7 +230,7 @@ static void add_new_directory(char *name, char *path,
unsigned long uid, unsigned long gid, unsigned long mode)
{
if (trace)
- fprintf(stderr, "Directory: %s %s UID: %ld GID %ld MODE: %04lo", path, name, uid, gid, mode);
+ fprintf(stderr, "Directory: %s %s UID: %lu GID %lu MODE: %04lo", path, name, uid, gid, mode);
if (mkdir(path, mode) < 0) {
if (EEXIST == errno) {
@@ -251,7 +251,7 @@ static void add_new_device(char *name, char *path, unsigned long uid,
struct stat sb;
if (trace) {
- fprintf(stderr, "Device: %s %s UID: %ld GID: %ld MODE: %04lo MAJOR: %d MINOR: %d",
+ fprintf(stderr, "Device: %s %s UID: %lu GID: %lu MODE: %04lo MAJOR: %d MINOR: %d",
path, name, uid, gid, mode, (short)(rdev >> 8), (short)(rdev & 0xff));
}
@@ -292,7 +292,7 @@ static void add_new_file(char *name, char *path, unsigned long uid,
unsigned long gid, unsigned long mode)
{
if (trace) {
- fprintf(stderr, "File: %s %s UID: %ld GID: %ld MODE: %04lo\n",
+ fprintf(stderr, "File: %s %s UID: %lu GID: %lu MODE: %04lo\n",
path, name, gid, uid, mode);
}
@@ -311,7 +311,7 @@ static void add_new_fifo(char *name, char *path, unsigned long uid,
unsigned long gid, unsigned long mode)
{
if (trace) {
- printf("Fifo: %s %s UID: %ld GID: %ld MODE: %04lo\n",
+ printf("Fifo: %s %s UID: %lu GID: %lu MODE: %04lo\n",
path, name, gid, uid, mode);
}
@@ -360,7 +360,7 @@ static int interpret_table_entry(char *line)
unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
unsigned long start = 0, increment = 1, count = 0;
- if (0 > sscanf(line, "%4095s %c %lo %40s %40s %lu %lu %lu %lu %lu", path,
+ if (0 > sscanf(line, "%4095s %c %lo %39s %39s %lu %lu %lu %lu %lu", path,
&type, &mode, usr_buf, grp_buf, &major, &minor, &start,
&increment, &count))
{
diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc
index 8219d87c74..004189e36e 100644
--- a/meta/recipes-devtools/meson/meson.inc
+++ b/meta/recipes-devtools/meson/meson.inc
@@ -9,19 +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-environment.py-detect-windows-also-if-the-system-str.patch \
- file://0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch \
- file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \
file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
- file://vala-cross-compile.patch \
+ file://0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch \
"
-SRC_URI[sha256sum] = "23688f0fc90be623d98e80e1defeea92bbb7103bf9336a5f5b9865d36e892d76"
-SRC_URI[md5sum] = "d46c4a8e3cfd27f90e2c6fe4a69e574b"
+SRC_URI[sha256sum] = "3b5741f884e04928bdfa1947467ff06afa6c98e623c25cef75adf71ca39ce080"
SRC_URI_append_class-native = " \
file://0001-Make-CPU-family-warnings-fatal.patch \
@@ -29,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-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch b/meta/recipes-devtools/meson/meson/0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch
deleted file mode 100644
index a5dbb81b08..0000000000
--- a/meta/recipes-devtools/meson/meson/0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 0b4d1e8afd5428a495f8624ee061f63977b4c268 Mon Sep 17 00:00:00 2001
-From: Jussi Pakkanen <jpakkane@gmail.com>
-Date: Sun, 6 Oct 2019 15:17:32 +0300
-Subject: [PATCH] Cross build is defined by the existance of a cross file.
-
----
- mesonbuild/environment.py | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index e5d041b4..03c65688 100644
---- a/mesonbuild/environment.py
-+++ b/mesonbuild/environment.py
-@@ -611,7 +611,7 @@ class Environment:
- self.first_invocation = True
-
- def is_cross_build(self) -> bool:
-- return not self.machines.matches_build_machine(MachineChoice.HOST)
-+ return self.coredata.is_cross_build()
-
- def dump_coredata(self):
- return coredata.save(self.coredata, self.get_build_dir())
---
-2.20.1
-
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 444fc08168..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 f70fee13e4dbc757cd8153cd42d92fa9394fb542 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,28 +12,28 @@ 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 03c6346..86b350b 100644
+index 219b62e..d1be65b 100644
--- a/mesonbuild/envconfig.py
+++ b/mesonbuild/envconfig.py
-@@ -186,7 +186,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 0cfdf9c..40aa189 100644
+index bf09a88..8eabe78 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
-@@ -262,9 +262,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:
- mlog.warning('Unknown CPU family {!r}, please report this at '
-- 'https://github.com/mesonbuild/meson/issues/new with the'
+- 'https://github.com/mesonbuild/meson/issues/new with the '
- 'output of `uname -a` and `cat /proc/cpuinfo`'.format(trial))
+ raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % trial)
diff --git a/meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch b/meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch
deleted file mode 100644
index 2faeda2e71..0000000000
--- a/meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From b52e47c9d61dc4c930cfc7236fbeb70338c3b953 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 25 Mar 2019 17:17:06 +0100
-Subject: [PATCH] environment.py: detect windows also if the system string
- contains 'mingw'
-
-Upstream-Status: Backport [fe645a0a9e2da230d2c500af1f5b2db5da1e364d]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- mesonbuild/envconfig.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 03c6346..a59cd89 100644
---- a/mesonbuild/envconfig.py
-+++ b/mesonbuild/envconfig.py
-@@ -198,7 +198,7 @@ class MachineInfo:
- """
- Machine is windows?
- """
-- return self.system in {'windows', 'mingw'}
-+ return self.system == 'windows' or 'mingw' in self.system
-
- def is_cygwin(self) -> bool:
- """
---
-2.17.1
-
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-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
index 7c3238bf91..471f1500da 100644
--- a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
+++ b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
@@ -1,4 +1,4 @@
-From 1afbf5ccff56e582229c8f673f50aedf2b24117e Mon Sep 17 00:00:00 2001
+From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 4 Aug 2017 16:16:41 +0300
Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling
@@ -20,11 +20,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 4 insertions(+)
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
-index bf49770..7c5a363 100644
+index bcf77b9..6a4b472 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
-@@ -972,6 +972,10 @@ This will become a hard error in the future.''')
- '--mode=' + mode]
+@@ -974,6 +974,10 @@ This will become a hard error in the future.''')
+ args.append('--{}={}'.format(program_name, path))
if namespace:
args.append('--namespace=' + namespace)
+ gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None)
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/0001-python-module-do-not-manipulate-the-environment-when.patch b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
index bf715d1e9f..eb0e90dbdd 100644
--- a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
+++ b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
@@ -1,4 +1,4 @@
-From 3cb2c811dc6d4890342afa5b709cd30cf7b8f3ca Mon Sep 17 00:00:00 2001
+From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Mon, 19 Nov 2018 14:24:26 +0100
Subject: [PATCH] python module: do not manipulate the environment when calling
@@ -12,10 +12,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 12 deletions(-)
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
-index 9cfbd6f..3ff687a 100644
+index 07be318..b770603 100644
--- a/mesonbuild/modules/python.py
+++ b/mesonbuild/modules/python.py
-@@ -75,11 +75,6 @@ class PythonDependency(ExternalDependency):
+@@ -71,11 +71,6 @@ class PythonDependency(ExternalDependency):
old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR')
old_pkg_path = os.environ.get('PKG_CONFIG_PATH')
@@ -25,10 +25,10 @@ index 9cfbd6f..3ff687a 100644
- os.environ['PKG_CONFIG_LIBDIR'] = pkg_libdir
-
try:
- self.pkgdep = PkgConfigDependency('python-{}'.format(pkg_version), environment, kwargs)
- mlog.debug('Found "python-{}" via pkgconfig lookup in LIBPC ({})'.format(pkg_version, pkg_libdir))
-@@ -88,13 +83,6 @@ class PythonDependency(ExternalDependency):
- mlog.debug('"python-{}" could not be found in LIBPC ({})'.format(pkg_version, pkg_libdir))
+ self.pkgdep = PkgConfigDependency(pkg_name, environment, kwargs)
+ mlog.debug('Found "{}" via pkgconfig lookup in LIBPC ({})'.format(pkg_name, pkg_libdir))
+@@ -84,13 +79,6 @@ class PythonDependency(ExternalDependency):
+ mlog.debug('"{}" could not be found in LIBPC ({})'.format(pkg_name, pkg_libdir))
mlog.debug(e)
- if old_pkg_path is not None:
@@ -39,5 +39,5 @@ index 9cfbd6f..3ff687a 100644
- else:
- os.environ.pop('PKG_CONFIG_LIBDIR', None)
else:
- mlog.debug('"python-{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_version, pkg_libdir))
+ mlog.debug('"{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_name, pkg_libdir))
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 8ad86a46e9..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 3009a1c2f1b736b836a057d84dc11f379cba99cf 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,14 +13,14 @@ 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 86b350b..aa426ca 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 = (
+ 'allarch',
'aarch64',
+ 'alpha',
'arc',
- 'arm',
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 57de598d2f..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 ac38495de38a1ea42e2bc09a2f23c2e945fbc22d 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 21da8e2..7d1ef85 100644
+index 368a4bc..9fc398e 100644
--- a/mesonbuild/dependencies/base.py
+++ b/mesonbuild/dependencies/base.py
-@@ -155,7 +155,7 @@ class Dependency:
+@@ -183,7 +183,7 @@ class Dependency:
def get_exe_args(self, compiler):
return []
@@ -34,16 +34,16 @@ index 21da8e2..7d1ef85 100644
raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name))
def get_configtool_variable(self, variable_name):
-@@ -214,7 +214,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')
-@@ -639,15 +639,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)
@@ -54,18 +54,18 @@ index 21da8e2..7d1ef85 100644
+ cmd = [self.pkgbin.get_command()[0] + "-native"] + args
+ else:
+ cmd = self.pkgbin.get_command() + args
- p, out = Popen_safe(cmd, env=env)[0:2]
- rc, out = p.returncode, out.strip()
+ p, out, err = Popen_safe(cmd, env=env)
+ rc, out, err = p.returncode, out.strip(), err.strip()
call = ' '.join(cmd)
mlog.debug("Called `{}` -> {}\n{}".format(call, rc, out))
- return rc, out
+ return rc, out, err
- def _call_pkgbin(self, args, env=None):
+ def _call_pkgbin(self, args, env=None, use_native=False):
# Always copy the environment since we're going to modify it
# with pkg-config variables
if env is None:
-@@ -663,7 +666,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:
@@ -73,8 +73,8 @@ index 21da8e2..7d1ef85 100644
+ cache[(self.pkgbin, targs, fenv)] = self._call_pkgbin_real(args, env, use_native)
return cache[(self.pkgbin, targs, fenv)]
- def _convert_mingw_paths(self, args):
-@@ -845,7 +848,7 @@ class PkgConfigDependency(ExternalDependency):
+ def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]:
+@@ -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,20 +83,20 @@ index 21da8e2..7d1ef85 100644
options = ['--variable=' + variable_name, self.name]
if 'define_variable' in kwargs:
-@@ -858,7 +861,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -890,7 +893,7 @@ class PkgConfigDependency(ExternalDependency):
options = ['--define-variable=' + '='.join(definition)] + options
-- ret, out = self._call_pkgbin(options)
-+ ret, out = self._call_pkgbin(options, use_native=use_native)
+- ret, out, err = self._call_pkgbin(options)
++ ret, out, err = self._call_pkgbin(options, use_native=use_native)
variable = ''
if ret != 0:
if self.required:
diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
-index 6d784e6..73a9e13 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 6d784e6..73a9e13 100644
if prefix:
self.bindir = os.path.join(prefix, 'bin')
-@@ -507,7 +507,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 6d784e6..73a9e13 100644
except MesonException:
pass
-@@ -517,7 +517,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/vala-cross-compile.patch b/meta/recipes-devtools/meson/meson/vala-cross-compile.patch
deleted file mode 100644
index 816f810c05..0000000000
--- a/meta/recipes-devtools/meson/meson/vala-cross-compile.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 77c3e6a4aaed07e626f4bf4deb7eb66e0f03a33d Mon Sep 17 00:00:00 2001
-From: James Westman <flyingpimonster@flyingpimonster.net>
-Date: Mon, 24 Jun 2019 12:04:12 -0500
-Subject: [PATCH] Fix two errors when cross-compiling with Vala
-
-- AttributeError: 'ValaCompiler' object has no attribute 'get_program_dirs'
-
- Fixed by adding a `get_program_dirs()` function to the base Compiler
- class, to match `get_library_dirs()`
-
-- KeyError: 'vala_COMPILER'
-
- Fixed by creating the Vala compile rules for all machines, not just
- the build machine.
-
-Upstream-Status: Backport [https://github.com/mesonbuild/meson/commit/77c3e6a4aaed07e626f4bf4deb7eb66e0f03a33d]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- mesonbuild/backend/ninjabackend.py | 3 +--
- mesonbuild/compilers/compilers.py | 3 +++
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
-index a454e6ab5f..b830e377e4 100644
---- a/mesonbuild/backend/ninjabackend.py
-+++ b/mesonbuild/backend/ninjabackend.py
-@@ -1653,8 +1653,7 @@ def generate_compile_rule_for(self, langname, compiler):
- self.generate_cs_compile_rule(compiler)
- return
- if langname == 'vala':
-- if self.environment.machines.matches_build_machine(compiler.for_machine):
-- self.generate_vala_compile_rules(compiler)
-+ self.generate_vala_compile_rules(compiler)
- return
- if langname == 'rust':
- self.generate_rust_compile_rules(compiler)
-diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
-index 5855de71c8..86c1e33407 100644
---- a/mesonbuild/compilers/compilers.py
-+++ b/mesonbuild/compilers/compilers.py
-@@ -1117,6 +1117,9 @@ def find_library(self, *args, **kwargs):
- def get_library_dirs(self, *args, **kwargs):
- return ()
-
-+ def get_program_dirs(self, *args, **kwargs):
-+ return ()
-+
- def has_multi_arguments(self, args, env) -> Tuple[bool, bool]:
- raise EnvironmentException(
- 'Language {} does not support has_multi_arguments.'.format(
diff --git a/meta/recipes-devtools/meson/meson_0.51.2.bb b/meta/recipes-devtools/meson/meson_0.55.1.bb
index de9b905c12..de9b905c12 100644
--- a/meta/recipes-devtools/meson/meson_0.51.2.bb
+++ b/meta/recipes-devtools/meson/meson_0.55.1.bb
diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.51.2.bb b/meta/recipes-devtools/meson/nativesdk-meson_0.55.1.bb
index 1756f342ce..67add2c25e 100644
--- a/meta/recipes-devtools/meson/nativesdk-meson_0.51.2.bb
+++ b/meta/recipes-devtools/meson/nativesdk-meson_0.55.1.bb
@@ -31,7 +31,6 @@ c = @CC
cpp = @CXX
ar = @AR
nm = @NM
-ld = @LD
strip = @STRIP
pkgconfig = 'pkg-config'
diff --git a/meta/recipes-devtools/mmc/mmc-utils_git.bb b/meta/recipes-devtools/mmc/mmc-utils_git.bb
index 0c401c86fa..5fd1c5c0cd 100644
--- a/meta/recipes-devtools/mmc/mmc-utils_git.bb
+++ b/meta/recipes-devtools/mmc/mmc-utils_git.bb
@@ -4,7 +4,7 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://mmc.c;beginline=1;endline=20;md5=fae32792e20f4d27ade1c5a762d16b7d"
SRCBRANCH ?= "master"
-SRCREV = "aef913e31b659462fe6b9320d241676cba97f67b"
+SRCREV = "73d6c59af8d1bcedf5de4aa1f5d5b7f765f545f5"
PV = "0.1+git${SRCPV}"
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 2ae69797a4..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 distro_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
new file mode 100644
index 0000000000..0ede8a8328
--- /dev/null
+++ b/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch
@@ -0,0 +1,115 @@
+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] 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 ++
+ include/compiler.h | 4 ++++
+ stdlib/strlcat.c | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 50 insertions(+), 1 deletion(-)
+ create mode 100644 stdlib/strlcat.c
+
+diff --git a/Makefile.in b/Makefile.in
+index bfae1f8..156dc4c 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -101,7 +101,7 @@ NASM = asm/nasm.$(O)
+ NDISASM = disasm/ndisasm.$(O)
+
+ LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \
+- stdlib/strnlen.$(O) stdlib/strrchrnul.$(O) \
++ stdlib/strnlen.$(O) stdlib/strrchrnul.$(O) stdlib/strlcat.$(O) \
+ \
+ nasmlib/ver.$(O) \
+ nasmlib/alloc.$(O) nasmlib/asprintf.$(O) nasmlib/errfile.$(O) \
+diff --git a/configure.ac b/configure.ac
+index 7b72769..14fd033 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -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])
+@@ -253,6 +254,7 @@ AC_CHECK_DECLS(strsep)
+ AC_CHECK_DECLS(strlcpy)
+ AC_CHECK_DECLS(strnlen)
+ AC_CHECK_DECLS(strrchrnul)
++AC_CHECK_DECLS(strlcat)
+
+ dnl Check for missing types
+ AC_TYPE_UINTPTR_T
+diff --git a/include/compiler.h b/include/compiler.h
+index b4fd3a8..7fb4821 100644
+--- a/include/compiler.h
++++ b/include/compiler.h
+@@ -169,6 +169,10 @@ size_t strlcpy(char *, const char *, size_t);
+ char *strrchrnul(const char *, int);
+ #endif
+
++#if !defined(HAVE_STRLCAT) || !HAVE_DECL_STRLCAT
++size_t strlcat(char *, const char *, size_t);
++#endif
++
+ #ifndef __cplusplus /* C++ has false, true, bool as keywords */
+ # ifdef HAVE_STDBOOL_H
+ # include <stdbool.h>
+diff --git a/stdlib/strlcat.c b/stdlib/strlcat.c
+new file mode 100644
+index 0000000..7084d46
+--- /dev/null
++++ b/stdlib/strlcat.c
+@@ -0,0 +1,43 @@
++/*
++ * Copyright (c) 2019 Garmin Ltd. or its subsidiaries
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#include "compiler.h"
++
++/*
++ * Concatenate src string to dest of size size. The destination buffer will
++ * have no more than size-1 character when the operation finishes. Always NUL
++ * terminates, unless size == 0 or dest has no NUL terminator. Returns
++ * strlen(initial dest) + strlen(src); if retval >= size, truncation occurred.
++ */
++#ifndef HAVE_STRLCAT
++
++size_t strlcat(char *dest, const char *src, size_t size)
++{
++ size_t n;
++
++ /* find the NULL terminator in dest */
++ for (n = 0; i < size && dest[n] != '\0'; n++)
++ ;
++
++ /* destination was not NULL terminated. Return the initial size */
++ if (n == size)
++ return size;
++
++ return strlcpy(&dest[n], src, size - n) + n;
++}
++
++#endif
++
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
new file mode 100644
index 0000000000..9f4c8dc0bd
--- /dev/null
+++ b/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch
@@ -0,0 +1,294 @@
+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] 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
+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 | 24 ++++++++++++++++++++++++
+ include/nasmlib.h | 9 +++++++++
+ nasm.txt | 4 ++++
+ nasmlib/filename.c | 20 ++++++++++++++++++++
+ output/outas86.c | 4 +++-
+ output/outcoff.c | 4 ++--
+ 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, 82 insertions(+), 9 deletions(-)
+ create mode 100644 test/elfdebugprefix.asm
+
+diff --git a/asm/nasm.c b/asm/nasm.c
+index e5ae89a..7a7f8b4 100644
+--- a/asm/nasm.c
++++ b/asm/nasm.c
+@@ -939,6 +939,7 @@ enum text_options {
+ OPT_KEEP_ALL,
+ OPT_NO_LINE,
+ OPT_DEBUG,
++ OPT_DEBUG_PREFIX_MAP,
+ OPT_REPRODUCIBLE
+ };
+ 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},
+ {"reproducible", OPT_REPRODUCIBLE, ARG_NO, 0},
+ {NULL, OPT_BOGUS, ARG_NO, 0}
+ };
+@@ -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;
++ char *c;
++ c = strchr(param, '=');
++
++ if (!c) {
++ nasm_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
++ "option `--%s' must be of the form `BASE=DEST'", p);
++ break;
++ }
++
++ *c = '\0';
++ d = nasm_malloc(sizeof(*d));
++ d->next = debug_prefixes;
++ d->base = nasm_strdup(param);
++ d->dest = nasm_strdup(c + 1);
++ debug_prefixes = d;
++ *c = '=';
++ }
++ break;
+ case OPT_HELP:
+ help(stdout);
+ exit(0);
+@@ -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);
+
+ fprintf(out, " %-20s %s\n",
+diff --git a/include/nasmlib.h b/include/nasmlib.h
+index 438178d..4c3e90d 100644
+--- a/include/nasmlib.h
++++ b/include/nasmlib.h
+@@ -250,10 +250,19 @@ int64_t readstrnum(char *str, int length, bool *warn);
+ */
+ int32_t seg_alloc(void);
+
++struct debug_prefix_list {
++ struct debug_prefix_list *next;
++ char *base;
++ char *dest;
++};
++
++extern struct debug_prefix_list *debug_prefixes;
++
+ /*
+ * Add/replace or remove an extension to the end of a filename
+ */
+ const char *filename_set_extension(const char *inname, const char *extension);
++char *filename_debug_remap(char *dest, char const *inname, size_t len);
+
+ /*
+ * Utility macros...
+diff --git a/nasm.txt b/nasm.txt
+index cc7fa27..d3485c9 100644
+--- a/nasm.txt
++++ b/nasm.txt
+@@ -147,6 +147,10 @@ OPTIONS
+ Prepend or append (respectively) the given argument to all global or
+ extern variables.
+
++--debug-prefix-map 'BASE=DEST'::
++ Map file names beginning with 'BASE' to 'DEST' when encoding them in
++ output object files.
++
+ SYNTAX
+ ------
+ 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 172ae0b..fda2be4 100644
+--- a/nasmlib/filename.c
++++ b/nasmlib/filename.c
+@@ -39,6 +39,8 @@
+ #include "nasmlib.h"
+ #include "error.h"
+
++struct debug_prefix_list *debug_prefixes = NULL;
++
+ /*
+ * Add/modify a filename extension, assumed to be a period-delimited
+ * field at the very end of the filename. Returns a newly allocated
+@@ -61,3 +63,21 @@ const char *filename_set_extension(const char *inname, const char *extension)
+
+ return p;
+ }
++
++char *filename_debug_remap(char *dest, char const *in, size_t len)
++{
++ struct debug_prefix_list *d;
++ size_t n;
++
++ for (d = debug_prefixes; d != NULL; d = d->next) {
++ n = strlen(d->base);
++ if (strncmp(in, d->base, n) == 0) {
++ strlcpy(dest, d->dest, len);
++ strlcat(dest, &in[n], len);
++ return dest;
++ }
++ }
++
++ strlcpy(dest, in, len);
++ return dest;
++}
+diff --git a/output/outas86.c b/output/outas86.c
+index 54b22f8..c4a412c 100644
+--- a/output/outas86.c
++++ b/output/outas86.c
+@@ -110,6 +110,8 @@ static void as86_sect_write(struct Section *, const uint8_t *,
+
+ static void as86_init(void)
+ {
++ char filename[FILENAME_MAX];
++
+ stext.data = saa_init(1L);
+ stext.datalen = 0L;
+ stext.head = stext.last = NULL;
+@@ -131,7 +133,7 @@ static void as86_init(void)
+ strslen = 0;
+
+ /* as86 module name = input file minus extension */
+- as86_add_string(filename_set_extension(inname, ""));
++ as86_add_string(filename_debug_remap(filename, filename_set_extension(inname, ""), sizeof(filename)));
+ }
+
+ static void as86_cleanup(void)
+diff --git a/output/outcoff.c b/output/outcoff.c
+index 58fa024..14baf7b 100644
+--- a/output/outcoff.c
++++ b/output/outcoff.c
+@@ -1072,14 +1072,14 @@ static void coff_symbol(char *name, int32_t strpos, int32_t value,
+
+ static void coff_write_symbols(void)
+ {
+- char filename[18];
++ char filename[19];
+ uint32_t i;
+
+ /*
+ * The `.file' record, and the file name auxiliary record.
+ */
+ coff_symbol(".file", 0L, 0L, -2, 0, 0x67, 1);
+- strncpy(filename, inname, 18);
++ filename_debug_remap(filename, inname, 19);
+ nasm_write(filename, 18, ofile);
+
+ /*
+diff --git a/output/outelf.c b/output/outelf.c
+index 61af020..1292958 100644
+--- a/output/outelf.c
++++ b/output/outelf.c
+@@ -553,7 +553,7 @@ static void elf_init(void)
+ };
+ const char * const *p;
+
+- 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));
+diff --git a/output/outieee.c b/output/outieee.c
+index 6d6d4b2..cdb8333 100644
+--- a/output/outieee.c
++++ b/output/outieee.c
+@@ -207,7 +207,7 @@ static void ieee_unqualified_name(char *, char *);
+ */
+ static void ieee_init(void)
+ {
+- strlcpy(ieee_infile, inname, sizeof(ieee_infile));
++ filename_debug_remap(ieee_infile, inname, sizeof(ieee_infile));
+ any_segs = false;
+ fpubhead = NULL;
+ fpubtail = &fpubhead;
+diff --git a/output/outobj.c b/output/outobj.c
+index 56b43f9..fefea94 100644
+--- a/output/outobj.c
++++ b/output/outobj.c
+@@ -644,7 +644,7 @@ static enum directive_result obj_directive(enum directive, char *);
+
+ static void obj_init(void)
+ {
+- strlcpy(obj_infile, inname, sizeof(obj_infile));
++ filename_debug_remap(obj_infile, inname, sizeof(obj_infile));
+ first_seg = seg_alloc();
+ any_segs = false;
+ fpubhead = NULL;
+diff --git a/stdlib/strlcat.c b/stdlib/strlcat.c
+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)
+ size_t n;
+
+ /* find the NULL terminator in dest */
+- for (n = 0; i < size && dest[n] != '\0'; n++)
++ for (n = 0; n < size && dest[n] != '\0'; n++)
+ ;
+
+ /* destination was not NULL terminated. Return the initial size */
+diff --git a/test/elfdebugprefix.asm b/test/elfdebugprefix.asm
+new file mode 100644
+index 0000000..a67ba29
+--- /dev/null
++++ b/test/elfdebugprefix.asm
+@@ -0,0 +1,6 @@
++;Testname=unoptimized; Arguments=-O0 --debug-prefix-map elf=ELF -felf -oelfdebugprefix.o; Files=stdout stderr elfdebugprefix.o; Validate=readelf --wide --symbols elfdebugprefix.o | grep 'FILE.*ELFdebugprefix.asm'
++
++ SECTION .text
++test: ; [1]
++ ret
++
+diff --git a/test/performtest.pl b/test/performtest.pl
+index f7865b3..096f960 100755
+--- a/test/performtest.pl
++++ b/test/performtest.pl
+@@ -42,14 +42,22 @@ sub perform {
+ TEST:
+ while(<TESTFILE>) {
+ #See if there is a test case
+- last unless /Testname=(.*);\s*Arguments=(.*);\s*Files=(.*)/;
+- my ($subname, $arguments, $files) = ($1, $2, $3);
++ last unless /Testname=(.*);\s*Arguments=(.*);\s*Files=([^;]*)(?:;\s*Validate=(.*))?/;
++ my ($subname, $arguments, $files, $validate) = ($1, $2, $3, $4);
++ chomp $files;
+ debugprint("$subname | $arguments | $files");
+
+ #Call nasm with this test case
+ system("$nasm $arguments $testpath > $stdoutfile 2> $stderrfile");
+ debugprint("$nasm $arguments $testpath > $stdoutfile 2> $stderrfile ----> $?");
+
++ if($validate) {
++ if(system("$validate >> $stdoutfile 2>> $stderrfile") != 0) {
++ print "Test $testname/$subname validation failed\n";
++ $globalresult = 1;
++ }
++ }
++
+ #Move the output to the test dir
+ mkpath("$outputdir/$testname/$subname");
+ foreach(split / /,$files) {
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_2.14.02.bb b/meta/recipes-devtools/nasm/nasm_2.15.05.bb
index e4f964ce93..6a1294c34f 100644
--- a/meta/recipes-devtools/nasm/nasm_2.14.02.bb
+++ b/meta/recipes-devtools/nasm/nasm_2.15.05.bb
@@ -4,16 +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://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/0001-Switch-all-scripts-to-use-Python-3.x.patch b/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Switch-all-scripts-to-use-Python-3.x.patch
deleted file mode 100644
index 691ed50c2b..0000000000
--- a/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Switch-all-scripts-to-use-Python-3.x.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From d42b23f4fb5d6bd58e92e995fe5befc76efbae0c Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 27 Apr 2017 15:47:58 +0300
-Subject: [PATCH] Switch all scripts to use Python 3.x
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- makePackage | 2 +-
- opkg-compare-indexes | 2 +-
- opkg-graph-deps | 2 +-
- opkg-list-fields | 2 +-
- opkg-make-index | 2 +-
- opkg-show-deps | 2 +-
- opkg-unbuild | 2 +-
- opkg-update-index | 2 +-
- opkg.py | 2 +-
- 9 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/makePackage b/makePackage
-index 4bdfc56..02124dd 100755
---- a/makePackage
-+++ b/makePackage
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/env python3
-
- # The general algorithm this program follows goes like this:
- # Run tar to extract control from control.tar.gz from the package.
-diff --git a/opkg-compare-indexes b/opkg-compare-indexes
-index b60d20a..80c1263 100755
---- a/opkg-compare-indexes
-+++ b/opkg-compare-indexes
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- from __future__ import absolute_import
- from __future__ import print_function
-
-diff --git a/opkg-graph-deps b/opkg-graph-deps
-index 6653fd5..f1e376a 100755
---- a/opkg-graph-deps
-+++ b/opkg-graph-deps
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- from __future__ import absolute_import
- from __future__ import print_function
-
-diff --git a/opkg-list-fields b/opkg-list-fields
-index c14a90f..24f7955 100755
---- a/opkg-list-fields
-+++ b/opkg-list-fields
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- from __future__ import absolute_import
- from __future__ import print_function
-
-diff --git a/opkg-make-index b/opkg-make-index
-index 3f757f6..2988f9f 100755
---- a/opkg-make-index
-+++ b/opkg-make-index
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- """
- Utility to create opkg compatible indexes
- """
-
-diff --git a/opkg-show-deps b/opkg-show-deps
-index 153f21e..4e18b4f 100755
---- a/opkg-show-deps
-+++ b/opkg-show-deps
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- from __future__ import absolute_import
- from __future__ import print_function
-
-diff --git a/opkg-unbuild b/opkg-unbuild
-index 4f36bec..57642c9 100755
---- a/opkg-unbuild
-+++ b/opkg-unbuild
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- from __future__ import absolute_import
- from __future__ import print_function
-
-diff --git a/opkg-update-index b/opkg-update-index
-index 341c1c2..7bff8a1 100755
---- a/opkg-update-index
-+++ b/opkg-update-index
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- from __future__ import absolute_import
-
- import sys, os
-diff --git a/opkg.py b/opkg.py
-index 2ecac8a..7e64de4 100644
---- a/opkg.py
-+++ b/opkg.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # Copyright (C) 2001 Alexander S. Guy <a7r@andern.org>
- # Andern Research Labs
- #
---
-2.11.0
-
diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch b/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch
deleted file mode 100644
index a181169d47..0000000000
--- a/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 59da5577bf8df441c6ca958e50fcb83228702764 Mon Sep 17 00:00:00 2001
-From: Alejandro del Castillo <alejandro.delcastillo@ni.com>
-Date: Thu, 12 Sep 2019 10:24:58 -0500
-Subject: [PATCH] opkg-build: clamp mtimes to SOURCE_DATE_EPOCH
-
-For reproducible builds, clamp mtimes bigger than SOURCE_DATE_EPOCH to
-SOURCE_DATE_EPOCH (build generated files, usually).
-
-Fixes bugzilla 13450
-
-Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- opkg-build | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/opkg-build b/opkg-build
-index dcd2d68..2517a2b 100755
---- a/opkg-build
-+++ b/opkg-build
-@@ -297,9 +297,16 @@ mkdir $tmp_dir
-
- build_date="${SOURCE_DATE_EPOCH:-$(date +%s)}"
-
-+mtime_args=""
-+# --clamp-mtime requires tar > 1.28. Only use it if SOURCE_DATE_EPOCH is set, to avoid having a generic case dependency on tar > 1.28.
-+# this setting will make sure files generated at build time have consistent mtimes, for reproducible builds.
-+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 -print > $tmp_dir/file_list )
--( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
-+( 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
- rm $tmp_dir/control_list
---
-2.20.1
-
diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb b/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb
index cf1e4670c6..f9df58a295 100644
--- a/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.1.bb
+++ b/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb
@@ -4,21 +4,22 @@ SECTION = "base"
HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://opkg.py;beginline=2;endline=18;md5=63ce9e6bcc445181cd9e4baf4b4ccc35"
+ file://opkg.py;beginline=2;endline=18;md5=ffa11ff3c15eb31c6a7ceaa00cc9f986"
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://0001-Switch-all-scripts-to-use-Python-3.x.patch \
- file://0001-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch \
+SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \
"
UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"
-
-SRC_URI[md5sum] = "8c140f835b694a0c27cfb23d2426a02b"
-SRC_URI[sha256sum] = "9ea9efdd9fe13661ad251e3a2860c1c93045adcfaa6659c3e86d9748ecda3b6e"
+SRC_URI[md5sum] = "7bbadb3c381f3ea935b21d3bb8cc4671"
+SRC_URI[sha256sum] = "046517600fb0aed6c4645edefe02281f4fa2f1c02f71596152d93172452c0b01"
TARGET_CC_ARCH += "${LDFLAGS}"
+RDEPENDS_${PN} += "bash"
+
+inherit perlnative
+
# For native builds we use the host Python
PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold"
PYTHONRDEPS_class-native = ""
@@ -32,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.1.bb b/meta/recipes-devtools/opkg/opkg_0.4.3.bb
index 104f07fda8..46b7aa2523 100644
--- a/meta/recipes-devtools/opkg/opkg_0.4.1.bb
+++ b/meta/recipes-devtools/opkg/opkg_0.4.3.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://code.google.com/p/opkg/"
BUGTRACKER = "http://code.google.com/p/opkg/issues/list"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://src/opkg.c;beginline=2;endline=21;md5=90435a519c6ea69ef22e4a88bcc52fa0"
+ file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae"
DEPENDS = "libarchive"
@@ -17,8 +17,8 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz
file://run-ptest \
"
-SRC_URI[md5sum] = "ba0c21305fc93b26e844981ef100dc85"
-SRC_URI[sha256sum] = "45ac1e037d3877f635d883f8a555e172883a25d3eeb7986c75890fdd31250a43"
+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
@@ -32,7 +32,10 @@ OPKGLIBDIR ??= "${target_localstatedir}/lib"
PACKAGECONFIG ??= "libsolv"
-PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,gpgme libgpg-error,gnupg"
+PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\
+ gnupg gpgme libgpg-error,\
+ ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\
+ "
PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl"
PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
@@ -42,16 +45,6 @@ PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv"
EXTRA_OECONF += " --disable-pathfinder"
EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}"
-# Release tarball has unused binaries on the tests folder, automatically created by automake.
-# For now, delete them to avoid packaging errors (wrong architecture)
-do_unpack_append () {
- bb.build.exec_func('remove_test_binaries', d)
-}
-
-remove_test_binaries () {
- rm ${WORKDIR}/opkg-${PV}/tests/libopkg_test*
-}
-
do_install_append () {
install -d ${D}${sysconfdir}/opkg
install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf
diff --git a/meta/recipes-devtools/orc/orc_0.4.29.bb b/meta/recipes-devtools/orc/orc_0.4.31.bb
index 8313576ab4..cd4dc31d70 100644
--- a/meta/recipes-devtools/orc/orc_0.4.29.bb
+++ b/meta/recipes-devtools/orc/orc_0.4.31.bb
@@ -4,10 +4,14 @@ LICENSE = "BSD-2-Clause & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=1400bd9d09e8af56b9ec982b3d85797e"
SRC_URI = "http://gstreamer.freedesktop.org/src/orc/orc-${PV}.tar.xz"
-SRC_URI[md5sum] = "25799917c7d31a891d5e32b83ad08f6d"
-SRC_URI[sha256sum] = "4f8901f9144b5ec17dffdb33548b5f4c7f8049b0d1023be3462cdd64ec5a3ab2"
+SRC_URI[md5sum] = "b6b95a47eff713e91873e2c2b1a5b3ad"
+SRC_URI[sha256sum] = "a0ab5f10a6a9ae7c3a6b4218246564c3bf00d657cbdf587e6d34ec3ef0616075"
-inherit autotools pkgconfig gtk-doc
+inherit meson pkgconfig gtk-doc
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+GTKDOC_MESON_ENABLE_FLAG = "enabled"
+GTKDOC_MESON_DISABLE_FLAG = "disabled"
BBCLASSEXTEND = "native nativesdk"
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/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch b/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch
index f60dfe879a..d13d419f51 100644
--- a/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch
+++ b/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch
@@ -6,8 +6,8 @@ Subject: [PATCH] Invoke ed directly instead of using the shell
* src/pch.c (do_ed_script): Invoke ed directly instead of using a shell
command to avoid quoting vulnerabilities.
-CVE: CVE-2019-13638
-Upstream-Status: Backport[https://git.savannah.gnu.org/cgit/patch.git/patch/?id=3fcd042d26d70856e826a42b5f93dc4854d80bf0]
+CVE: CVE-2019-13638 CVE-2018-20969
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/patch.git/patch/?id=3fcd042d26d70856e826a42b5f93dc4854d80bf0]
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
---
diff --git a/meta/recipes-devtools/patch/patch_2.7.6.bb b/meta/recipes-devtools/patch/patch_2.7.6.bb
index 5d7f55f8dc..b5897b357a 100644
--- a/meta/recipes-devtools/patch/patch_2.7.6.bb
+++ b/meta/recipes-devtools/patch/patch_2.7.6.bb
@@ -22,3 +22,6 @@ acpaths = "-I ${S}/m4 "
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)}"
PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr,"
+PROVIDES_append_class-native = " patch-replacement-native"
+
+BBCLASSEXTEND = "native nativesdk"
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 580108e8b8..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 = "http://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-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch b/meta/recipes-devtools/perl/files/0001-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch
new file mode 100644
index 0000000000..c5bbe7888e
--- /dev/null
+++ b/meta/recipes-devtools/perl/files/0001-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch
@@ -0,0 +1,24 @@
+From a033c9ece12b6eead48eed63f106ccdec6159b0c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 20 Dec 2019 16:26:55 +0100
+Subject: [PATCH] CheckLib.pm: do not attempt to run a cross executable
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ inc/Devel/CheckLib.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/inc/Devel/CheckLib.pm b/inc/Devel/CheckLib.pm
+index 36a451a..b04acc1 100644
+--- a/inc/Devel/CheckLib.pm
++++ b/inc/Devel/CheckLib.pm
+@@ -330,7 +330,7 @@ sub assert_lib {
+ push @missing, $lib if $rv != 0 || !-x $exefile;
+ my $absexefile = File::Spec->rel2abs($exefile);
+ $absexefile = '"' . $absexefile . '"' if $absexefile =~ m/\s/;
+- push @wrongresult, $lib if $rv == 0 && -x $exefile && system($absexefile) != 0;
++ push @wrongresult, $lib if $rv == 0 && -x $exefile && 0 != 0;
+ unlink $ofile if -e $ofile;
+ _cleanup_exe($exefile);
+ }
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/determinism.patch b/meta/recipes-devtools/perl/files/determinism.patch
new file mode 100644
index 0000000000..ccdd52a0d0
--- /dev/null
+++ b/meta/recipes-devtools/perl/files/determinism.patch
@@ -0,0 +1,68 @@
+Fixes to make the perl build reproducible:
+
+a) Remove the \n from configure_attr.sh since it gets quoted differently depending on
+ whether the shell is bash or dash which can cause the test result to be incorrect.
+ Reported upstream: https://github.com/arsv/perl-cross/issues/87
+
+b) Sort the order of the module lists from configure_mods.sh since otherwise
+ the result isn't the same leading to makefile differences.
+ Reported upstream: https://github.com/arsv/perl-cross/issues/88
+
+c) Sort the Encode::Byte byte_t.fnm file output (and the makefile depends whilst
+ there for good measure)
+ This needs to go to upstream perl (not done)
+
+d) Use bash for perl-cross configure since otherwise trnl gets set to "\n" with bash
+ and "" with dash
+ Reported upstream: https://github.com/arsv/perl-cross/issues/87
+
+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_mods.sh
+===================================================================
+--- perl-5.30.1.orig/cnf/configure_mods.sh
++++ perl-5.30.1/cnf/configure_mods.sh
+@@ -82,7 +82,7 @@ extonlyif() {
+ }
+
+ definetrimspaces() {
+- v=`echo "$2" | sed -r -e 's/\s+/ /g' -e 's/^\s+//' -e 's/\s+$//'`
++ v=`echo "$2" | sed -r -e 's/\s+/ /g' -e 's/^\s+//' -e 's/\s+$//' | xargs -n1 | LANG=C sort | xargs`
+ define $1 "$v"
+ }
+
+Index: perl-5.30.1/cpan/Encode/Byte/Makefile.PL
+===================================================================
+--- perl-5.30.1.orig/cpan/Encode/Byte/Makefile.PL
++++ perl-5.30.1/cpan/Encode/Byte/Makefile.PL
+@@ -171,7 +171,7 @@ sub postamble
+ my $lengthsofar = length($str);
+ my $continuator = '';
+ $str .= "$table.c : $enc2xs Makefile.PL";
+- foreach my $file (@{$tables{$table}})
++ foreach my $file (sort (@{$tables{$table}}))
+ {
+ $str .= $continuator.' '.$self->catfile($dir,$file);
+ if ( length($str)-$lengthsofar > 128*$numlines )
+@@ -189,7 +189,7 @@ sub postamble
+ qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
+ open (FILELIST, ">$table.fnm")
+ || die "Could not open $table.fnm: $!";
+- foreach my $file (@{$tables{$table}})
++ foreach my $file (sort (@{$tables{$table}}))
+ {
+ print FILELIST $self->catfile($dir,$file) . "\n";
+ }
+Index: perl-5.30.1/cnf/configure
+===================================================================
+--- perl-5.30.1.orig/cnf/configure
++++ perl-5.30.1/cnf/configure
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+
+ base=${0%/*}; test -z "$base" && base=.
+
diff --git a/meta/recipes-devtools/perl/files/encodefix.patch b/meta/recipes-devtools/perl/files/encodefix.patch
new file mode 100644
index 0000000000..396ed0d53e
--- /dev/null
+++ b/meta/recipes-devtools/perl/files/encodefix.patch
@@ -0,0 +1,20 @@
+The code is encoding host compiler parameters into target builds. Avoid
+this for our target builds (patch is target specific, not native)
+
+Upstream-Status: Inappropriate [Cross compile hack]
+RP 2020/2/18
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: perl-5.30.1/cpan/Encode/bin/enc2xs
+===================================================================
+--- perl-5.30.1.orig/cpan/Encode/bin/enc2xs
++++ perl-5.30.1/cpan/Encode/bin/enc2xs
+@@ -195,7 +195,7 @@ sub compiler_info {
+ # above becomes false.
+ my $sized = $declaration && !($compat && !$pedantic);
+
+- return ($cpp, $static, $sized);
++ return (0, 1, 1);
+ }
+
+
diff --git a/meta/recipes-devtools/perl/files/fix-setgroup.patch b/meta/recipes-devtools/perl/files/fix-setgroup.patch
deleted file mode 100644
index 2b490e6067..0000000000
--- a/meta/recipes-devtools/perl/files/fix-setgroup.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Test script to reproduce the problem:
-
-#!/usr/bin/env perl
-$) = "2 2";
-print $!;
-
-Result from perl 5.28 under strace:
-
-setgroups(1, [2]) = 0
-setresgid(-1, 2, -1) = 0
-
-Result from perl 5.30 under strace:
-
-setgroups(1, [-1]) = -1 EINVAL (Invalid argument)
-setresgid(-1, 2, -1) = 0
-
-Patch which broke this upstream:
-https://perl5.git.perl.org/perl.git/commitdiff/5d4a52b5c68a11bfc97c2e24806993b84a61eade
-
-Issue is that the new function changes the endptr to the end of the
-scanned number and needs to be reset to the end of the string for
-each iteration of the loop.
-
-[YOCTO #13391]
-
-RP
-2019/6/14
-Upstream-Status: Pending
-
-Index: perl-5.30.0/mg.c
-===================================================================
---- perl-5.30.0.orig/mg.c
-+++ perl-5.30.0/mg.c
-@@ -3179,6 +3256,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
- const char *p = SvPV_const(sv, len);
- Groups_t *gary = NULL;
- const char* endptr = p + len;
-+ const char* realend = p + len;
- UV uv;
- #ifdef _SC_NGROUPS_MAX
- int maxgrp = sysconf(_SC_NGROUPS_MAX);
-@@ -3209,6 +3287,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
- Newx(gary, i + 1, Groups_t);
- else
- Renew(gary, i + 1, Groups_t);
-+ endptr = realend;
- if (grok_atoUV(p, &uv, &endptr))
- gary[i] = (Groups_t)uv;
- else {
diff --git a/meta/recipes-devtools/perl/files/perl-configpm-switch.patch b/meta/recipes-devtools/perl/files/perl-configpm-switch.patch
index 3c2cecb8c1..80ce4a6de7 100644
--- a/meta/recipes-devtools/perl/files/perl-configpm-switch.patch
+++ b/meta/recipes-devtools/perl/files/perl-configpm-switch.patch
@@ -1,4 +1,4 @@
-From 7f313cac31c55cbe62a4d0cdfa8321cc05a8eb3a Mon Sep 17 00:00:00 2001
+From 5120acaa2be5787d9657f6b91bc8ee3c2d664fbe Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Sun, 27 May 2007 21:04:11 +0000
Subject: [PATCH] perl: 5.8.7 -> 5.8.8 (from OE)
@@ -20,7 +20,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/configpm b/configpm
-index 09c4a3b..6a0a680 100755
+index c8de8bf..204613c 100755
--- a/configpm
+++ b/configpm
@@ -687,7 +687,7 @@ sub FETCH {
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/liberror-perl_0.17027.bb b/meta/recipes-devtools/perl/liberror-perl_0.17029.bb
index cf1f6d685f..038808f0cd 100644
--- a/meta/recipes-devtools/perl/liberror-perl_0.17027.bb
+++ b/meta/recipes-devtools/perl/liberror-perl_0.17029.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "The Error package provides two interfaces. Firstly \
Error provides a procedural interface to exception handling. \
Secondly Error is a base class for errors/exceptions that can \
either be thrown, for subsequent catch, or can simply be recorded."
-HOMEPAGE = "https://bitbucket.org/shlomif/perl-error.pm"
+HOMEPAGE = "https://github.com/shlomif/perl-error.pm"
SECTION = "libs"
LICENSE = "Artistic-1.0 | GPL-1.0+"
@@ -32,8 +32,8 @@ RDEPENDS_${PN}-ptest += " \
SRC_URI = "http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Error-${PV}.tar.gz"
-SRC_URI[md5sum] = "4ef9b2890fb144d804527ba32573dd56"
-SRC_URI[sha256sum] = "07b2ac8275dfa04144745a6c1900a596280f862b97d22bab0c5ce02682ebd3be"
+SRC_URI[md5sum] = "6732b1c6207e4a9a3e2987c88368039a"
+SRC_URI[sha256sum] = "1a23f7913032aed6d4b68321373a3899ca66590f4727391a091ec19c95bf7adc"
S = "${WORKDIR}/Error-${PV}"
diff --git a/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest b/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest
index 0d63d1513b..d802781f9e 100644
--- a/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest
+++ b/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest
@@ -6,8 +6,6 @@ for case in `find t -type f -name '*.t'`; do
cat $case.output
if [ $ret -ne 0 ]; then
echo "FAIL: ${case%.t}"
- elif grep -i 'SKIP' $case.output; then
- echo "SKIP: ${case%.t}"
else
echo "PASS: ${case%.t}"
fi
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 f759f862fb..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,10 +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" \
+ -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} += " \
@@ -72,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 \
@@ -100,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/libxml-parser-perl_2.44.bb b/meta/recipes-devtools/perl/libxml-parser-perl_2.46.bb
index 7c9b7696a7..bc154bbdc5 100644
--- a/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb
+++ b/meta/recipes-devtools/perl/libxml-parser-perl_2.46.bb
@@ -2,13 +2,16 @@ SUMMARY = "XML::Parser - A perl module for parsing XML documents"
HOMEPAGE = "https://libexpat.github.io/"
SECTION = "libs"
LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://README;beginline=2;endline=6;md5=c8767d7516229f07b26e42d1cf8b51f1"
+LIC_FILES_CHKSUM = "file://Parser.pm;beginline=1;endline=7;md5=d12cc778c80fc4c518f0e5dee29fd5fb"
DEPENDS += "expat"
-SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz"
-SRC_URI[md5sum] = "af4813fe3952362451201ced6fbce379"
-SRC_URI[sha256sum] = "1ae9d07ee9c35326b3d9aad56eae71a6730a73a116b9fe9e8a4758b7cc033216"
+SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz \
+ file://ptest-perl/run-ptest \
+ file://0001-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch \
+ "
+SRC_URI[md5sum] = "80bb18a8e6240fcf7ec2f7b57601c170"
+SRC_URI[sha256sum] = "d331332491c51cccfb4cb94ffc44f9cd73378e618498d4a37df9e043661c515d"
S = "${WORKDIR}/XML-Parser-${PV}"
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index 7152057762..98e3361fcc 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -42,6 +42,9 @@ do_install_ptest () {
# Remove a useless timestamp...
sed -i -e '/Autogenerated starting on/d' ${D}${PTEST_PATH}/lib/unicore/mktables.lst
+
+ # Remove files with host-specific configuration for building native binaries
+ rm ${D}${PTEST_PATH}/Makefile.config ${D}${PTEST_PATH}/xconfig.h ${D}${PTEST_PATH}/xconfig.sh
}
python populate_packages_prepend() {
diff --git a/meta/recipes-devtools/perl/perl_5.30.0.bb b/meta/recipes-devtools/perl/perl_5.32.0.bb
index ba2a8437d4..bba8263b90 100644
--- a/meta/recipes-devtools/perl/perl_5.30.0.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/perl-cross-1.3.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,29 +18,31 @@ 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://fix-setgroup.patch \
- file://0001-enc2xs-Add-environment-variable-to-suppress-comments.patch \
file://0002-Constant-Fix-up-shebang.patch \
+ file://determinism.patch \
+ file://perl-cross-makefile.patch \
"
SRC_URI_append_class-native = " \
file://perl-configpm-switch.patch \
"
+SRC_URI_append_class-target = " \
+ file://encodefix.patch \
+"
-SRC_URI[perl.md5sum] = "9770584cdf9b5631c38097645ce33549"
-SRC_URI[perl.sha256sum] = "851213c754d98ccff042caa40ba7a796b2cee88c5325f121be5cbb61bbf975f2"
-SRC_URI[perl-cross.md5sum] = "4dda3daf9c4fe42b3d6a5dd052852a48"
-SRC_URI[perl-cross.sha256sum] = "49edea1ea2cd6c5c47386ca71beda8d150c748835781354dbe7f75b1df27e703"
+SRC_URI[perl.sha256sum] = "efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4"
+SRC_URI[perl-cross.sha256sum] = "755aa0ca8141a942188a269564f86c3c82349f82c346ed5c992495d7f35138ba"
S = "${WORKDIR}/perl-${PV}"
-inherit upstream-version-is-even
+inherit upstream-version-is-even update-alternatives
-DEPENDS += "gdbm zlib virtual/crypt"
+DEPENDS += "zlib virtual/crypt"
PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0"
-PACKAGECONFIG ??= "bdb"
+PACKAGECONFIG ??= "bdb gdbm"
PACKAGECONFIG[bdb] = ",-Ui_db,db"
+PACKAGECONFIG[gdbm] = ",-Ui_gdbm,gdbm"
# Don't generate comments in enc2xs output files. They are not reproducible
export ENC2XS_NO_COMMENTS = "1"
@@ -112,6 +114,14 @@ print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %
do_compile() {
oe_runmake
+ # This isn't generated reliably so delete and re-generate.
+ # https://github.com/arsv/perl-cross/issues/86
+
+ if [ -e pod/perltoc.pod ]; then
+ bbnote Rebuilding perltoc.pod
+ rm -f pod/perltoc.pod
+ oe_runmake pod/perltoc.pod
+ fi
}
do_install() {
@@ -129,12 +139,20 @@ 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() {
# This is used to substitute target configuration when running native perl via perl-configpm-switch.patch
ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl
+ # This contains host-specific information used for building miniperl (a helper executable built with host compiler)
+ # and therefore isn't reproducible. I believe the file isn't actually needed on target.
+ rm ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/xconfig.h
}
do_install_append_class-nativesdk() {
@@ -142,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 () {
@@ -172,13 +190,12 @@ perl_package_preprocess () {
-e "s,${STAGING_BINDIR_NATIVE}/,,g" \
-e "s,${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX},${bindir},g" \
-e 's:${RECIPE_SYSROOT}::g' \
- ${PKGD}${bindir}/h2xs \
- ${PKGD}${bindir}/h2ph \
- ${PKGD}${bindir}/pod2man \
- ${PKGD}${bindir}/pod2text \
- ${PKGD}${bindir}/pod2usage \
- ${PKGD}${bindir}/podchecker \
- ${PKGD}${bindir}/podselect \
+ ${PKGD}${bindir}/h2xs.perl \
+ ${PKGD}${bindir}/h2ph.perl \
+ ${PKGD}${bindir}/pod2man.perl \
+ ${PKGD}${bindir}/pod2text.perl \
+ ${PKGD}${bindir}/pod2usage.perl \
+ ${PKGD}${bindir}/podchecker.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 \
@@ -193,11 +210,44 @@ perl_package_preprocess () {
${PKGD}${libdir}/perl5/config.sh
}
+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 \
+ prove ptar ptardiff ptargrep shasum splain xsubpp zipdetails"
+ALTERNATIVE_LINK_NAME[corelist] = "${bindir}/corelist"
+ALTERNATIVE_LINK_NAME[cpan] = "${bindir}/cpan"
+ALTERNATIVE_LINK_NAME[enc2xs] = "${bindir}/enc2xs"
+ALTERNATIVE_LINK_NAME[encguess] = "${bindir}/encguess"
+ALTERNATIVE_LINK_NAME[h2ph] = "${bindir}/h2ph"
+ALTERNATIVE_LINK_NAME[h2xs] = "${bindir}/h2xs"
+ALTERNATIVE_LINK_NAME[instmodsh] = "${bindir}/instmodsh"
+ALTERNATIVE_LINK_NAME[json_pp] = "${bindir}/json_pp"
+ALTERNATIVE_LINK_NAME[libnetcfg] = "${bindir}/libnetcfg"
+ALTERNATIVE_LINK_NAME[piconv] = "${bindir}/piconv"
+ALTERNATIVE_LINK_NAME[pl2pm] = "${bindir}/pl2pm"
+ALTERNATIVE_LINK_NAME[pod2html] = "${bindir}/pod2html"
+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[prove] = "${bindir}/prove"
+ALTERNATIVE_LINK_NAME[ptar] = "${bindir}/ptar"
+ALTERNATIVE_LINK_NAME[ptardiff] = "${bindir}/ptardiff"
+ALTERNATIVE_LINK_NAME[ptargrep] = "${bindir}/ptargrep"
+ALTERNATIVE_LINK_NAME[shasum] = "${bindir}/shasum"
+ALTERNATIVE_LINK_NAME[splain] = "${bindir}/splain"
+ALTERNATIVE_LINK_NAME[xsubpp] = "${bindir}/xsubpp"
+ALTERNATIVE_LINK_NAME[zipdetails] = "${bindir}/zipdetails"
+
require perl-ptest.inc
FILES_${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/libperl.so* \
${libdir}/perl5/site_perl \
${libdir}/perl5/${PV}/Config.pm \
+ ${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \
${libdir}/perl5/${PV}/*/Config_git.pl \
${libdir}/perl5/${PV}/*/Config_heavy-target.pl \
${libdir}/perl5/config.sh \
@@ -206,6 +256,9 @@ FILES_${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/
${libdir}/perl5/${PV}/warnings \
${libdir}/perl5/${PV}/vars.pm \
${libdir}/perl5/site_perl \
+ ${libdir}/perl5/${PV}/ExtUtils/MANIFEST.SKIP \
+ ${libdir}/perl5/${PV}/ExtUtils/xsubpp \
+ ${libdir}/perl5/${PV}/ExtUtils/typemap \
"
RPROVIDES_${PN} += "perl-module-strict perl-module-vars perl-module-config perl-module-warnings \
perl-module-warnings-register"
@@ -216,9 +269,6 @@ FILES_${PN}-dev_append = " ${libdir}/perl5/${PV}/*/CORE"
FILES_${PN}-doc_append = " ${libdir}/perl5/${PV}/Unicode/Collate/*.txt \
${libdir}/perl5/${PV}/*/.packlist \
- ${libdir}/perl5/${PV}/ExtUtils/MANIFEST.SKIP \
- ${libdir}/perl5/${PV}/ExtUtils/xsubpp \
- ${libdir}/perl5/${PV}/ExtUtils/typemap \
${libdir}/perl5/${PV}/Encode/encode.h \
"
PACKAGES += "${PN}-misc"
@@ -240,6 +290,10 @@ FILES_${PN}-module-cpan += "${libdir}/perl5/${PV}/CPAN \
"
FILES_${PN}-module-unicore += "${libdir}/perl5/${PV}/unicore"
+ALTERNATIVE_PRIORITY = "40"
+ALTERNATIVE_${PN}-doc = "Thread.3"
+ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3"
+
# Create a perl-modules package recommending all the other perl
# packages (actually the non modules packages and not created too)
ALLOW_EMPTY_${PN}-modules = "1"
@@ -254,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
@@ -276,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":
@@ -333,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 94bc112b9f..12496c3849 100644
--- a/meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb
+++ b/meta/recipes-devtools/pkgconf/pkgconf_1.7.3.bb
@@ -8,7 +8,6 @@ BUGTRACKER = "https://github.com/pkgconf/pkgconf/issues"
SECTION = "devel"
PROVIDES += "pkgconfig"
RPROVIDES_${PN} += "pkgconfig"
-DEFAULT_PREFERENCE = "-1"
# The pkgconf license seems to be functionally equivalent to BSD-2-Clause or
# ISC, but has different wording, so needs its own name.
@@ -21,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/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch b/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch
new file mode 100644
index 0000000000..da0275bfcd
--- /dev/null
+++ b/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch
@@ -0,0 +1,110 @@
+From 05240e13668422c4f9118f2cde953ec875d0d68f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 14 Jan 2020 01:37:22 -0800
+Subject: [PATCH] Add MIPS gnu hash support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/arch-mips.c | 1 +
+ src/prelink.c | 1 +
+ src/prelink.h | 5 +++++
+ 3 files changed, 7 insertions(+)
+
+--- a/src/arch-mips.c
++++ b/src/arch-mips.c
+@@ -324,6 +324,7 @@ mips_adjust_dyn (DSO *dso, int n, GElf_D
+ case DT_MIPS_BASE_ADDRESS:
+ case DT_MIPS_RLD_MAP:
+ case DT_MIPS_OPTIONS:
++ case DT_MIPS_XHASH:
+ if (dyn->d_un.d_ptr >= start)
+ dyn->d_un.d_ptr += adjust;
+ return 1;
+--- a/src/prelink.c
++++ b/src/prelink.c
+@@ -425,6 +425,7 @@ prelink_prepare (DSO *dso)
+ {
+ case SHT_HASH:
+ case SHT_GNU_HASH:
++ case SHT_MIPS_XHASH:
+ case SHT_DYNSYM:
+ case SHT_REL:
+ case SHT_RELA:
+--- a/src/prelink.h
++++ b/src/prelink.h
+@@ -114,6 +114,11 @@ typedef uint8_t Elf64_Byte;
+ #define SHT_MIPS_ABIFLAGS 0x7000002a
+ #endif
+
++#ifndef SHT_MIPS_XHASH
++#define DT_MIPS_XHASH 0x70000036
++#define SHT_MIPS_XHASH 0x7000002b
++#endif
++
+ #ifndef RSS_UNDEF
+ #define RSS_UNDEF 0
+ #endif
+--- a/src/dso.c
++++ b/src/dso.c
+@@ -109,6 +109,11 @@ read_dynamic (DSO *dso)
+ dso->info_DT_GNU_HASH = dyn.d_un.d_val;
+ dso->info_set_mask |= (1ULL << DT_GNU_HASH_BIT);
+ }
++ else if (dyn.d_tag == DT_MIPS_XHASH)
++ {
++ dso->info_DT_GNU_HASH = dyn.d_un.d_val;
++ dso->info_set_mask |= (1ULL << DT_GNU_HASH_BIT);
++ }
+ else if (dyn.d_tag == DT_TLSDESC_PLT)
+ {
+ dso->info_DT_TLSDESC_PLT = dyn.d_un.d_val;
+@@ -1463,6 +1468,7 @@ adjust_dso (DSO *dso, GElf_Addr start, G
+ break;
+ case SHT_HASH:
+ case SHT_GNU_HASH:
++ case SHT_MIPS_XHASH:
+ case SHT_NOBITS:
+ case SHT_STRTAB:
+ break;
+--- a/src/space.c
++++ b/src/space.c
+@@ -61,6 +61,7 @@ print_sections (DSO *dso, GElf_Ehdr *ehd
+ { SHT_GNU_versym, "VERSYM" },
+ { SHT_GNU_LIBLIST, "LIBLIST" },
+ { SHT_GNU_HASH, "GNU_HASH" },
++ { SHT_MIPS_XHASH, "MIPS_XHASH" },
+ { 0, NULL }
+ };
+
+@@ -183,6 +184,7 @@ readonly_is_movable (DSO *dso, GElf_Ehdr
+ {
+ case SHT_HASH:
+ case SHT_GNU_HASH:
++ case SHT_MIPS_XHASH:
+ case SHT_DYNSYM:
+ case SHT_REL:
+ case SHT_RELA:
+@@ -558,6 +560,7 @@ find_readonly_space (DSO *dso, GElf_Shdr
+ {
+ case SHT_HASH:
+ case SHT_GNU_HASH:
++ case SHT_MIPS_XHASH:
+ case SHT_DYNSYM:
+ case SHT_STRTAB:
+ case SHT_GNU_verdef:
+--- a/src/exec.c
++++ b/src/exec.c
+@@ -65,7 +65,11 @@ update_dynamic_tags (DSO *dso, GElf_Shdr
+ || (dynamic_info_is_set (dso, DT_GNU_HASH_BIT)
+ && dso->info_DT_GNU_HASH == old_shdr[j].sh_addr
+ && old_shdr[j].sh_type == SHT_GNU_HASH
+- && set_dynamic (dso, DT_GNU_HASH, shdr[i].sh_addr, 1)))
++ && set_dynamic (dso, DT_GNU_HASH, shdr[i].sh_addr, 1))
++ || (dynamic_info_is_set (dso, DT_GNU_HASH_BIT)
++ && dso->info_DT_GNU_HASH == old_shdr[j].sh_addr
++ && old_shdr[j].sh_type == SHT_MIPS_XHASH
++ && set_dynamic (dso, DT_MIPS_XHASH, shdr[i].sh_addr, 1)))
+ return 1;
+ }
+
diff --git a/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch b/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch
deleted file mode 100644
index b1688243af..0000000000
--- a/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 2136969e3e196b9cf7f4788340efa4b1d9b39565 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Thu, 11 Oct 2018 10:05:52 +0800
-Subject: [PATCH] src/arch-mips.c: check info->resolvetls before use its member
-
-The info->resolvetls might be NULL according to src/prelink.c:
-[snip]
- /* Dynamic linker does not depend on any other library,
- all symbols resolve to themselves with the exception
- of SHN_UNDEF symbols which resolve to 0. */
-if (info->symtab[r_sym].st_shndx == SHN_UNDEF)
- {
- info->resolveent = NULL;
- info->resolvetls = NULL;
-[snip]
-
-So we must check it before use its members, otherwise, there might be
-Segmentation fault error.
-
-Fixed:
-MACHINE = "qemumips"
-IMAGE_INSTALL_append = " qemu"
-$ bitbake core-image-minimal
-[snip]
-| /path/to/qemumips-poky-linux/core-image-minimal/1.0-r0/temp/run.prelink_image.1000: line 111: 1010 Segmentation fault (core dumped)
-[snip]
-
-Upstream-Status: Submitted [https://lists.yoctoproject.org/pipermail/yocto/2018-October/042812.html]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- src/arch-mips.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/arch-mips.c b/src/arch-mips.c
-index ccb1834..02c608f 100644
---- a/src/arch-mips.c
-+++ b/src/arch-mips.c
-@@ -567,7 +567,8 @@ mips_prelink_reloc (struct prelink_info *info, GElf_Addr r_offset,
- if (dso->ehdr.e_type == ET_EXEC)
- {
- value = info->resolve (info, r_sym, r_type);
-- value += info->resolvetls->offset - TLS_TP_OFFSET;
-+ if (info->resolvetls != NULL)
-+ value += info->resolvetls->offset - TLS_TP_OFFSET;
- if (r_type == R_MIPS_TLS_TPREL32)
- mips_prelink_32bit_reloc (dso, rela, value);
- else
---
-2.7.4
-
diff --git a/meta/recipes-devtools/prelink/prelink_git.bb b/meta/recipes-devtools/prelink/prelink_git.bb
index f0946de2cc..e197af9ee9 100644
--- a/meta/recipes-devtools/prelink/prelink_git.bb
+++ b/meta/recipes-devtools/prelink/prelink_git.bb
@@ -9,7 +9,7 @@ and executables, so that far fewer relocations need to be resolved at \
runtime and thus programs come up faster."
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-SRCREV = "a853a5d715d84eec93aa68e8f2df26b7d860f5b2"
+SRCREV = "f9975537dbfd9ade0fc813bd5cf5fcbe41753a37"
PV = "1.0+git${SRCPV}"
#
@@ -28,12 +28,12 @@ FILES_${PN}-cron = "${sysconfdir}/cron.daily ${sysconfdir}/default"
PACKAGES =+ "${PN}-cron"
SRC_URI = "git://git.yoctoproject.org/prelink-cross.git;branch=cross_prelink_staging \
+ file://0001-Add-MIPS-gnu-hash-support.patch \
file://prelink.conf \
file://prelink.cron.daily \
file://prelink.default \
file://macros.prelink \
- file://0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch \
-"
+ "
UPSTREAM_CHECK_COMMITS = "1"
# error: error.h: No such file or directory
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/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 8b34909726..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
@@ -30,23 +31,10 @@ PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback --enable-ep
# Compile for the local machine arch...
do_compile () {
- SQLITE_LDADD='$(SQLITE)/$(SQLITE_LIB)/libsqlite3.a'
- for sqlite_link_opt in $(pkg-config sqlite3 --libs --static)
- do
- case "$sqlite_link_opt" in
- -lsqlite3)
- ;;
- -l*)
- SQLITE_LDADD="${SQLITE_LDADD} ${sqlite_link_opt}"
- ;;
- *)
- ;;
- esac
- done
if [ "${SITEINFO_BITS}" = "64" ]; then
- ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --with-static-sqlite="$SQLITE_LDADD" --without-rpath
+ ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
else
- ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --with-static-sqlite="$SQLITE_LDADD" --without-rpath
+ ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
fi
oe_runmake ${MAKEOPTS}
}
@@ -128,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 78500e1cc6..2e13fec540 100644
--- a/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -1,15 +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 \
"
-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-npy_cpu-Add-riscv-support.patch b/meta/recipes-devtools/python-numpy/files/0001-npy_cpu-Add-riscv-support.patch
deleted file mode 100644
index 4decfe66ee..0000000000
--- a/meta/recipes-devtools/python-numpy/files/0001-npy_cpu-Add-riscv-support.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 629891f67601275c9c4de0bb01afcf1a8c44fa3f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Mar 2018 19:55:21 -0700
-Subject: [PATCH] npy_cpu: Add riscv support
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Submitted [https://github.com/numpy/numpy/pull/10761]
----
- numpy/core/include/numpy/npy_cpu.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/numpy/core/include/numpy/npy_cpu.h b/numpy/core/include/numpy/npy_cpu.h
-index 5edd8f4..e1e4796 100644
---- a/numpy/core/include/numpy/npy_cpu.h
-+++ b/numpy/core/include/numpy/npy_cpu.h
-@@ -96,6 +96,8 @@
- #define NPY_CPU_OR1K
- #elif defined(__mc68000__)
- #define NPY_CPU_M68K
-+#elif defined(__riscv)
-+ #define NPY_CPU_RISCV
- #elif defined(__arc__) && defined(__LITTLE_ENDIAN__)
- #define NPY_CPU_ARCEL
- #elif defined(__arc__) && defined(__BIG_ENDIAN__)
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 ebb2a6f9df..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([val in k.lower() for k in platform.uname()
-- for val 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/files/aarch64/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h
deleted file mode 100644
index 109deb0435..0000000000
--- a/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/aarch64/config.h b/meta/recipes-devtools/python-numpy/files/aarch64/config.h
deleted file mode 100644
index c30b868f2f..0000000000
--- a/meta/recipes-devtools/python-numpy/files/aarch64/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/arm/config.h b/meta/recipes-devtools/python-numpy/files/arm/config.h
deleted file mode 100644
index 17ef186d56..0000000000
--- a/meta/recipes-devtools/python-numpy/files/arm/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */
-/* #define SIZEOF_SHORT 2 */
-/* #define SIZEOF_INT 4 */
-/* #define SIZEOF_LONG 4 */
-/* #define SIZEOF_FLOAT 4 */
-/* #define SIZEOF_DOUBLE 8 */
-#define SIZEOF_LONG_DOUBLE 12
-#define SIZEOF_PY_INTPTR_T 4
-/* #define SIZEOF_LONG_LONG 8 */
-#define SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-#define MATHLIB m
-#define HAVE_FLOAT_FUNCS
-#define HAVE_LOG1P
-#define HAVE_EXPM1
-#define HAVE_INVERSE_HYPERBOLIC
-#define HAVE_INVERSE_HYPERBOLIC_FLOAT
-#define HAVE_ISNAN
-#define HAVE_ISINF
-#define HAVE_RINT
-
diff --git a/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h b/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h
deleted file mode 100644
index c4bf6547f0..0000000000
--- a/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */
-/*
- * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT
- * */
-#define NPY_SIZEOF_SHORT 2
-#define NPY_SIZEOF_INT 4
-#define NPY_SIZEOF_LONG 4
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_LONGDOUBLE 12
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_NO_SMP 0
-
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-
diff --git a/meta/recipes-devtools/python-numpy/files/armeb/config.h b/meta/recipes-devtools/python-numpy/files/armeb/config.h
deleted file mode 100644
index 17ef186d56..0000000000
--- a/meta/recipes-devtools/python-numpy/files/armeb/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */
-/* #define SIZEOF_SHORT 2 */
-/* #define SIZEOF_INT 4 */
-/* #define SIZEOF_LONG 4 */
-/* #define SIZEOF_FLOAT 4 */
-/* #define SIZEOF_DOUBLE 8 */
-#define SIZEOF_LONG_DOUBLE 12
-#define SIZEOF_PY_INTPTR_T 4
-/* #define SIZEOF_LONG_LONG 8 */
-#define SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-#define MATHLIB m
-#define HAVE_FLOAT_FUNCS
-#define HAVE_LOG1P
-#define HAVE_EXPM1
-#define HAVE_INVERSE_HYPERBOLIC
-#define HAVE_INVERSE_HYPERBOLIC_FLOAT
-#define HAVE_ISNAN
-#define HAVE_ISINF
-#define HAVE_RINT
-
diff --git a/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h b/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h
deleted file mode 100644
index c4bf6547f0..0000000000
--- a/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */
-/*
- * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT
- * */
-#define NPY_SIZEOF_SHORT 2
-#define NPY_SIZEOF_INT 4
-#define NPY_SIZEOF_LONG 4
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_LONGDOUBLE 12
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_NO_SMP 0
-
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h
deleted file mode 100644
index debb390094..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h b/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h
deleted file mode 100644
index c30b868f2f..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h
deleted file mode 100644
index 8e2b5d0940..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h b/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h
deleted file mode 100644
index 48727039ae..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h
+++ /dev/null
@@ -1,138 +0,0 @@
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h
deleted file mode 100644
index debb390094..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h b/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h
deleted file mode 100644
index c30b868f2f..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h
deleted file mode 100644
index debb390094..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h b/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h
deleted file mode 100644
index 48727039ae..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h
+++ /dev/null
@@ -1,138 +0,0 @@
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h
deleted file mode 100644
index 4c465c216c..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 8
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 16
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h b/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h
deleted file mode 100644
index 2f6135adce..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 4
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_DOUBLE_BE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h b/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h
deleted file mode 100644
index 17ef186d56..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ./src.linux-i686-2.5/numpy/core/include/numpy/config.h */
-/* #define SIZEOF_SHORT 2 */
-/* #define SIZEOF_INT 4 */
-/* #define SIZEOF_LONG 4 */
-/* #define SIZEOF_FLOAT 4 */
-/* #define SIZEOF_DOUBLE 8 */
-#define SIZEOF_LONG_DOUBLE 12
-#define SIZEOF_PY_INTPTR_T 4
-/* #define SIZEOF_LONG_LONG 8 */
-#define SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-#define MATHLIB m
-#define HAVE_FLOAT_FUNCS
-#define HAVE_LOG1P
-#define HAVE_EXPM1
-#define HAVE_INVERSE_HYPERBOLIC
-#define HAVE_INVERSE_HYPERBOLIC_FLOAT
-#define HAVE_ISNAN
-#define HAVE_ISINF
-#define HAVE_RINT
-
diff --git a/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h b/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h
deleted file mode 100644
index 0b7cd51af4..0000000000
--- a/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */
-/*
- * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT
- * */
-#define NPY_SIZEOF_SHORT 2
-#define NPY_SIZEOF_INT 4
-#define NPY_SIZEOF_LONG 4
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_LONGDOUBLE 12
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_NO_SMP 0
-
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_OFF_T 8
-/* #define CHAR_BIT 8 */
-
diff --git a/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h
deleted file mode 100644
index 6e7262ad91..0000000000
--- a/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/powerpc/config.h b/meta/recipes-devtools/python-numpy/files/powerpc/config.h
deleted file mode 100644
index f65d39d5de..0000000000
--- a/meta/recipes-devtools/python-numpy/files/powerpc/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 4
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_DOUBLE_DOUBLE_BE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h
deleted file mode 100644
index debb390094..0000000000
--- a/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/powerpc64/config.h b/meta/recipes-devtools/python-numpy/files/powerpc64/config.h
deleted file mode 100644
index c30b868f2f..0000000000
--- a/meta/recipes-devtools/python-numpy/files/powerpc64/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h
deleted file mode 100644
index 109deb0435..0000000000
--- a/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/riscv64/config.h b/meta/recipes-devtools/python-numpy/files/riscv64/config.h
deleted file mode 100644
index c30b868f2f..0000000000
--- a/meta/recipes-devtools/python-numpy/files/riscv64/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_IEEE_QUAD_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h b/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h
deleted file mode 100644
index b330361649..0000000000
--- a/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_OFF_T 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/x86-64/config.h b/meta/recipes-devtools/python-numpy/files/x86-64/config.h
deleted file mode 100644
index 0ce63b7d22..0000000000
--- a/meta/recipes-devtools/python-numpy/files/x86-64/config.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#define HAVE_ENDIAN_H 1
-#define SIZEOF_PY_INTPTR_T 8
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN 1
-#define HAVE_COS 1
-#define HAVE_TAN 1
-#define HAVE_SINH 1
-#define HAVE_COSH 1
-#define HAVE_TANH 1
-#define HAVE_FABS 1
-#define HAVE_FLOOR 1
-#define HAVE_CEIL 1
-#define HAVE_SQRT 1
-#define HAVE_LOG10 1
-#define HAVE_LOG 1
-#define HAVE_EXP 1
-#define HAVE_ASIN 1
-#define HAVE_ACOS 1
-#define HAVE_ATAN 1
-#define HAVE_FMOD 1
-#define HAVE_MODF 1
-#define HAVE_FREXP 1
-#define HAVE_LDEXP 1
-#define HAVE_RINT 1
-#define HAVE_TRUNC 1
-#define HAVE_EXP2 1
-#define HAVE_LOG2 1
-#define HAVE_ATAN2 1
-#define HAVE_POW 1
-#define HAVE_NEXTAFTER 1
-#define HAVE_SINF 1
-#define HAVE_COSF 1
-#define HAVE_TANF 1
-#define HAVE_SINHF 1
-#define HAVE_COSHF 1
-#define HAVE_TANHF 1
-#define HAVE_FABSF 1
-#define HAVE_FLOORF 1
-#define HAVE_CEILF 1
-#define HAVE_RINTF 1
-#define HAVE_TRUNCF 1
-#define HAVE_SQRTF 1
-#define HAVE_LOG10F 1
-#define HAVE_LOGF 1
-#define HAVE_LOG1PF 1
-#define HAVE_EXPF 1
-#define HAVE_EXPM1F 1
-#define HAVE_ASINF 1
-#define HAVE_ACOSF 1
-#define HAVE_ATANF 1
-#define HAVE_ASINHF 1
-#define HAVE_ACOSHF 1
-#define HAVE_ATANHF 1
-#define HAVE_HYPOTF 1
-#define HAVE_ATAN2F 1
-#define HAVE_POWF 1
-#define HAVE_FMODF 1
-#define HAVE_MODFF 1
-#define HAVE_FREXPF 1
-#define HAVE_LDEXPF 1
-#define HAVE_EXP2F 1
-#define HAVE_LOG2F 1
-#define HAVE_COPYSIGNF 1
-#define HAVE_NEXTAFTERF 1
-#define HAVE_SINL 1
-#define HAVE_COSL 1
-#define HAVE_TANL 1
-#define HAVE_SINHL 1
-#define HAVE_COSHL 1
-#define HAVE_TANHL 1
-#define HAVE_FABSL 1
-#define HAVE_FLOORL 1
-#define HAVE_CEILL 1
-#define HAVE_RINTL 1
-#define HAVE_TRUNCL 1
-#define HAVE_SQRTL 1
-#define HAVE_LOG10L 1
-#define HAVE_LOGL 1
-#define HAVE_LOG1PL 1
-#define HAVE_EXPL 1
-#define HAVE_EXPM1L 1
-#define HAVE_ASINL 1
-#define HAVE_ACOSL 1
-#define HAVE_ATANL 1
-#define HAVE_ASINHL 1
-#define HAVE_ACOSHL 1
-#define HAVE_ATANHL 1
-#define HAVE_HYPOTL 1
-#define HAVE_ATAN2L 1
-#define HAVE_POWL 1
-#define HAVE_FMODL 1
-#define HAVE_MODFL 1
-#define HAVE_FREXPL 1
-#define HAVE_LDEXPL 1
-#define HAVE_EXP2L 1
-#define HAVE_LOG2L 1
-#define HAVE_COPYSIGNL 1
-#define HAVE_NEXTAFTERL 1
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H 1
-#define HAVE_CREAL 1
-#define HAVE_CIMAG 1
-#define HAVE_CABS 1
-#define HAVE_CARG 1
-#define HAVE_CEXP 1
-#define HAVE_CSQRT 1
-#define HAVE_CLOG 1
-#define HAVE_CCOS 1
-#define HAVE_CSIN 1
-#define HAVE_CPOW 1
-#define HAVE_CREALF 1
-#define HAVE_CIMAGF 1
-#define HAVE_CABSF 1
-#define HAVE_CARGF 1
-#define HAVE_CEXPF 1
-#define HAVE_CSQRTF 1
-#define HAVE_CLOGF 1
-#define HAVE_CCOSF 1
-#define HAVE_CSINF 1
-#define HAVE_CPOWF 1
-#define HAVE_CREALL 1
-#define HAVE_CIMAGL 1
-#define HAVE_CABSL 1
-#define HAVE_CARGL 1
-#define HAVE_CEXPL 1
-#define HAVE_CSQRTL 1
-#define HAVE_CLOGL 1
-#define HAVE_CCOSL 1
-#define HAVE_CSINL 1
-#define HAVE_CPOWL 1
-#define HAVE_LDOUBLE_INTEL_EXTENDED_16_BYTES_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/x86/config.h b/meta/recipes-devtools/python-numpy/files/x86/config.h
deleted file mode 100644
index 08e41e3d99..0000000000
--- a/meta/recipes-devtools/python-numpy/files/x86/config.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#define SIZEOF_PY_INTPTR_T 4
-#define SIZEOF_PY_LONG_LONG 8
-#define MATHLIB m
-#define HAVE_SIN
-#define HAVE_COS
-#define HAVE_TAN
-#define HAVE_SINH
-#define HAVE_COSH
-#define HAVE_TANH
-#define HAVE_FABS
-#define HAVE_FLOOR
-#define HAVE_CEIL
-#define HAVE_SQRT
-#define HAVE_LOG10
-#define HAVE_LOG
-#define HAVE_EXP
-#define HAVE_ASIN
-#define HAVE_ACOS
-#define HAVE_ATAN
-#define HAVE_FMOD
-#define HAVE_MODF
-#define HAVE_FREXP
-#define HAVE_LDEXP
-#define HAVE_RINT
-#define HAVE_TRUNC
-#define HAVE_EXP2
-#define HAVE_LOG2
-#define HAVE_ATAN2
-#define HAVE_POW
-#define HAVE_NEXTAFTER
-#define HAVE_SINF
-#define HAVE_COSF
-#define HAVE_TANF
-#define HAVE_SINHF
-#define HAVE_COSHF
-#define HAVE_TANHF
-#define HAVE_FABSF
-#define HAVE_FLOORF
-#define HAVE_CEILF
-#define HAVE_RINTF
-#define HAVE_TRUNCF
-#define HAVE_SQRTF
-#define HAVE_LOG10F
-#define HAVE_LOGF
-#define HAVE_LOG1PF
-#define HAVE_EXPF
-#define HAVE_EXPM1F
-#define HAVE_ASINF
-#define HAVE_ACOSF
-#define HAVE_ATANF
-#define HAVE_ASINHF
-#define HAVE_ACOSHF
-#define HAVE_ATANHF
-#define HAVE_HYPOTF
-#define HAVE_ATAN2F
-#define HAVE_POWF
-#define HAVE_FMODF
-#define HAVE_MODFF
-#define HAVE_FREXPF
-#define HAVE_LDEXPF
-#define HAVE_EXP2F
-#define HAVE_LOG2F
-#define HAVE_COPYSIGNF
-#define HAVE_NEXTAFTERF
-#define HAVE_SINL
-#define HAVE_COSL
-#define HAVE_TANL
-#define HAVE_SINHL
-#define HAVE_COSHL
-#define HAVE_TANHL
-#define HAVE_FABSL
-#define HAVE_FLOORL
-#define HAVE_CEILL
-#define HAVE_RINTL
-#define HAVE_TRUNCL
-#define HAVE_SQRTL
-#define HAVE_LOG10L
-#define HAVE_LOGL
-#define HAVE_LOG1PL
-#define HAVE_EXPL
-#define HAVE_EXPM1L
-#define HAVE_ASINL
-#define HAVE_ACOSL
-#define HAVE_ATANL
-#define HAVE_ASINHL
-#define HAVE_ACOSHL
-#define HAVE_ATANHL
-#define HAVE_HYPOTL
-#define HAVE_ATAN2L
-#define HAVE_POWL
-#define HAVE_FMODL
-#define HAVE_MODFL
-#define HAVE_FREXPL
-#define HAVE_LDEXPL
-#define HAVE_EXP2L
-#define HAVE_LOG2L
-#define HAVE_COPYSIGNL
-#define HAVE_NEXTAFTERL
-#define HAVE_DECL_SIGNBIT
-#define HAVE_COMPLEX_H
-#define HAVE_LDOUBLE_INTEL_EXTENDED_12_BYTES_LE 1
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-#ifndef _NPY_NPY_CONFIG_H_
-#error config.h should never be included directly, include npy_config.h instead
-#endif
diff --git a/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h b/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h
deleted file mode 100644
index ff7938cd96..0000000000
--- a/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _NPY_NUMPYCONFIG_H_
-#define _NPY_NUMPYCONFIG_H_
-
-#include "_numpyconfig.h"
-
-/*
- * On Mac OS X, because there is only one configuration stage for all the archs
- * in universal builds, any macro which depends on the arch needs to be
- * harcoded
- */
-#ifdef __APPLE__
- #undef NPY_SIZEOF_LONG
- #undef NPY_SIZEOF_PY_INTPTR_T
-
- #ifdef __LP64__
- #define NPY_SIZEOF_LONG 8
- #define NPY_SIZEOF_PY_INTPTR_T 8
- #else
- #define NPY_SIZEOF_LONG 4
- #define NPY_SIZEOF_PY_INTPTR_T 4
- #endif
-#endif
-
-#endif
diff --git a/meta/recipes-devtools/python-numpy/python-numpy.inc b/meta/recipes-devtools/python-numpy/python-numpy.inc
index a12e72f964..0113f4098d 100644
--- a/meta/recipes-devtools/python-numpy/python-numpy.inc
+++ b/meta/recipes-devtools/python-numpy/python-numpy.inc
@@ -1,97 +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-npy_cpu-Add-riscv-support.patch \
- ${CONFIGFILESURI} \
- file://0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch \
"
-SRC_URI[md5sum] = "c48b2ad785f82cdfe28c907ce35e2a71"
-SRC_URI[sha256sum] = "47b7b6145e7ba5918ce26be25999b6d4b35cf9fbfdf46b7da50090ffdb020445"
+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"
-
-CONFIGFILESURI ?= ""
-
-CONFIGFILESURI_aarch64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_arm = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_armeb = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_mipsarcho32el = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_x86 = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_x86-64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarcho32eb = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_powerpc = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_powerpc64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarchn64eb = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarchn64el = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarchn32eb = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mipsarchn32el = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_riscv64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
+DEPENDS += "python3-cython-native"
S = "${WORKDIR}/numpy-${PV}"
CLEANBROKEN = "1"
-# Make the build fail and replace *config.h with proper one
-# This is a ugly, ugly hack - Koen
-do_compile_prepend_class-target() {
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS} || \
- true
- cp ${WORKDIR}/*config.h ${S}/build/$(ls ${S}/build | grep src)/numpy/core/include/numpy/
-}
-
-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.0.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.0.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 169d1b155b..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 5bba4f57f048016aa92ce5909e9e372db619554e 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 05508ce..945e118 100755
+index bcbd4f5..6455afd 100644
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
-@@ -640,6 +640,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 05508ce..945e118 100755
+ "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-async.inc b/meta/recipes-devtools/python/python-async.inc
index 139bf2c51c..af887dc4e5 100644
--- a/meta/recipes-devtools/python/python-async.inc
+++ b/meta/recipes-devtools/python/python-async.inc
@@ -1,7 +1,7 @@
SUMMARY = "Python framework to process interdependent tasks in a pool of workers"
HOMEPAGE = "http://github.com/gitpython-developers/async"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e"
inherit pypi
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 633752fd1b..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] = "94e59e5fb00960541f6e137b1456ab0a"
-SRC_URI[sha256sum] = "83361131a1836661a155172932a13c08bda2db3674e4caa32368aa6eb02f38c2"
+SRC_URI[sha256sum] = "c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9"
DEPENDS = "${PYTHON_PN}-async ${PYTHON_PN}-setuptools-native ${PYTHON_PN}-smmap"
diff --git a/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch b/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch
deleted file mode 100644
index 989818927d..0000000000
--- a/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 12292444e1b3662b994bc223d92b8338fb0895ff Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Thu, 25 Oct 2018 07:32:14 +0000
-Subject: [PATCH] python-native: fix one do_populate_sysroot warning
-
-Fix below warning:
-WARNING: Skipping RPATH /usr/lib64 as is a standard search path for
-work/x86_64-linux/python-native/2.7.15-r1.1/recipe-sysroot-native/
-usr/lib/python2.7/lib-dynload/_bsddb.so
-
-setup.py will check db.h under include_dirs, for native build,
-/usr/lib64 will be insert to postion 0 of include_dirs, so
-it's priority is higher then our sysroot, cause db.h sysroot
-is ignored, and rpath set to /usr/lib64. and this cause warning
-when do_populate_sysroot. use append to fix it.
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 7bf13ed..6c0f29b 100644
---- a/setup.py
-+++ b/setup.py
-@@ -40,7 +40,7 @@ def add_dir_to_list(dirlist, dir):
- 1) 'dir' is not already in 'dirlist'
- 2) 'dir' actually exists, and is a directory."""
- if dir is not None and os.path.isdir(dir) and dir not in dirlist:
-- dirlist.insert(0, dir)
-+ dirlist.append(dir)
-
- def macosx_sdk_root():
- """
---
-2.18.0
-
diff --git a/meta/recipes-devtools/python/python-native/10-distutils-fix-swig-parameter.patch b/meta/recipes-devtools/python/python-native/10-distutils-fix-swig-parameter.patch
deleted file mode 100644
index a39247ce70..0000000000
--- a/meta/recipes-devtools/python/python-native/10-distutils-fix-swig-parameter.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Pending
-
-# Some versions of SWIG do not use the extension parameter.
-# Make it optional.
-# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
-Index: Python-2.6.1/Lib/distutils/command/build_ext.py
-===================================================================
---- Python-2.6.1.orig/Lib/distutils/command/build_ext.py
-+++ Python-2.6.1/Lib/distutils/command/build_ext.py
-@@ -566,7 +566,7 @@ class build_ext (Command):
- target_lang=language)
-
-
-- def swig_sources (self, sources, extension):
-+ def swig_sources (self, sources, extension=None):
-
- """Walk the list of source files in 'sources', looking for SWIG
- interface (.i) files. Run SWIG on all that are found, and
diff --git a/meta/recipes-devtools/python/python-native/11-distutils-never-modify-shebang-line.patch b/meta/recipes-devtools/python/python-native/11-distutils-never-modify-shebang-line.patch
deleted file mode 100644
index c92469b9b6..0000000000
--- a/meta/recipes-devtools/python/python-native/11-distutils-never-modify-shebang-line.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Pending
-
-# Don't modify the she-bang line for a cross-build.
-# Otherwise it points to our hostpython (which we do not want)
-#
-# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
-
-Index: Python-2.6.1/Lib/distutils/command/build_scripts.py
-===================================================================
---- Python-2.6.1.orig/Lib/distutils/command/build_scripts.py
-+++ Python-2.6.1/Lib/distutils/command/build_scripts.py
-@@ -87,7 +87,7 @@ class build_scripts (Command):
- continue
-
- match = first_line_re.match(first_line)
-- if match:
-+ if False: #match:
- adjust = 1
- post_interp = match.group(1) or ''
-
diff --git a/meta/recipes-devtools/python/python-native/debug.patch b/meta/recipes-devtools/python/python-native/debug.patch
deleted file mode 100644
index 3617882640..0000000000
--- a/meta/recipes-devtools/python/python-native/debug.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Pending
-
-Index: Python-2.7.12/Lib/distutils/unixccompiler.py
-===================================================================
---- Python-2.7.12.orig/Lib/distutils/unixccompiler.py
-+++ Python-2.7.12/Lib/distutils/unixccompiler.py
-@@ -278,6 +278,8 @@ class UnixCCompiler(CCompiler):
-
-
-
-+ print "Looking in %s for %s" % (lib, dirs)
-+
- for dir in dirs:
- shared = os.path.join(dir, shared_f)
- dylib = os.path.join(dir, dylib_f)
-@@ -298,12 +300,16 @@ class UnixCCompiler(CCompiler):
- # assuming that *all* Unix C compilers do. And of course I'm
- # ignoring even GCC's "-static" option. So sue me.
- if os.path.exists(dylib):
-+ print "Found %s" % (dylib)
- return dylib
- elif os.path.exists(xcode_stub):
-+ print "Found %s" % (xcode_stub)
- return xcode_stub
- elif os.path.exists(shared):
-+ print "Found %s" % (shared)
- return shared
- elif os.path.exists(static):
-+ print "Found %s" % (static)
- return static
-
- # Oops, didn't find it in *any* of 'dirs'
diff --git a/meta/recipes-devtools/python/python-native/multilib.patch b/meta/recipes-devtools/python/python-native/multilib.patch
deleted file mode 100644
index af0f173c6d..0000000000
--- a/meta/recipes-devtools/python/python-native/multilib.patch
+++ /dev/null
@@ -1,235 +0,0 @@
-Rebased for Python 2.7.9
-
-Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-
-2011/09/29
-The python recipe building was failing because python-native
-could not handle sys.lib var. sys.lib var is defined in the
-multilib patch hence added this multilib.patch for python-native
-recipe.
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-
-Index: Python-2.7.14/Include/pythonrun.h
-===================================================================
---- Python-2.7.14.orig/Include/pythonrun.h
-+++ Python-2.7.14/Include/pythonrun.h
-@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void);
- /* In their own files */
- PyAPI_FUNC(const char *) Py_GetVersion(void);
- PyAPI_FUNC(const char *) Py_GetPlatform(void);
-+PyAPI_FUNC(const char *) Py_GetLib(void);
- PyAPI_FUNC(const char *) Py_GetCopyright(void);
- PyAPI_FUNC(const char *) Py_GetCompiler(void);
- PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
-Index: Python-2.7.14/Lib/distutils/command/install.py
-===================================================================
---- Python-2.7.14.orig/Lib/distutils/command/install.py
-+++ Python-2.7.14/Lib/distutils/command/install.py
-@@ -22,6 +22,8 @@ from site import USER_BASE
- from site import USER_SITE
-
-
-+libname = sys.lib
-+
- if sys.version < "2.2":
- WINDOWS_SCHEME = {
- 'purelib': '$base',
-@@ -42,7 +44,7 @@ else:
- INSTALL_SCHEMES = {
- 'unix_prefix': {
- 'purelib': '$base/lib/python$py_version_short/site-packages',
-- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
-+ 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages',
- 'headers': '$base/include/python$py_version_short/$dist_name',
- 'scripts': '$base/bin',
- 'data' : '$base',
-Index: Python-2.7.14/Lib/pydoc.py
-===================================================================
---- Python-2.7.14.orig/Lib/pydoc.py
-+++ Python-2.7.14/Lib/pydoc.py
-@@ -375,7 +375,7 @@ class Doc:
- docmodule = docclass = docroutine = docother = docproperty = docdata = fail
-
- def getdocloc(self, object,
-- basedir=os.path.join(sys.exec_prefix, "lib",
-+ basedir=os.path.join(sys.exec_prefix, "sys.lib",
- "python"+sys.version[0:3])):
- """Return the location of module docs or None"""
-
-Index: Python-2.7.14/Lib/site.py
-===================================================================
---- Python-2.7.14.orig/Lib/site.py
-+++ Python-2.7.14/Lib/site.py
-@@ -288,13 +288,19 @@ def getsitepackages():
- if sys.platform in ('os2emx', 'riscos'):
- sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
- elif os.sep == '/':
-- sitepackages.append(os.path.join(prefix, "lib",
-+ sitepackages.append(os.path.join(prefix, sys.lib,
- "python" + sys.version[:3],
- "site-packages"))
-- sitepackages.append(os.path.join(prefix, "lib", "site-python"))
-+ if sys.lib != "lib":
-+ sitepackages.append(os.path.join(prefix, "lib",
-+ "python" + sys.version[:3],
-+ "site-packages"))
-+ sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
-+ if sys.lib != "lib":
-+ sitepackages.append(os.path.join(prefix, "lib", "site-python"))
- else:
- sitepackages.append(prefix)
-- sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
-+ sitepackages.append(os.path.join(prefix, sys.lib, "site-packages"))
- return sitepackages
-
- def addsitepackages(known_paths):
-Index: Python-2.7.14/Lib/test/test_dl.py
-===================================================================
---- Python-2.7.14.orig/Lib/test/test_dl.py
-+++ Python-2.7.14/Lib/test/test_dl.py
-@@ -4,10 +4,11 @@
- import unittest
- from test.test_support import verbose, import_module
- dl = import_module('dl', deprecated=True)
-+import sys
-
- sharedlibs = [
-- ('/usr/lib/libc.so', 'getpid'),
-- ('/lib/libc.so.6', 'getpid'),
-+ ('/usr/'+sys.lib+'/libc.so', 'getpid'),
-+ ('/'+sys.lib+'/libc.so.6', 'getpid'),
- ('/usr/bin/cygwin1.dll', 'getpid'),
- ('/usr/lib/libc.dylib', 'getpid'),
- ]
-Index: Python-2.7.14/Lib/trace.py
-===================================================================
---- Python-2.7.14.orig/Lib/trace.py
-+++ Python-2.7.14/Lib/trace.py
-@@ -754,10 +754,10 @@ def main(argv=None):
- # should I also call expanduser? (after all, could use $HOME)
-
- s = s.replace("$prefix",
-- os.path.join(sys.prefix, "lib",
-+ os.path.join(sys.prefix, sys.lib,
- "python" + sys.version[:3]))
- s = s.replace("$exec_prefix",
-- os.path.join(sys.exec_prefix, "lib",
-+ os.path.join(sys.exec_prefix, sys.lib,
- "python" + sys.version[:3]))
- s = os.path.normpath(s)
- ignore_dirs.append(s)
-Index: Python-2.7.14/Makefile.pre.in
-===================================================================
---- Python-2.7.14.orig/Makefile.pre.in
-+++ Python-2.7.14/Makefile.pre.in
-@@ -91,6 +91,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
-
- # Machine-dependent subdirectories
- MACHDEP= @MACHDEP@
-+LIB= @LIB@
-
- # Multiarch directory (may be empty)
- MULTIARCH= @MULTIARCH@
-@@ -110,7 +111,7 @@ LIBDIR= @libdir@
- MANDIR= @mandir@
- INCLUDEDIR= @includedir@
- CONFINCLUDEDIR= $(exec_prefix)/include
--SCRIPTDIR= $(prefix)/lib
-+SCRIPTDIR= $(prefix)/@LIB@
-
- # Detailed destination directories
- BINLIBDEST= $(LIBDIR)/python$(VERSION)
-@@ -644,6 +645,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
- -DEXEC_PREFIX='"$(exec_prefix)"' \
- -DVERSION='"$(VERSION)"' \
- -DVPATH='"$(VPATH)"' \
-+ -DLIB='"$(LIB)"' \
- -o $@ $(srcdir)/Modules/getpath.c
-
- Modules/python.o: $(srcdir)/Modules/python.c
-@@ -692,7 +694,7 @@ regen-ast:
- Python/compile.o Python/symtable.o Python/ast.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
-
- Python/getplatform.o: $(srcdir)/Python/getplatform.c
-- $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
-+ $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c
-
- Python/importdl.o: $(srcdir)/Python/importdl.c
- $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-Index: Python-2.7.14/Modules/getpath.c
-===================================================================
---- Python-2.7.14.orig/Modules/getpath.c
-+++ Python-2.7.14/Modules/getpath.c
-@@ -100,6 +100,13 @@
- #error "PREFIX, EXEC_PREFIX, VERSION, and VPATH must be constant defined"
- #endif
-
-+#define LIB_PYTHON LIB "/python" VERSION
-+
-+#ifndef PYTHONPATH
-+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
-+ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
-+#endif
-+
- #ifndef LANDMARK
- #define LANDMARK "os.py"
- #endif
-@@ -108,7 +115,7 @@ static char prefix[MAXPATHLEN+1];
- static char exec_prefix[MAXPATHLEN+1];
- static char progpath[MAXPATHLEN+1];
- static char *module_search_path = NULL;
--static char lib_python[] = "lib/python" VERSION;
-+static char lib_python[] = LIB_PYTHON;
-
- static void
- reduce(char *dir)
-Index: Python-2.7.14/Python/getplatform.c
-===================================================================
---- Python-2.7.14.orig/Python/getplatform.c
-+++ Python-2.7.14/Python/getplatform.c
-@@ -10,3 +10,13 @@ Py_GetPlatform(void)
- {
- return PLATFORM;
- }
-+
-+#ifndef LIB
-+#define LIB "lib"
-+#endif
-+
-+const char *
-+Py_GetLib(void)
-+{
-+ return LIB;
-+}
-Index: Python-2.7.14/Python/sysmodule.c
-===================================================================
---- Python-2.7.14.orig/Python/sysmodule.c
-+++ Python-2.7.14/Python/sysmodule.c
-@@ -1437,6 +1437,8 @@ _PySys_Init(void)
- PyString_FromString(Py_GetCopyright()));
- SET_SYS_FROM_STRING("platform",
- PyString_FromString(Py_GetPlatform()));
-+ SET_SYS_FROM_STRING("lib",
-+ PyString_FromString(Py_GetLib()));
- SET_SYS_FROM_STRING("executable",
- PyString_FromString(Py_GetProgramFullPath()));
- SET_SYS_FROM_STRING("prefix",
-Index: Python-2.7.14/configure.ac
-===================================================================
---- Python-2.7.14.orig/configure.ac
-+++ Python-2.7.14/configure.ac
-@@ -758,6 +758,11 @@ SunOS*)
- ;;
- esac
-
-+AC_SUBST(LIB)
-+AC_MSG_CHECKING(LIB)
-+LIB=`basename ${libdir}`
-+AC_MSG_RESULT($LIB)
-+
-
- AC_SUBST(LIBRARY)
- AC_MSG_CHECKING(LIBRARY)
diff --git a/meta/recipes-devtools/python/python-native/nohostlibs.patch b/meta/recipes-devtools/python/python-native/nohostlibs.patch
deleted file mode 100644
index 078060b49e..0000000000
--- a/meta/recipes-devtools/python/python-native/nohostlibs.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-2014/12/15
-Rebased for python-2.7.9
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-
-Index: Python-2.7.9/setup.py
-===================================================================
---- Python-2.7.9.orig/setup.py
-+++ Python-2.7.9/setup.py
-@@ -439,9 +439,9 @@ class PyBuildExt(build_ext):
-
- def detect_modules(self):
- # Ensure that /usr/local is always used
-- if not cross_compiling:
-- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-+ # if not cross_compiling:
-+ # add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-+ # add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
- if cross_compiling:
- self.add_gcc_paths()
- self.add_multiarch_paths()
-@@ -480,15 +480,15 @@ class PyBuildExt(build_ext):
- for directory in reversed(options.dirs):
- add_dir_to_list(dir_list, directory)
-
-- if os.path.normpath(sys.prefix) != '/usr' \
-- and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
-+ #if os.path.normpath(sys.prefix) != '/usr' \
-+ #and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
- # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
- # (PYTHONFRAMEWORK is set) to avoid # linking problems when
- # building a framework with different architectures than
- # the one that is currently installed (issue #7473)
-- add_dir_to_list(self.compiler.library_dirs,
-+ add_dir_to_list(self.compiler.library_dirs,
- sysconfig.get_config_var("LIBDIR"))
-- add_dir_to_list(self.compiler.include_dirs,
-+ add_dir_to_list(self.compiler.include_dirs,
- sysconfig.get_config_var("INCLUDEDIR"))
-
- try:
-@@ -761,8 +761,7 @@ class PyBuildExt(build_ext):
- pass # Issue 7384: Already linked against curses or tinfo.
- elif curses_library:
- readline_libs.append(curses_library)
-- elif self.compiler.find_library_file(lib_dirs +
-- ['/usr/lib/termcap'],
-+ elif self.compiler.find_library_file(lib_dirs,
- 'termcap'):
- readline_libs.append('termcap')
- exts.append( Extension('readline', ['readline.c'],
diff --git a/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch b/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch
deleted file mode 100644
index 202aaf1069..0000000000
--- a/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-On older versions of Python, sysconfig read the data from both the Makefile and
-the Python.h file generated at build time, created dictionaries with their variables
-and used those when using get_config_var(), now it uses _sysconfigdata.build_time_vars[]
-which contains information from the HOST, erroneous in our case, this patch reverts this
-behavior and uses Python.h and Makefile to get information.
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-
-Index: Python-2.7.9/Lib/distutils/sysconfig.py
-===================================================================
---- Python-2.7.9.orig/Lib/distutils/sysconfig.py
-+++ Python-2.7.9/Lib/distutils/sysconfig.py
-@@ -401,12 +401,66 @@ _config_vars = None
-
- def _init_posix():
- """Initialize the module as appropriate for POSIX systems."""
-- # _sysconfigdata is generated at build time, see the sysconfig module
-- from _sysconfigdata import build_time_vars
-- global _config_vars
-- _config_vars = {}
-- _config_vars.update(build_time_vars)
-+ g = {}
-+ # load the installed Makefile:
-+ try:
-+ filename = get_makefile_filename()
-+ parse_makefile(filename, g)
-+ except IOError, msg:
-+ my_msg = "invalid Python installation: unable to open %s" % filename
-+ if hasattr(msg, "strerror"):
-+ my_msg = my_msg + " (%s)" % msg.strerror
-+
-+ raise DistutilsPlatformError(my_msg)
-+
-+ # load the installed pyconfig.h:
-+ try:
-+ filename = get_config_h_filename()
-+ parse_config_h(file(filename), g)
-+ except IOError, msg:
-+ my_msg = "invalid Python installation: unable to open %s" % filename
-+ if hasattr(msg, "strerror"):
-+ my_msg = my_msg + " (%s)" % msg.strerror
-+
-+ raise DistutilsPlatformError(my_msg)
-+
-+ # On AIX, there are wrong paths to the linker scripts in the Makefile
-+ # -- these paths are relative to the Python source, but when installed
-+ # the scripts are in another directory.
-+ if python_build:
-+ g['LDSHARED'] = g['BLDSHARED']
-
-+ elif get_python_version() < '2.1':
-+ # The following two branches are for 1.5.2 compatibility.
-+ if sys.platform == 'aix4': # what about AIX 3.x ?
-+ # Linker script is in the config directory, not in Modules as the
-+ # Makefile says.
-+ python_lib = get_python_lib(standard_lib=1)
-+ ld_so_aix = os.path.join(python_lib, 'config', 'ld_so_aix')
-+ python_exp = os.path.join(python_lib, 'config', 'python.exp')
-+
-+ g['LDSHARED'] = "%s %s -bI:%s" % (ld_so_aix, g['CC'], python_exp)
-+
-+ elif sys.platform == 'beos':
-+ # Linker script is in the config directory. In the Makefile it is
-+ # relative to the srcdir, which after installation no longer makes
-+ # sense.
-+ python_lib = get_python_lib(standard_lib=1)
-+ linkerscript_path = string.split(g['LDSHARED'])[0]
-+ linkerscript_name = os.path.basename(linkerscript_path)
-+ linkerscript = os.path.join(python_lib, 'config',
-+ linkerscript_name)
-+
-+ # XXX this isn't the right place to do this: adding the Python
-+ # library to the link, if needed, should be in the "build_ext"
-+ # command. (It's also needed for non-MS compilers on Windows, and
-+ # it's taken care of for them by the 'build_ext.get_libraries()'
-+ # method.)
-+ g['LDSHARED'] = ("%s -L%s/lib -lpython%s" %
-+ (linkerscript, PREFIX, get_python_version()))
-+
-+ global _config_vars
-+ _config_vars = g
-
- def _init_nt():
- """Initialize the module as appropriate for NT"""
diff --git a/meta/recipes-devtools/python/python-native/unixccompiler.patch b/meta/recipes-devtools/python/python-native/unixccompiler.patch
deleted file mode 100644
index 4502829129..0000000000
--- a/meta/recipes-devtools/python/python-native/unixccompiler.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Pending
-
-The CC variable,sometimes like:"x86_64-poky-linux-gcc -m64 --sysroot=/${TMPDIR}/sysroots/qemux86-64", contains option information.
-This will lead to wrong compiler name "qemux86-64" rather than "x86_64-poky-linux-gcc" when python finding the compiler name.
-
-Signed-off-by: Mei Lei <lei.mei@intel.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: Python-2.7.2/Lib/distutils/unixccompiler.py
-===================================================================
---- Python-2.7.2.orig/Lib/distutils/unixccompiler.py 2011-11-24 13:51:10.539998722 -0800
-+++ Python-2.7.2/Lib/distutils/unixccompiler.py 2011-11-24 15:54:36.872137766 -0800
-@@ -282,7 +282,7 @@
- # this time, there's no way to determine this information from
- # the configuration data stored in the Python installation, so
- # we use this hack.
-- compiler = os.path.basename(sysconfig.get_config_var("CC"))
-+ compiler = sysconfig.get_config_var("CC")
- if sys.platform[:6] == "darwin":
- # MacOSX's linker doesn't understand the -R flag at all
- return "-L" + dir
diff --git a/meta/recipes-devtools/python/python-native_2.7.16.bb b/meta/recipes-devtools/python/python-native_2.7.16.bb
deleted file mode 100644
index b7442800d9..0000000000
--- a/meta/recipes-devtools/python/python-native_2.7.16.bb
+++ /dev/null
@@ -1,89 +0,0 @@
-require python.inc
-EXTRANATIVEPATH += "bzip2-native"
-DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native expat-native gdbm-native db-native"
-
-SRC_URI += "\
- file://05-enable-ctypes-cross-build.patch \
- file://10-distutils-fix-swig-parameter.patch \
- file://11-distutils-never-modify-shebang-line.patch \
- file://0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch \
- file://debug.patch \
- file://unixccompiler.patch \
- file://nohostlibs.patch \
- file://multilib.patch \
- file://add-md5module-support.patch \
- file://builddir.patch \
- file://parallel-makeinst-create-bindir.patch \
- file://revert_use_of_sysconfigdata.patch \
- file://0001-python-native-fix-one-do_populate_sysroot-warning.patch \
- "
-
-S = "${WORKDIR}/Python-${PV}"
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:"
-
-inherit native
-
-EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --with-system-expat=${STAGING_DIR_HOST}"
-
-EXTRA_OEMAKE = '\
- LIBC="" \
- STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \
- STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \
-'
-
-do_configure_append() {
- autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
-}
-
-# Regenerate all of the generated files
-# This ensures that pgen and friends get created during the compile phase
-do_compile_prepend() {
- oe_runmake regen-all
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
- install -d ${D}${bindir}/${PN}
- install -m 0755 Parser/pgen ${D}${bindir}/${PN}
-
- # Make sure we use /usr/bin/env python
- for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
- sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT
- done
-
- # Add a symlink to the native Python so that scripts can just invoke
- # "nativepython" and get the right one without needing absolute paths
- # (these often end up too long for the #! parser in the kernel as the
- # buffer is 128 bytes long).
- ln -s python-native/python ${D}${bindir}/nativepython
-
- # We don't want modules in ~/.local being used in preference to those
- # installed in the native sysroot, so disable user site support.
- sed -i -e 's,^\(ENABLE_USER_SITE = \).*,\1False,' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py
-}
-
-python(){
-
- # Read JSON manifest
- import json
- pythondir = d.getVar('THISDIR')
- with open(pythondir+'/python/python2-manifest.json') as manifest_file:
- manifest_str = manifest_file.read()
- json_start = manifest_str.find('# EOC') + 6
- manifest_file.seek(json_start)
- manifest_str = manifest_file.read()
- python_manifest = json.loads(manifest_str)
-
- rprovides = d.getVar('RPROVIDES').split()
-
- # Hardcoded since it cant be python-native-foo, should be python-foo-native
- pn = 'python'
-
- for key in python_manifest:
- pypackage = pn + '-' + key + '-native'
- if pypackage not in rprovides:
- rprovides.append(pypackage)
-
- d.setVar('RPROVIDES', ' '.join(rprovides))
-}
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-setuptools_41.2.0.bb b/meta/recipes-devtools/python/python-setuptools_41.2.0.bb
deleted file mode 100644
index cf9440495b..0000000000
--- a/meta/recipes-devtools/python/python-setuptools_41.2.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require python-setuptools.inc
-
-PROVIDES = "python-distribute"
-
-inherit setuptools
-
-RREPLACES_${PN} = "python-distribute"
-RPROVIDES_${PN} = "python-distribute"
-RCONFLICTS_${PN} = "python-distribute"
diff --git a/meta/recipes-devtools/python/python-six.inc b/meta/recipes-devtools/python/python-six.inc
index c706dcaf25..df97f845bc 100644
--- a/meta/recipes-devtools/python/python-six.inc
+++ b/meta/recipes-devtools/python/python-six.inc
@@ -1,11 +1,8 @@
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=83e0f622bd5ac7d575dbd83d094d69b5"
-
-SRC_URI[md5sum] = "9ae5d1feed8c0215f4ae4adcd9207fcb"
-SRC_URI[sha256sum] = "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=43cfc9e4ac0e377acfb9b76f56b8415d"
inherit pypi
diff --git a/meta/recipes-devtools/python/python-smmap.inc b/meta/recipes-devtools/python/python-smmap.inc
index 1a2259e4b8..7703722bca 100644
--- a/meta/recipes-devtools/python/python-smmap.inc
+++ b/meta/recipes-devtools/python/python-smmap.inc
@@ -4,15 +4,14 @@ help unifying memory mapped access on 32 and 64 bit systems and to help \
managing resources more efficiently."
HOMEPAGE = "http://github.com/gitpython-developers/GitPython"
SECTION = "devel/python"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
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/python.inc b/meta/recipes-devtools/python/python.inc
deleted file mode 100644
index 1462b779e9..0000000000
--- a/meta/recipes-devtools/python/python.inc
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "The Python Programming Language"
-HOMEPAGE = "http://www.python.org"
-LICENSE = "PSFv2"
-SECTION = "devel/python"
-# bump this on every change in contrib/python/generate-manifest-2.7.py
-INC_PR = "r1"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e466242989bd33c1bd2b6a526a742498"
-
-SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
- file://bpo-35907-cve-2019-9948.patch \
- file://bpo-35907-cve-2019-9948-fix.patch \
- file://bpo-36216-cve-2019-9636.patch \
- file://bpo-36216-cve-2019-9636-fix.patch \
- file://CVE-2019-9740.patch \
- file://CVE-2018-20852.patch \
- "
-
-SRC_URI[md5sum] = "30157d85a2c0479c09ea2cbe61f2aaf5"
-SRC_URI[sha256sum] = "f222ef602647eecb6853681156d32de4450a2c39f4de93bd5b20235f2e660ed7"
-
-# python recipe is actually python 2.x
-# also, exclude pre-releases for both python 2.x and 3.x
-UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>2(\.\d+)+).tar"
-
-CVE_PRODUCT = "python"
-
-PYTHON_MAJMIN = "2.7"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "\
- --with-threads \
- --with-pymalloc \
- --without-cxx-main \
- --with-signal-module \
- --enable-shared \
- --enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'yes', 'no', d)} \
- ac_cv_header_bluetooth_bluetooth_h=no ac_cv_header_bluetooth_h=no \
-"
-
-do_configure_prepend() {
- libdirleaf="$(echo ${libdir} | sed -e 's:${prefix}/::')"
- sed -i -e "s:SEDMELIBLEAF:${libdirleaf}:g" \
- ${S}/configure.ac
-}
-
-do_install_append () {
- sed -i -e 's:${HOSTTOOLS_DIR}/install:install:g' \
- -e 's:${HOSTTOOLS_DIR}/mkdir:mkdir:g' \
- ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py
-}
diff --git a/meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch b/meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch
deleted file mode 100644
index 502f849804..0000000000
--- a/meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 4cdf2e9df13c6327fcc94d53e4953005543aef3d Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 6 Apr 2016 17:43:02 +0300
-Subject: [PATCH 01/10] distutils: set the prefix to be inside staging
- directory
-
-The proper prefix is inside our staging area.
-
-Upstream-Status: Inappropriate [embedded specific]
-Signed-off-by: Michael 'Mickey' Lauer <mickey@vanille-media.de>
-Signed-off-by: Phil Blundell <philb@gnu.org>
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- Lib/distutils/sysconfig.py | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index de7da1d..f3aacf7 100644
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -75,7 +75,7 @@ def get_python_inc(plat_specific=0, prefix=None):
- sys.exec_prefix -- i.e., ignore 'plat_specific'.
- """
- if prefix is None:
-- prefix = plat_specific and EXEC_PREFIX or PREFIX
-+ prefix = os.environ['STAGING_INCDIR'].rstrip('include')
-
- if os.name == "posix":
- if python_build:
-@@ -115,12 +115,16 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
- If 'prefix' is supplied, use it instead of sys.prefix or
- sys.exec_prefix -- i.e., ignore 'plat_specific'.
- """
-+ lib_basename = os.environ['STAGING_LIBDIR'].split('/')[-1]
- if prefix is None:
-- prefix = plat_specific and EXEC_PREFIX or PREFIX
-+ if plat_specific:
-+ prefix = os.environ['STAGING_LIBDIR'].rstrip(lib_basename)
-+ else:
-+ prefix = PREFIX
-
- if os.name == "posix":
- libpython = os.path.join(prefix,
-- "lib", "python" + get_python_version())
-+ lib_basename, "python" + get_python_version())
- if standard_lib:
- return libpython
- else:
---
-2.8.0.rc3
-
diff --git a/meta/recipes-devtools/python/python/0001-python2-use-cc_basename-to-replace-CC-for-checking-c.patch b/meta/recipes-devtools/python/python/0001-python2-use-cc_basename-to-replace-CC-for-checking-c.patch
deleted file mode 100644
index 6e4f820913..0000000000
--- a/meta/recipes-devtools/python/python/0001-python2-use-cc_basename-to-replace-CC-for-checking-c.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 3f49be81e31c164654aeb10b65ebade982ca2ed8 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 22 Oct 2018 15:24:48 +0800
-Subject: [PATCH] python2: use cc_basename to replace CC for checking compiler
-
-When working path contains "clang"/"gcc"/"icc", it might be part of $CC
-because of the "--sysroot" parameter. That could cause judgement error
-about clang/gcc/icc compilers. e.g.
-When "icc" is containded in working path, below errors are reported when
-compiling python:
-x86_64-wrs-linux-gcc: error: strict: No such file or directory
-x86_64-wrs-linux-gcc: error: unrecognized command line option '-fp-model'
-
-Here use cc_basename to replace CC for checking compiler to avoid such
-kind of issue.
-
-Upstream-Status: Pending
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
-
-Patch orignally from Li Zhou, I just rework it to new version
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- configure.ac | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index db1c940..dfcd89a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -684,7 +684,7 @@ AC_MSG_RESULT($with_cxx_main)
- preset_cxx="$CXX"
- if test -z "$CXX"
- then
-- case "$CC" in
-+ case "$cc_basename" in
- gcc) AC_PATH_TOOL(CXX, [g++], [g++], [notfound]) ;;
- cc) AC_PATH_TOOL(CXX, [c++], [c++], [notfound]) ;;
- esac
-@@ -757,14 +757,14 @@ rmdir CaseSensitiveTestDir
-
- case $MACHDEP in
- bsdos*)
-- case $CC in
-+ case $cc_basename in
- gcc) CC="$CC -D_HAVE_BSDI";;
- esac;;
- esac
-
- case $ac_sys_system in
- hp*|HP*)
-- case $CC in
-+ case $cc_basename in
- cc|*/cc) CC="$CC -Ae";;
- esac;;
- SunOS*)
-@@ -1084,7 +1084,7 @@ then
- fi
-
- # Clang also needs -fwrapv
-- case $CC in
-+ case $cc_basename in
- *clang*) WRAP="-fwrapv"
- ;;
- esac
-@@ -1304,7 +1304,7 @@ yes)
- esac
-
- # ICC needs -fp-model strict or floats behave badly
--case "$CC" in
-+case "$cc_basename" in
- *icc*)
- BASECFLAGS="$BASECFLAGS -fp-model strict"
- ;;
-@@ -1443,7 +1443,7 @@ else
- fi],
- [AC_MSG_RESULT(no)])
- if test "$Py_LTO" = 'true' ; then
-- case $CC in
-+ case $cc_basename in
- *clang*)
- # Any changes made here should be reflected in the GCC+Darwin case below
- LTOFLAGS="-flto"
-@@ -1508,7 +1508,7 @@ then
- fi
- fi
- LLVM_PROF_ERR=no
--case $CC in
-+case $cc_basename in
- *clang*)
- # Any changes made here should be reflected in the GCC+Darwin case below
- PGO_PROF_GEN_FLAG="-fprofile-instr-generate"
-@@ -2322,7 +2322,7 @@ then
- then CCSHARED="-fPIC"
- else CCSHARED="-Kpic -belf"
- fi;;
-- IRIX*/6*) case $CC in
-+ IRIX*/6*) case $cc_basename in
- *gcc*) CCSHARED="-shared";;
- *) CCSHARED="";;
- esac;;
-@@ -2366,7 +2366,7 @@ then
- then
- LINKFORSHARED="-Wl,--export-dynamic"
- fi;;
-- SunOS/5*) case $CC in
-+ SunOS/5*) case $cc_basename in
- *gcc*)
- if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
- then
---
-2.7.4
-
diff --git a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
deleted file mode 100644
index e795a74b91..0000000000
--- a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-We need to ensure our host tools get run during build, not the freshly
-built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Michael 'Mickey' Lauer <mickey@vanille-media.de>
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
-Rebased for python-2.7.9
-Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-
-Rebased for python-2.7.14
-Signed-off-by: Derek Straka <derek@asterius.io>
-
-Index: Python-2.7.13/Makefile.pre.in
-===================================================================
---- Python-2.7.13.orig/Makefile.pre.in
-+++ Python-2.7.13/Makefile.pre.in
-@@ -245,6 +245,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
- ##########################################################################
- # Parser
- PGEN= Parser/pgen$(EXE)
-+HOSTPGEN= $(PGEN)$(EXE)
-
- PSRCS= \
- Parser/acceler.c \
-@@ -512,7 +513,7 @@ $(BUILDPYTHON): Modules/python.o $(LIBRA
- $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-
- platform: $(BUILDPYTHON) pybuilddir.txt
-- $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
-+ $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
-
- # Create build directory and generate the sysconfig build-time data there.
- # pybuilddir.txt contains the name of the build dir and is used for
-@@ -663,7 +663,7 @@
- # Regenerate Include/graminit.h and Python/graminit.c
- # from Grammar/Grammar using pgen
- @$(MKDIR_P) Include
-- $(PGEN) $(srcdir)/Grammar/Grammar \
-+ $(HOSTPGEN) $(srcdir)/Grammar/Grammar \
- $(srcdir)/Include/graminit.h \
- $(srcdir)/Python/graminit.c
-
-@@ -1121,27 +1122,27 @@ libinstall: build_all $(srcdir)/Lib/$(PL
- $(DESTDIR)$(LIBDEST)/distutils/tests ; \
- fi
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
-+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
-+ $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
-+ $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
-
- # Create the PLATDIR source directory, if one wasn't distributed..
- $(srcdir)/Lib/$(PLATDIR):
-Index: Python-2.7.13/setup.py
-===================================================================
---- Python-2.7.13.orig/setup.py
-+++ Python-2.7.13/setup.py
-@@ -350,6 +350,7 @@ class PyBuildExt(build_ext):
- self.failed.append(ext.name)
- self.announce('*** WARNING: renaming "%s" since importing it'
- ' failed: %s' % (ext.name, why), level=3)
-+ return
- assert not self.inplace
- basename, tail = os.path.splitext(ext_filename)
- newname = basename + "_failed" + tail
-@@ -574,6 +575,9 @@ class PyBuildExt(build_ext):
-
- # XXX Omitted modules: gl, pure, dl, SGI-specific modules
-
-+ lib_dirs = [ os.getenv("STAGING_LIBDIR"), os.getenv("STAGING_BASELIBDIR") ]
-+ inc_dirs = [ os.getenv("STAGING_INCDIR") ]
-+
- #
- # The following modules are all pretty straightforward, and compile
- # on pretty much any POSIXish platform.
diff --git a/meta/recipes-devtools/python/python/03-fix-tkinter-detection.patch b/meta/recipes-devtools/python/python/03-fix-tkinter-detection.patch
deleted file mode 100644
index 650ceb5951..0000000000
--- a/meta/recipes-devtools/python/python/03-fix-tkinter-detection.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-We need to supply STAGING_INCDIR here, otherwise the Tk headers
-will not be found.
-
-Signed-off-by: Michael 'Mickey' Lauer <mickey@vanille.de>
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
-Rebased for python-2.7.9
-
-diff --git a/setup.py b/setup.py
-index 8fe1fb8..67eda74 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1892,7 +1892,7 @@ class PyBuildExt(build_ext):
- dotversion = dotversion[:-1] + '.' + dotversion[-1]
- tcl_include_sub = []
- tk_include_sub = []
-- for dir in inc_dirs:
-+ for dir in [os.getenv("STAGING_INCDIR")]:
- tcl_include_sub += [dir + os.sep + "tcl" + dotversion]
- tk_include_sub += [dir + os.sep + "tk" + dotversion]
- tk_include_sub += tcl_include_sub
-@@ -1911,22 +1911,6 @@ class PyBuildExt(build_ext):
- if dir not in include_dirs:
- include_dirs.append(dir)
-
-- # Check for various platform-specific directories
-- if host_platform == 'sunos5':
-- include_dirs.append('/usr/openwin/include')
-- added_lib_dirs.append('/usr/openwin/lib')
-- elif os.path.exists('/usr/X11R6/include'):
-- include_dirs.append('/usr/X11R6/include')
-- added_lib_dirs.append('/usr/X11R6/lib64')
-- added_lib_dirs.append('/usr/X11R6/lib')
-- elif os.path.exists('/usr/X11R5/include'):
-- include_dirs.append('/usr/X11R5/include')
-- added_lib_dirs.append('/usr/X11R5/lib')
-- else:
-- # Assume default location for X11
-- include_dirs.append('/usr/X11/include')
-- added_lib_dirs.append('/usr/X11/lib')
--
- # If Cygwin, then verify that X is installed before proceeding
- if host_platform == 'cygwin':
- x11_inc = find_file('X11/Xlib.h', [], include_dirs)
diff --git a/meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch b/meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch
deleted file mode 100644
index 5cc8742462..0000000000
--- a/meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Rebased for python 2.7.9
-
-Upstream-Status: Inappropriate [embedded specific]
-
-# CTypes need to know the actual host we are building on.
-# Signed-Off: Michael Dietrich <mdt@emdete.de>
-
-Index: Python-2.7.9/setup.py
-===================================================================
---- Python-2.7.9.orig/setup.py
-+++ Python-2.7.9/setup.py
-@@ -2028,12 +2028,12 @@ class PyBuildExt(build_ext):
-
- # Pass empty CFLAGS because we'll just append the resulting
- # CFLAGS to Python's; -g or -O2 is to be avoided.
-- cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \
-- % (ffi_builddir, ffi_srcdir, " ".join(config_args))
-+ cmd = "(cd %s && autoconf -W cross) && (cd %s && env CFLAGS='' '%s/configure' %s)" \
-+ % (ffi_srcdir, ffi_builddir, ffi_srcdir, " ".join(config_args))
-
- res = os.system(cmd)
- if res or not os.path.exists(ffi_configfile):
-- print "Failed to configure _ctypes module"
-+ print "Failed to configure _ctypes module (res=%d) or missing conffile=%s" % ( res, ffi_configfile )
- return False
-
- fficonfig = {}
diff --git a/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch b/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch
deleted file mode 100644
index 435b319013..0000000000
--- a/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Pending
-
-The poison directories patch has detected library path issue while
-compiling the python in cross environment, as seen bellow.
-
-warning: library search path "/usr/lib/termcap" is unsafe for cross-compilation
-
-This Patch fixes this issue in the python build environment.
-11 Oct 2010
-Nitin A Kamble <nitin.a.kamble@intel.com>
-
-2011/09/29
-Rebased for python 2.7.2
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
-diff --git a/setup.py b/setup.py
-index 67eda74..59c537e 100644
---- a/setup.py
-+++ b/setup.py
-@@ -761,12 +761,10 @@ class PyBuildExt(build_ext):
- pass # Issue 7384: Already linked against curses or tinfo.
- elif curses_library:
- readline_libs.append(curses_library)
-- elif self.compiler.find_library_file(lib_dirs +
-- ['/usr/lib/termcap'],
-+ elif self.compiler.find_library_file(lib_dirs,
- 'termcap'):
- readline_libs.append('termcap')
- exts.append( Extension('readline', ['readline.c'],
-- library_dirs=['/usr/lib/termcap'],
- extra_link_args=readline_extra_link_args,
- libraries=readline_libs) )
- else:
diff --git a/meta/recipes-devtools/python/python/CVE-2018-20852.patch b/meta/recipes-devtools/python/python/CVE-2018-20852.patch
deleted file mode 100644
index 23c784a210..0000000000
--- a/meta/recipes-devtools/python/python/CVE-2018-20852.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 979daae300916adb399ab5b51410b6ebd0888f13 Mon Sep 17 00:00:00 2001
-From: Xtreak <tir.karthi@gmail.com>
-Date: Sat, 15 Jun 2019 20:59:43 +0530
-Subject: [PATCH] [2.7] bpo-35121: prefix dot in domain for proper subdomain
- validation (GH-10258) (GH-13426)
-
-This is a manual backport of ca7fe5063593958e5efdf90f068582837f07bd14 since 2.7 has `http.cookiejar` in `cookielib`
-
-
-https://bugs.python.org/issue35121
-CVE: CVE-2018-20852
-Upstream-Status: Backport [https://github.com/python/cpython/pull/13426]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- Lib/cookielib.py | 13 ++++++--
- Lib/test/test_cookielib.py | 30 +++++++++++++++++++
- .../2019-05-20-00-35-12.bpo-35121.RRi-HU.rst | 4 +++
- 3 files changed, 45 insertions(+), 2 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Security/2019-05-20-00-35-12.bpo-35121.RRi-HU.rst
-
-diff --git a/Lib/cookielib.py b/Lib/cookielib.py
-index 2dd7c48728e0..0b471a42f296 100644
---- a/Lib/cookielib.py
-+++ b/Lib/cookielib.py
-@@ -1139,6 +1139,11 @@ def return_ok_domain(self, cookie, request):
- req_host, erhn = eff_request_host(request)
- domain = cookie.domain
-
-+ if domain and not domain.startswith("."):
-+ dotdomain = "." + domain
-+ else:
-+ dotdomain = domain
-+
- # strict check of non-domain cookies: Mozilla does this, MSIE5 doesn't
- if (cookie.version == 0 and
- (self.strict_ns_domain & self.DomainStrictNonDomain) and
-@@ -1151,7 +1156,7 @@ def return_ok_domain(self, cookie, request):
- _debug(" effective request-host name %s does not domain-match "
- "RFC 2965 cookie domain %s", erhn, domain)
- return False
-- if cookie.version == 0 and not ("."+erhn).endswith(domain):
-+ if cookie.version == 0 and not ("."+erhn).endswith(dotdomain):
- _debug(" request-host %s does not match Netscape cookie domain "
- "%s", req_host, domain)
- return False
-@@ -1165,7 +1170,11 @@ def domain_return_ok(self, domain, request):
- req_host = "."+req_host
- if not erhn.startswith("."):
- erhn = "."+erhn
-- if not (req_host.endswith(domain) or erhn.endswith(domain)):
-+ if domain and not domain.startswith("."):
-+ dotdomain = "." + domain
-+ else:
-+ dotdomain = domain
-+ if not (req_host.endswith(dotdomain) or erhn.endswith(dotdomain)):
- #_debug(" request domain %s does not match cookie domain %s",
- # req_host, domain)
- return False
-diff --git a/Lib/test/test_cookielib.py b/Lib/test/test_cookielib.py
-index f2dd9727d137..7f7ff614d61d 100644
---- a/Lib/test/test_cookielib.py
-+++ b/Lib/test/test_cookielib.py
-@@ -368,6 +368,7 @@ def test_domain_return_ok(self):
- ("http://foo.bar.com/", ".foo.bar.com", True),
- ("http://foo.bar.com/", "foo.bar.com", True),
- ("http://foo.bar.com/", ".bar.com", True),
-+ ("http://foo.bar.com/", "bar.com", True),
- ("http://foo.bar.com/", "com", True),
- ("http://foo.com/", "rhubarb.foo.com", False),
- ("http://foo.com/", ".foo.com", True),
-@@ -378,6 +379,8 @@ def test_domain_return_ok(self):
- ("http://foo/", "foo", True),
- ("http://foo/", "foo.local", True),
- ("http://foo/", ".local", True),
-+ ("http://barfoo.com", ".foo.com", False),
-+ ("http://barfoo.com", "foo.com", False),
- ]:
- request = urllib2.Request(url)
- r = pol.domain_return_ok(domain, request)
-@@ -938,6 +941,33 @@ def test_domain_block(self):
- c.add_cookie_header(req)
- self.assertFalse(req.has_header("Cookie"))
-
-+ c.clear()
-+
-+ pol.set_blocked_domains([])
-+ req = Request("http://acme.com/")
-+ res = FakeResponse(headers, "http://acme.com/")
-+ cookies = c.make_cookies(res, req)
-+ c.extract_cookies(res, req)
-+ self.assertEqual(len(c), 1)
-+
-+ req = Request("http://acme.com/")
-+ c.add_cookie_header(req)
-+ self.assertTrue(req.has_header("Cookie"))
-+
-+ req = Request("http://badacme.com/")
-+ c.add_cookie_header(req)
-+ self.assertFalse(pol.return_ok(cookies[0], req))
-+ self.assertFalse(req.has_header("Cookie"))
-+
-+ p = pol.set_blocked_domains(["acme.com"])
-+ req = Request("http://acme.com/")
-+ c.add_cookie_header(req)
-+ self.assertFalse(req.has_header("Cookie"))
-+
-+ req = Request("http://badacme.com/")
-+ c.add_cookie_header(req)
-+ self.assertFalse(req.has_header("Cookie"))
-+
- def test_secure(self):
- from cookielib import CookieJar, DefaultCookiePolicy
-
-diff --git a/Misc/NEWS.d/next/Security/2019-05-20-00-35-12.bpo-35121.RRi-HU.rst b/Misc/NEWS.d/next/Security/2019-05-20-00-35-12.bpo-35121.RRi-HU.rst
-new file mode 100644
-index 000000000000..77251806163b
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-05-20-00-35-12.bpo-35121.RRi-HU.rst
-@@ -0,0 +1,4 @@
-+Don't send cookies of domain A without Domain attribute to domain B when
-+domain A is a suffix match of domain B while using a cookiejar with
-+:class:`cookielib.DefaultCookiePolicy` policy. Patch by Karthikeyan
-+Singaravelan.
diff --git a/meta/recipes-devtools/python/python/CVE-2019-9740.patch b/meta/recipes-devtools/python/python/CVE-2019-9740.patch
deleted file mode 100644
index 95f43e0387..0000000000
--- a/meta/recipes-devtools/python/python/CVE-2019-9740.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-From bb8071a4cae5ab3fe321481dd3d73662ffb26052 Mon Sep 17 00:00:00 2001
-From: Victor Stinner <victor.stinner@gmail.com>
-Date: Tue, 21 May 2019 15:12:33 +0200
-Subject: [PATCH] bpo-30458: Disallow control chars in http URLs (GH-12755)
- (GH-13154) (GH-13315)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Disallow control chars in http URLs in urllib2.urlopen. This
-addresses a potential security problem for applications that do not
-sanity check their URLs where http request headers could be injected.
-
-Disable https related urllib tests on a build without ssl (GH-13032)
-These tests require an SSL enabled build. Skip these tests when
-python is built without SSL to fix test failures.
-
-Use httplib.InvalidURL instead of ValueError as the new error case's
-exception. (GH-13044)
-
-Backport Co-Authored-By: Miro HronÄok <miro@hroncok.cz>
-
-(cherry picked from commit 7e200e0763f5b71c199aaf98bd5588f291585619)
-
-Notes on backport to Python 2.7:
-
-* test_urllib tests urllib.urlopen() which quotes the URL and so is
- not vulerable to HTTP Header Injection.
-* Add tests to test_urllib2 on urllib2.urlopen().
-* Reject non-ASCII characters: range 0x80-0xff.
-
-Upstream-Status: Backport
-CVE: CVE-2019-9740
-CVE: CVE-2019-9947
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- Lib/httplib.py | 16 ++++++
- Lib/test/test_urllib.py | 25 +++++++++
- Lib/test/test_urllib2.py | 51 ++++++++++++++++++-
- Lib/test/test_xmlrpc.py | 8 ++-
- .../2019-04-10-08-53-30.bpo-30458.51E-DA.rst | 1 +
- 5 files changed, 99 insertions(+), 2 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-
-diff --git a/Lib/httplib.py b/Lib/httplib.py
-index 60a8fb4e355f..1b41c346e090 100644
---- a/Lib/httplib.py
-+++ b/Lib/httplib.py
-@@ -247,6 +247,16 @@
- _is_legal_header_name = re.compile(r'\A[^:\s][^:\r\n]*\Z').match
- _is_illegal_header_value = re.compile(r'\n(?![ \t])|\r(?![ \t\n])').search
-
-+# These characters are not allowed within HTTP URL paths.
-+# See https://tools.ietf.org/html/rfc3986#section-3.3 and the
-+# https://tools.ietf.org/html/rfc3986#appendix-A pchar definition.
-+# Prevents CVE-2019-9740. Includes control characters such as \r\n.
-+# Restrict non-ASCII characters above \x7f (0x80-0xff).
-+_contains_disallowed_url_pchar_re = re.compile('[\x00-\x20\x7f-\xff]')
-+# Arguably only these _should_ allowed:
-+# _is_allowed_url_pchars_re = re.compile(r"^[/!$&'()*+,;=:@%a-zA-Z0-9._~-]+$")
-+# We are more lenient for assumed real world compatibility purposes.
-+
- # We always set the Content-Length header for these methods because some
- # servers will otherwise respond with a 411
- _METHODS_EXPECTING_BODY = {'PATCH', 'POST', 'PUT'}
-@@ -927,6 +937,12 @@ def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
- self._method = method
- if not url:
- url = '/'
-+ # Prevent CVE-2019-9740.
-+ match = _contains_disallowed_url_pchar_re.search(url)
-+ if match:
-+ raise InvalidURL("URL can't contain control characters. %r "
-+ "(found at least %r)"
-+ % (url, match.group()))
- hdr = '%s %s %s' % (method, url, self._http_vsn_str)
-
- self._output(hdr)
-diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
-index 1ce9201c0693..d7778d4194f3 100644
---- a/Lib/test/test_urllib.py
-+++ b/Lib/test/test_urllib.py
-@@ -257,6 +257,31 @@ def test_url_fragment(self):
- finally:
- self.unfakehttp()
-
-+ def test_url_with_control_char_rejected(self):
-+ for char_no in range(0, 0x21) + range(0x7f, 0x100):
-+ char = chr(char_no)
-+ schemeless_url = "//localhost:7777/test%s/" % char
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ try:
-+ # urllib quotes the URL so there is no injection.
-+ resp = urllib.urlopen("http:" + schemeless_url)
-+ self.assertNotIn(char, resp.geturl())
-+ finally:
-+ self.unfakehttp()
-+
-+ def test_url_with_newline_header_injection_rejected(self):
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ host = "localhost:7777?a=1 HTTP/1.1\r\nX-injected: header\r\nTEST: 123"
-+ schemeless_url = "//" + host + ":8080/test/?test=a"
-+ try:
-+ # urllib quotes the URL so there is no injection.
-+ resp = urllib.urlopen("http:" + schemeless_url)
-+ self.assertNotIn(' ', resp.geturl())
-+ self.assertNotIn('\r', resp.geturl())
-+ self.assertNotIn('\n', resp.geturl())
-+ finally:
-+ self.unfakehttp()
-+
- def test_read_bogus(self):
- # urlopen() should raise IOError for many error codes.
- self.fakehttp('''HTTP/1.1 401 Authentication Required
-diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
-index 6d24d5ddf83c..9531818e16b2 100644
---- a/Lib/test/test_urllib2.py
-+++ b/Lib/test/test_urllib2.py
-@@ -15,6 +15,9 @@
- except ImportError:
- ssl = None
-
-+from test.test_urllib import FakeHTTPMixin
-+
-+
- # XXX
- # Request
- # CacheFTPHandler (hard to write)
-@@ -1262,7 +1265,7 @@ def _test_basic_auth(self, opener, auth_handler, auth_header,
- self.assertEqual(len(http_handler.requests), 1)
- self.assertFalse(http_handler.requests[0].has_header(auth_header))
-
--class MiscTests(unittest.TestCase):
-+class MiscTests(unittest.TestCase, FakeHTTPMixin):
-
- def test_build_opener(self):
- class MyHTTPHandler(urllib2.HTTPHandler): pass
-@@ -1317,6 +1320,52 @@ def test_unsupported_algorithm(self):
- "Unsupported digest authentication algorithm 'invalid'"
- )
-
-+ @unittest.skipUnless(ssl, "ssl module required")
-+ def test_url_with_control_char_rejected(self):
-+ for char_no in range(0, 0x21) + range(0x7f, 0x100):
-+ char = chr(char_no)
-+ schemeless_url = "//localhost:7777/test%s/" % char
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ try:
-+ # We explicitly test urllib.request.urlopen() instead of the top
-+ # level 'def urlopen()' function defined in this... (quite ugly)
-+ # test suite. They use different url opening codepaths. Plain
-+ # urlopen uses FancyURLOpener which goes via a codepath that
-+ # calls urllib.parse.quote() on the URL which makes all of the
-+ # above attempts at injection within the url _path_ safe.
-+ escaped_char_repr = repr(char).replace('\\', r'\\')
-+ InvalidURL = httplib.InvalidURL
-+ with self.assertRaisesRegexp(
-+ InvalidURL, "contain control.*" + escaped_char_repr):
-+ urllib2.urlopen("http:" + schemeless_url)
-+ with self.assertRaisesRegexp(
-+ InvalidURL, "contain control.*" + escaped_char_repr):
-+ urllib2.urlopen("https:" + schemeless_url)
-+ finally:
-+ self.unfakehttp()
-+
-+ @unittest.skipUnless(ssl, "ssl module required")
-+ def test_url_with_newline_header_injection_rejected(self):
-+ self.fakehttp(b"HTTP/1.1 200 OK\r\n\r\nHello.")
-+ host = "localhost:7777?a=1 HTTP/1.1\r\nX-injected: header\r\nTEST: 123"
-+ schemeless_url = "//" + host + ":8080/test/?test=a"
-+ try:
-+ # We explicitly test urllib2.urlopen() instead of the top
-+ # level 'def urlopen()' function defined in this... (quite ugly)
-+ # test suite. They use different url opening codepaths. Plain
-+ # urlopen uses FancyURLOpener which goes via a codepath that
-+ # calls urllib.parse.quote() on the URL which makes all of the
-+ # above attempts at injection within the url _path_ safe.
-+ InvalidURL = httplib.InvalidURL
-+ with self.assertRaisesRegexp(
-+ InvalidURL, r"contain control.*\\r.*(found at least . .)"):
-+ urllib2.urlopen("http:" + schemeless_url)
-+ with self.assertRaisesRegexp(InvalidURL, r"contain control.*\\n"):
-+ urllib2.urlopen("https:" + schemeless_url)
-+ finally:
-+ self.unfakehttp()
-+
-+
-
- class RequestTests(unittest.TestCase):
-
-diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
-index 36b3be67fd6b..90ccb30716ff 100644
---- a/Lib/test/test_xmlrpc.py
-+++ b/Lib/test/test_xmlrpc.py
-@@ -659,7 +659,13 @@ def test_dotted_attribute(self):
- def test_partial_post(self):
- # Check that a partial POST doesn't make the server loop: issue #14001.
- conn = httplib.HTTPConnection(ADDR, PORT)
-- conn.request('POST', '/RPC2 HTTP/1.0\r\nContent-Length: 100\r\n\r\nbye')
-+ conn.send('POST /RPC2 HTTP/1.0\r\n'
-+ 'Content-Length: 100\r\n\r\n'
-+ 'bye HTTP/1.1\r\n'
-+ 'Host: %s:%s\r\n'
-+ 'Accept-Encoding: identity\r\n'
-+ 'Content-Length: 0\r\n\r\n'
-+ % (ADDR, PORT))
- conn.close()
-
- class SimpleServerEncodingTestCase(BaseServerTestCase):
-diff --git a/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst b/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-new file mode 100644
-index 000000000000..47cb899df1af
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-04-10-08-53-30.bpo-30458.51E-DA.rst
-@@ -0,0 +1 @@
-+Address CVE-2019-9740 by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause an httplib.InvalidURL exception to be raised.
diff --git a/meta/recipes-devtools/python/python/add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch b/meta/recipes-devtools/python/python/add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch
deleted file mode 100644
index 329734064b..0000000000
--- a/meta/recipes-devtools/python/python/add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-configure.ac: add CROSSPYTHONPATH into PYTHONPATH for PYTHON_FOR_BUILD
-
-When building x86->x86 the system will try to execute .so and related items
-from the default PYTHONPATH. This will fail if the target CPU contains
-instructions that the host CPU does not have, add CROSSPYTHONPATH
-into PYTHONPATH so we can prepend the list to find correct libs.
-
-Upstream-Status: Inappropriate [OE-Core integration specific]
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: Python-2.7.14/configure.ac
-===================================================================
---- Python-2.7.14.orig/configure.ac
-+++ Python-2.7.14/configure.ac
-@@ -36,7 +36,7 @@ if test "$cross_compiling" = yes; then
- AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
- fi
- AC_MSG_RESULT($interp)
-- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
-+ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(CROSSPYTHONPATH):$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp
- fi
- elif test "$cross_compiling" = maybe; then
- AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
diff --git a/meta/recipes-devtools/python/python/add-md5module-support.patch b/meta/recipes-devtools/python/python/add-md5module-support.patch
deleted file mode 100644
index 33fea77554..0000000000
--- a/meta/recipes-devtools/python/python/add-md5module-support.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-Index: Python-2.7.2/Modules/Setup.dist
-===================================================================
---- Python-2.7.2.orig/Modules/Setup.dist 2011-06-11 08:46:26.000000000 -0700
-+++ Python-2.7.2/Modules/Setup.dist 2011-12-27 15:51:41.244623219 -0800
-@@ -248,7 +248,7 @@
- # Message-Digest Algorithm, described in RFC 1321. The necessary files
- # md5.c and md5.h are included here.
-
--#_md5 md5module.c md5.c
-+_md5 md5module.c md5.c
-
-
- # The _sha module implements the SHA checksum algorithms.
diff --git a/meta/recipes-devtools/python/python/avoid_warning_about_tkinter.patch b/meta/recipes-devtools/python/python/avoid_warning_about_tkinter.patch
deleted file mode 100644
index 287095f615..0000000000
--- a/meta/recipes-devtools/python/python/avoid_warning_about_tkinter.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-_tkinter module needs tk module along with tcl. tk is not yet integrated
-in yocto so we skip the check for this module.
-Avoid a warning by not adding this module to missing variable.
-
-Upstream-Status: Inappropriate [distribution]
-
-Also simply disable the tk module since its not in DEPENDS.
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-Index: Python-2.7.13/setup.py
-===================================================================
---- Python-2.7.13.orig/setup.py
-+++ Python-2.7.13/setup.py
-@@ -1783,10 +1783,12 @@ class PyBuildExt(build_ext):
- self.extensions.extend(exts)
-
- # Call the method for detecting whether _tkinter can be compiled
-- self.detect_tkinter(inc_dirs, lib_dirs)
-+ # self.detect_tkinter(inc_dirs, lib_dirs)
-
-- if '_tkinter' not in [e.name for e in self.extensions]:
-- missing.append('_tkinter')
-+ # tkinter module will not be avalaible as yocto
-+ # doesn't have tk integrated (yet)
-+ #if '_tkinter' not in [e.name for e in self.extensions]:
-+ # missing.append('_tkinter')
-
- ## # Uncomment these lines if you want to play with xxmodule.c
- ## ext = Extension('xx', ['xxmodule.c'])
diff --git a/meta/recipes-devtools/python/python/avoid_warning_for_sunos_specific_module.patch b/meta/recipes-devtools/python/python/avoid_warning_for_sunos_specific_module.patch
deleted file mode 100644
index 8ba5823014..0000000000
--- a/meta/recipes-devtools/python/python/avoid_warning_for_sunos_specific_module.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-sunaudiodev module is sunos specific so we avoid a warning by not
-adding this module to missing variable.
-
-Upstream-Status: Inappropriate [distribution]
-
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-Index: Python-2.7.13/setup.py
-===================================================================
---- Python-2.7.13.orig/setup.py
-+++ Python-2.7.13/setup.py
-@@ -1671,8 +1671,9 @@ class PyBuildExt(build_ext):
- if host_platform == 'sunos5':
- # SunOS specific modules
- exts.append( Extension('sunaudiodev', ['sunaudiodev.c']) )
-- else:
-- missing.append('sunaudiodev')
-+ # If platform is not sunos warning is useless
-+ #else:
-+ # missing.append('sunaudiodev')
-
- if host_platform == 'darwin':
- # _scproxy
diff --git a/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch b/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch
deleted file mode 100644
index b267237018..0000000000
--- a/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 179a5f75f1121dab271fe8f90eb35145f9dcbbda Mon Sep 17 00:00:00 2001
-From: Sihoon Lee <push0ebp@gmail.com>
-Date: Fri, 17 May 2019 02:41:06 +0900
-Subject: [PATCH] Update test_urllib.py and urllib.py\nchange assertEqual into
- assertRasies in DummyURLopener test, and simplify mitigation
-
-Upstream-Status: Submitted https://github.com/python/cpython/pull/11842
-
-CVE: CVE-2019-9948
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- Lib/test/test_urllib.py | 11 +++--------
- Lib/urllib.py | 4 ++--
- 2 files changed, 5 insertions(+), 10 deletions(-)
-
-diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
-index e5f210e62a18..1e23dfb0bb16 100644
---- a/Lib/test/test_urllib.py
-+++ b/Lib/test/test_urllib.py
-@@ -1027,14 +1027,9 @@ def test_local_file_open(self):
- class DummyURLopener(urllib.URLopener):
- def open_local_file(self, url):
- return url
-- self.assertEqual(DummyURLopener().open(
-- 'local-file://example'), '//example')
-- self.assertEqual(DummyURLopener().open(
-- 'local_file://example'), '//example')
-- self.assertRaises(IOError, urllib.urlopen,
-- 'local-file://example')
-- self.assertRaises(IOError, urllib.urlopen,
-- 'local_file://example')
-+ for url in ('local_file://example', 'local-file://example'):
-+ self.assertRaises(IOError, DummyURLopener().open, url)
-+ self.assertRaises(IOError, urllib.urlopen, url)
-
- # Just commented them out.
- # Can't really tell why keep failing in windows and sparc.
-diff --git a/Lib/urllib.py b/Lib/urllib.py
-index a24e9a5c68fb..39b834054e9e 100644
---- a/Lib/urllib.py
-+++ b/Lib/urllib.py
-@@ -203,10 +203,10 @@ def open(self, fullurl, data=None):
- name = 'open_' + urltype
- self.type = urltype
- name = name.replace('-', '_')
--
-+
- # bpo-35907: # disallow the file reading with the type not allowed
- if not hasattr(self, name) or \
-- (self == _urlopener and name == 'open_local_file'):
-+ getattr(self, name) == self.open_local_file:
- if proxy:
- return self.open_unknown_proxy(proxy, fullurl, data)
- else:
diff --git a/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch b/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch
deleted file mode 100644
index f4c225d2fc..0000000000
--- a/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 8f99cc799e4393bf1112b9395b2342f81b3f45ef Mon Sep 17 00:00:00 2001
-From: push0ebp <push0ebp@shl-MacBook-Pro.local>
-Date: Thu, 14 Feb 2019 02:05:46 +0900
-Subject: [PATCH] bpo-35907: Avoid file reading as disallowing the unnecessary
- URL scheme in urllib
-
-Upstream-Status: Submitted https://github.com/python/cpython/pull/11842
-
-CVE: CVE-2019-9948
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- Lib/test/test_urllib.py | 12 ++++++++++++
- Lib/urllib.py | 5 ++++-
- 2 files changed, 16 insertions(+), 1 deletion(-)
-
-diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
-index 1ce9201c0693..e5f210e62a18 100644
---- a/Lib/test/test_urllib.py
-+++ b/Lib/test/test_urllib.py
-@@ -1023,6 +1023,18 @@ def open_spam(self, url):
- "spam://c:|windows%/:=&?~#+!$,;'@()*[]|/path/"),
- "//c:|windows%/:=&?~#+!$,;'@()*[]|/path/")
-
-+ def test_local_file_open(self):
-+ class DummyURLopener(urllib.URLopener):
-+ def open_local_file(self, url):
-+ return url
-+ self.assertEqual(DummyURLopener().open(
-+ 'local-file://example'), '//example')
-+ self.assertEqual(DummyURLopener().open(
-+ 'local_file://example'), '//example')
-+ self.assertRaises(IOError, urllib.urlopen,
-+ 'local-file://example')
-+ self.assertRaises(IOError, urllib.urlopen,
-+ 'local_file://example')
-
- # Just commented them out.
- # Can't really tell why keep failing in windows and sparc.
-diff --git a/Lib/urllib.py b/Lib/urllib.py
-index d85504a5cb7e..a24e9a5c68fb 100644
---- a/Lib/urllib.py
-+++ b/Lib/urllib.py
-@@ -203,7 +203,10 @@ def open(self, fullurl, data=None):
- name = 'open_' + urltype
- self.type = urltype
- name = name.replace('-', '_')
-- if not hasattr(self, name):
-+
-+ # bpo-35907: # disallow the file reading with the type not allowed
-+ if not hasattr(self, name) or \
-+ (self == _urlopener and name == 'open_local_file'):
- if proxy:
- return self.open_unknown_proxy(proxy, fullurl, data)
- else:
diff --git a/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch b/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch
deleted file mode 100644
index 2ce4d2cde7..0000000000
--- a/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 06b5ee585d6e76bdbb4002f642d864d860cbbd2b Mon Sep 17 00:00:00 2001
-From: Steve Dower <steve.dower@python.org>
-Date: Tue, 12 Mar 2019 08:23:33 -0700
-Subject: [PATCH] bpo-36216: Only print test messages when verbose
-
-CVE: CVE-2019-9636
-
-Upstream-Status: Backport https://github.com/python/cpython/pull/12291/commits/06b5ee585d6e76bdbb4002f642d864d860cbbd2b
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- Lib/test/test_urlparse.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
-index 73b0228ea8e3..1830d0b28688 100644
---- a/Lib/test/test_urlparse.py
-+++ b/Lib/test/test_urlparse.py
-@@ -644,7 +644,8 @@ def test_urlsplit_normalization(self):
- for scheme in [u"http", u"https", u"ftp"]:
- for c in denorm_chars:
- url = u"{}://netloc{}false.netloc/path".format(scheme, c)
-- print "Checking %r" % url
-+ if test_support.verbose:
-+ print "Checking %r" % url
- with self.assertRaises(ValueError):
- urlparse.urlsplit(url)
-
diff --git a/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch b/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch
deleted file mode 100644
index 352b13ba9b..0000000000
--- a/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 3e3669c9c41a27e1466e2c28b3906e3dd0ce3e7e Mon Sep 17 00:00:00 2001
-From: Steve Dower <steve.dower@python.org>
-Date: Thu, 7 Mar 2019 08:25:22 -0800
-Subject: [PATCH] bpo-36216: Add check for characters in netloc that normalize
- to separators (GH-12201)
-
-CVE: CVE-2019-9636
-
-Upstream-Status: Backport https://github.com/python/cpython/pull/12216/commits/3e3669c9c41a27e1466e2c28b3906e3dd0ce3e7e
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- Doc/library/urlparse.rst | 20 ++++++++++++++++
- Lib/test/test_urlparse.py | 24 +++++++++++++++++++
- Lib/urlparse.py | 17 +++++++++++++
- .../2019-03-06-09-38-40.bpo-36216.6q1m4a.rst | 3 +++
- 4 files changed, 64 insertions(+)
- create mode 100644 Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-
-diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
-index 4e1ded73c266..73b0228ea8e3 100644
---- a/Lib/test/test_urlparse.py
-+++ b/Lib/test/test_urlparse.py
-@@ -1,4 +1,6 @@
- from test import test_support
-+import sys
-+import unicodedata
- import unittest
- import urlparse
-
-@@ -624,6 +626,28 @@ def test_portseparator(self):
- self.assertEqual(urlparse.urlparse("http://www.python.org:80"),
- ('http','www.python.org:80','','','',''))
-
-+ def test_urlsplit_normalization(self):
-+ # Certain characters should never occur in the netloc,
-+ # including under normalization.
-+ # Ensure that ALL of them are detected and cause an error
-+ illegal_chars = u'/:#?@'
-+ hex_chars = {'{:04X}'.format(ord(c)) for c in illegal_chars}
-+ denorm_chars = [
-+ c for c in map(unichr, range(128, sys.maxunicode))
-+ if (hex_chars & set(unicodedata.decomposition(c).split()))
-+ and c not in illegal_chars
-+ ]
-+ # Sanity check that we found at least one such character
-+ self.assertIn(u'\u2100', denorm_chars)
-+ self.assertIn(u'\uFF03', denorm_chars)
-+
-+ for scheme in [u"http", u"https", u"ftp"]:
-+ for c in denorm_chars:
-+ url = u"{}://netloc{}false.netloc/path".format(scheme, c)
-+ print "Checking %r" % url
-+ with self.assertRaises(ValueError):
-+ urlparse.urlsplit(url)
-+
- def test_main():
- test_support.run_unittest(UrlParseTestCase)
-
-diff --git a/Lib/urlparse.py b/Lib/urlparse.py
-index f7c2b032b097..54eda08651ab 100644
---- a/Lib/urlparse.py
-+++ b/Lib/urlparse.py
-@@ -165,6 +165,21 @@ def _splitnetloc(url, start=0):
- delim = min(delim, wdelim) # use earliest delim position
- return url[start:delim], url[delim:] # return (domain, rest)
-
-+def _checknetloc(netloc):
-+ if not netloc or not isinstance(netloc, unicode):
-+ return
-+ # looking for characters like \u2100 that expand to 'a/c'
-+ # IDNA uses NFKC equivalence, so normalize for this check
-+ import unicodedata
-+ netloc2 = unicodedata.normalize('NFKC', netloc)
-+ if netloc == netloc2:
-+ return
-+ _, _, netloc = netloc.rpartition('@') # anything to the left of '@' is okay
-+ for c in '/?#@:':
-+ if c in netloc2:
-+ raise ValueError("netloc '" + netloc2 + "' contains invalid " +
-+ "characters under NFKC normalization")
-+
- def urlsplit(url, scheme='', allow_fragments=True):
- """Parse a URL into 5 components:
- <scheme>://<netloc>/<path>?<query>#<fragment>
-@@ -193,6 +208,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
- url, fragment = url.split('#', 1)
- if '?' in url:
- url, query = url.split('?', 1)
-+ _checknetloc(netloc)
- v = SplitResult(scheme, netloc, url, query, fragment)
- _parse_cache[key] = v
- return v
-@@ -216,6 +232,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
- url, fragment = url.split('#', 1)
- if '?' in url:
- url, query = url.split('?', 1)
-+ _checknetloc(netloc)
- v = SplitResult(scheme, netloc, url, query, fragment)
- _parse_cache[key] = v
- return v
-diff --git a/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-new file mode 100644
-index 000000000000..1e1ad92c6feb
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2019-03-06-09-38-40.bpo-36216.6q1m4a.rst
-@@ -0,0 +1,3 @@
-+Changes urlsplit() to raise ValueError when the URL contains characters that
-+decompose under IDNA encoding (NFKC-normalization) into characters that
-+affect how the URL is parsed.
-\ No newline at end of file
diff --git a/meta/recipes-devtools/python/python/builddir.patch b/meta/recipes-devtools/python/python/builddir.patch
deleted file mode 100644
index ad629a022e..0000000000
--- a/meta/recipes-devtools/python/python/builddir.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-When cross compiling python, we used to need to install the Makefile, pyconfig.h
-and the python library to their final location before being able to compile the
-rest of python. This change allows us to point python at its own source when
-building, avoiding a variety of sysroot staging issues and simplifying the main
-python recipe.
-
-Upstream-Status: Inappropriate
-RP 2012/11/13
-
-Index: Python-2.7.9/Lib/sysconfig.py
-===================================================================
---- Python-2.7.9.orig/Lib/sysconfig.py
-+++ Python-2.7.9/Lib/sysconfig.py
-@@ -93,6 +93,7 @@ _PREFIX = os.path.normpath(sys.prefix)
- _EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
- _CONFIG_VARS = None
- _USER_BASE = None
-+_PYTHONBUILDDIR = os.environ.get("PYTHONBUILDDIR", None)
-
- def _safe_realpath(path):
- try:
-@@ -100,7 +101,9 @@ def _safe_realpath(path):
- except OSError:
- return path
-
--if sys.executable:
-+if _PYTHONBUILDDIR:
-+ _PROJECT_BASE = _PYTHONBUILDDIR
-+elif sys.executable:
- _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable))
- else:
- # sys.executable can be empty if argv[0] has been changed and Python is
-Index: Python-2.7.9/Lib/distutils/sysconfig.py
-===================================================================
---- Python-2.7.9.orig/Lib/distutils/sysconfig.py
-+++ Python-2.7.9/Lib/distutils/sysconfig.py
-@@ -26,6 +26,9 @@ EXEC_PREFIX = os.path.normpath(sys.exec_
- # live in project/PCBuild9. If we're dealing with an x64 Windows build,
- # it'll live in project/PCbuild/amd64.
- project_base = os.path.dirname(os.path.abspath(sys.executable))
-+_PYTHONBUILDDIR = os.environ.get("PYTHONBUILDDIR", None)
-+if _PYTHONBUILDDIR:
-+ project_base = _PYTHONBUILDDIR
- if os.name == "nt" and "pcbuild" in project_base[-8:].lower():
- project_base = os.path.abspath(os.path.join(project_base, os.path.pardir))
- # PC/VS7.1
diff --git a/meta/recipes-devtools/python/python/cgi_py.patch b/meta/recipes-devtools/python/python/cgi_py.patch
deleted file mode 100644
index de504f9dcf..0000000000
--- a/meta/recipes-devtools/python/python/cgi_py.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Lib/cgi.py: Update the script as mentioned in the comment
-
-Upstream-Status: Inappropriate [distribution]
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-
---- Python-2.6.6/Lib/cgi.py.orig 2010-08-01 22:14:27.000000000 -0500
-+++ Python-2.6.6/Lib/cgi.py 2011-09-21 15:28:40.478208631 -0500
-@@ -1,13 +1,4 @@
--#! /usr/local/bin/python
--
--# NOTE: the above "/usr/local/bin/python" is NOT a mistake. It is
--# intentionally NOT "/usr/bin/env python". On many systems
--# (e.g. Solaris), /usr/local/bin is not in $PATH as passed to CGI
--# scripts, and /usr/local/bin is the default directory where Python is
--# installed, so /usr/bin/env would be unable to find python. Granted,
--# binary installations by Linux vendors often install Python in
--# /usr/bin. So let those vendors patch cgi.py to match their choice
--# of installation.
-+#! /usr/bin/env python
-
- """Support module for CGI (Common Gateway Interface) scripts.
-
diff --git a/meta/recipes-devtools/python/python/check-if-target-is-64b-not-host.patch b/meta/recipes-devtools/python/python/check-if-target-is-64b-not-host.patch
deleted file mode 100644
index e6d6c65bbe..0000000000
--- a/meta/recipes-devtools/python/python/check-if-target-is-64b-not-host.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Author: Andrei Gherzan <andrei@gherzan.ro>
-Date: Sun Mar 25 02:02:27 2012 +0200
-
-This patch was added for 64bit host machines. In the compile process python
-is checking if platform is a 64bit platform using sys.maxint which is the host's
-value. The patch fixes this issue so that python would check if TARGET machine
-is 64bit not the HOST machine. In this way will have "dl" and "imageop" modules
-built if HOST machine is 64bit but the target machine is 32bit.
-
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-Upstream-Status: Pending
-
-Index: Python-2.7.11/setup.py
-===================================================================
---- Python-2.7.11.orig/setup.py
-+++ Python-2.7.11/setup.py
-@@ -35,6 +35,21 @@ COMPILED_WITH_PYDEBUG = ('--with-pydebug
- # This global variable is used to hold the list of modules to be disabled.
- disabled_module_list = []
-
-+def target_is_64bit_platform ():
-+ """
-+ In case of cross-compile, some modules are not build as setup checks if HOST
-+ is 64bit and not TARGET.
-+ As python was built for TARGET we can check this in pyconfig.h in this way:
-+ Sizeof LONG on a 32 bit platform is 4 bytes
-+ Sizeof LONG on a 64 bit platform is 8 bytes
-+ """
-+ pyconf = open("pyconfig.h").read()
-+ aux = re.search(r"#s*define\s+SIZEOF_LONG\s+8\s*", pyconf)
-+ if aux is not None:
-+ return True
-+ else:
-+ return False
-+
- def add_dir_to_list(dirlist, dir):
- """Add the directory 'dir' to the list 'dirlist' (at the front) if
- 1) 'dir' is not already in 'dirlist'
-@@ -716,7 +731,7 @@ class PyBuildExt(build_ext):
- exts.append( Extension('audioop', ['audioop.c']) )
-
- # Disabled on 64-bit platforms
-- if sys.maxsize != 9223372036854775807L:
-+ if not target_is_64bit_platform():
- # Operations on images
- exts.append( Extension('imageop', ['imageop.c']) )
- else:
-@@ -1545,7 +1560,7 @@ class PyBuildExt(build_ext):
- missing.append('_codecs_%s' % loc)
-
- # Dynamic loading module
-- if sys.maxint == 0x7fffffff:
-+ if not target_is_64bit_platform():
- # This requires sizeof(int) == sizeof(long) == sizeof(char*)
- dl_inc = find_file('dlfcn.h', [], inc_dirs)
- if (dl_inc is not None) and (host_platform not in ['atheos']):
diff --git a/meta/recipes-devtools/python/python/create_manifest2.py b/meta/recipes-devtools/python/python/create_manifest2.py
deleted file mode 100644
index 34659515cb..0000000000
--- a/meta/recipes-devtools/python/python/create_manifest2.py
+++ /dev/null
@@ -1,298 +0,0 @@
-# This script is used as a bitbake task to create a new python manifest
-# $ bitbake python -c create_manifest
-#
-# Our goal is to keep python-core as small as posible and add other python
-# packages only when the user needs them, hence why we split upstream python
-# into several packages.
-#
-# In a very simplistic way what this does is:
-# Launch python and see specifically what is required for it to run at a minimum
-#
-# Go through the python-manifest file and launch a separate task for every single
-# one of the files on each package, this task will check what was required for that
-# specific module to run, these modules will be called dependencies.
-# The output of such task will be a list of the modules or dependencies that were
-# found for that file.
-#
-# Such output will be parsed by this script, we will look for each dependency on the
-# manifest and if we find that another package already includes it, then we will add
-# that package as an RDEPENDS to the package we are currently checking; in case we dont
-# find the current dependency on any other package we will add it to the current package
-# as part of FILES.
-#
-#
-# This way we will create a new manifest from the data structure that was built during
-# this process, on this new manifest each package will contain specifically only
-# what it needs to run.
-#
-# There are some caveats which we try to deal with, such as repeated files on different
-# packages, packages that include folders, wildcards, and special packages.
-# Its also important to note that this method only works for python files, and shared
-# libraries. Static libraries, header files and binaries need to be dealt with manually.
-#
-# Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29 at gmail dot com>
-
-
-import sys
-import subprocess
-import json
-import os
-import collections
-
-# Hack to get native python search path (for folders), not fond of it but it works for now
-pivot='recipe-sysroot-native'
-for p in sys.path:
- if pivot in p:
- nativelibfolder=p[:p.find(pivot)+len(pivot)]
-
-# Empty dict to hold the whole manifest
-new_manifest = collections.OrderedDict()
-
-# Check for repeated files, folders and wildcards
-allfiles=[]
-repeated=[]
-wildcards=[]
-
-hasfolders=[]
-allfolders=[]
-
-def isFolder(value):
- if os.path.isdir(value.replace('${libdir}',nativelibfolder+'/usr/lib')) or os.path.isdir(value.replace('${libdir}',nativelibfolder+'/usr/lib64')) or os.path.isdir(value.replace('${libdir}',nativelibfolder+'/usr/lib32')):
- return True
- else:
- return False
-
-def prepend_comments(comments, json_manifest):
- with open(json_manifest, 'r+') as manifest:
- json_contents = manifest.read()
- manifest.seek(0, 0)
- manifest.write(comments + json_contents)
-
-# Read existing JSON manifest
-with open('python2-manifest.json') as manifest:
- # The JSON format doesn't allow comments so we hack the call to keep the comments using a marker
- manifest_str = manifest.read()
- json_start = manifest_str.find('# EOC') + 6 # EOC + \n
- manifest.seek(0)
- comments = manifest.read(json_start)
- manifest_str = manifest.read()
- old_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict)
-
-# First pass to get core-package functionality, because we base everything on the fact that core is actually working
-# Not exactly the same so it should not be a function
-print ("Getting dependencies for core package:")
-
-# Special call to check for core package
-output = subprocess.check_output([sys.executable, 'get_module_deps2.py', 'python-core-package'])
-for item in output.split():
- # We append it so it doesnt hurt what we currently have:
- if item not in old_manifest['core']['files']:
- # We use the same data structure since its the one which will be used to check
- # dependencies for other packages
- old_manifest['core']['files'].append(item)
-
-for value in old_manifest['core']['files']:
- # Ignore folders, since we don't import those, difficult to handle multilib
- if isFolder(value):
- # Pass it directly
- if value not in old_manifest['core']['files']:
- old_manifest['core']['files'].append(value)
- # Ignore binaries, since we don't import those, assume it was added correctly (manually)
- if '${bindir}' in value:
- # Pass it directly
- if value not in old_manifest['core']['files']:
- old_manifest['core']['files'].append(value)
- continue
- # Ignore empty values
- if value == '':
- continue
- if '${includedir}' in value:
- if value not in old_manifest['core']['files']:
- old_manifest['core']['files'].append(value)
- continue
- # Get module name , shouldnt be affected by libdir/bindir
- value = os.path.splitext(os.path.basename(os.path.normpath(value)))[0]
-
-
- # Launch separate task for each module for deterministic behavior
- # Each module will only import what is necessary for it to work in specific
- print ('Getting dependencies for module: %s' % value)
- output = subprocess.check_output([sys.executable, 'get_module_deps2.py', '%s' % value])
- for item in output.split():
- # We append it so it doesnt hurt what we currently have:
- if item not in old_manifest['core']['files']:
- old_manifest['core']['files'].append(item)
-
-# We check which packages include folders
-for key in old_manifest:
- for value in old_manifest[key]['files']:
- # Ignore folders, since we don't import those, difficult to handle multilib
- if isFolder(value):
- print ('%s is a folder' % value)
- if key not in hasfolders:
- hasfolders.append(key)
- if value not in allfolders:
- allfolders.append(value)
-
-for key in old_manifest:
- # Use an empty dict as data structure to hold data for each package and fill it up
- new_manifest[key] = collections.OrderedDict()
- new_manifest[key]['summary'] = old_manifest[key]['summary']
- new_manifest[key]['rdepends']=[]
- new_manifest[key]['files'] = []
-
- # All packages should depend on core
- if key != 'core':
- new_manifest[key]['rdepends'].append('core')
-
- # Handle special cases, we assume that when they were manually added
- # to the manifest we knew what we were doing.
- print ('Handling package %s' % key)
- special_packages=['misc', 'modules', 'tests', 'dev']
- if key in special_packages or 'staticdev' in key:
- print('Passing %s package directly' % key)
- new_manifest[key]=old_manifest[key]
- continue
-
- for value in old_manifest[key]['files']:
- # We already handled core on the first pass
- if key == 'core':
- new_manifest[key]['files'].append(value)
- continue
- # Ignore folders, since we don't import those, difficult to handle multilib
- if isFolder(value):
- # Pass folders directly
- new_manifest[key]['files'].append(value)
- # Ignore binaries, since we don't import those
- if '${bindir}' in value:
- # Pass it directly to the new manifest data structure
- if value not in new_manifest[key]['files']:
- new_manifest[key]['files'].append(value)
- continue
- # Ignore empty values
- if value == '':
- continue
- if '${includedir}' in value:
- if value not in new_manifest[key]['files']:
- new_manifest[key]['files'].append(value)
- continue
- # Get module name , shouldnt be affected by libdir/bindir
- value = os.path.splitext(os.path.basename(os.path.normpath(value)))[0]
-
- # Launch separate task for each module for deterministic behavior
- # Each module will only import what is necessary for it to work in specific
- print ('Getting dependencies for module: %s' % value)
- output = subprocess.check_output([sys.executable, 'get_module_deps2.py', '%s' % value])
-
- # We can print dependencies for debugging purposes
- #print (output)
- # Output will have all dependencies
- for item in output.split():
-
- # Warning: This first part is ugly
- # One of the dependencies that was found, could be inside of one of the folders included by another package
- # We need to check if this happens so we can add the package containing the folder as an RDEPENDS
- # e.g. Folder encodings contained in codecs
- # This would be solved if no packages included any folders
-
- # This can be done in two ways:
- # 1 - We assume that if we take out the filename from the path we would get
- # the folder string, then we would check if folder string is in the list of folders
- # This would not work if a package contains a folder which contains another folder
- # e.g. path/folder1/folder2/filename folder_string= path/folder1/folder2
- # folder_string would not match any value contained in the list of folders
- #
- # 2 - We do it the other way around, checking if the folder is contained in the path
- # e.g. path/folder1/folder2/filename folder_string= path/folder1/folder2
- # is folder_string inside path/folder1/folder2/filename?,
- # Yes, it works, but we waste a couple of milliseconds.
-
- inFolders=False
- for folder in allfolders:
- # The module could have a directory named after it, e.g. xml, if we take out the filename from the path
- # we'll end up with ${libdir}, and we want ${libdir}/xml
- if isFolder(item):
- check_path = item
- else:
- check_path = os.path.dirname(item)
- if folder in check_path :
- inFolders = True # Did we find a folder?
- folderFound = False # Second flag to break inner for
- # Loop only through packages which contain folders
- for keyfolder in hasfolders:
- if (folderFound == False):
- #print("Checking folder %s on package %s" % (item,keyfolder))
- for file_folder in old_manifest[keyfolder]['files']:
- if file_folder==folder:
- print ('%s found in %s' % (folder, keyfolder))
- folderFound = True
- if keyfolder not in new_manifest[key]['rdepends'] and keyfolder != key:
- new_manifest[key]['rdepends'].append(keyfolder)
- else:
- break
-
- # A folder was found so we're done with this item, we can go on
- if inFolders:
- continue
-
- # We might already have it on the dictionary since it could depend on a (previously checked) module
- if item not in new_manifest[key]['files']:
- # Handle core as a special package, we already did it so we pass it to NEW data structure directly
- if key=='core':
- print('Adding %s to %s FILES' % (item, key))
- if item.endswith('*'):
- wildcards.append(item)
- new_manifest[key]['files'].append(item)
-
- # Check for repeated files
- if item not in allfiles:
- allfiles.append(item)
- else:
- repeated.append(item)
-
- else:
-
- # Check if this dependency is already contained on another package, so we add it
- # as an RDEPENDS, or if its not, it means it should be contained on the current
- # package, so we should add it to FILES
- for newkey in old_manifest:
- # Debug
- #print("Checking %s " % item + " in %s" % newkey)
- if item in old_manifest[newkey]['files']:
- # Since were nesting, we need to check its not the same key
- if(newkey!=key):
- if newkey not in new_manifest[key]['rdepends']:
- # Add it to the new manifest data struct
- # Debug
- print('Adding %s to %s RDEPENDS, because it contains %s' % (newkey, key, item))
- new_manifest[key]['rdepends'].append(newkey)
- break
- else:
- # Debug
- print('Adding %s to %s FILES' % (item, key))
- # Since it wasnt found on another package, its not an RDEP, so add it to FILES for this package
- new_manifest[key]['files'].append(item)
- if item.endswith('*'):
- wildcards.append(item)
- if item not in allfiles:
- allfiles.append(item)
- else:
- repeated.append(item)
-
-print ('The following files are repeated (contained in more than one package), please check which package should get it:')
-print (repeated)
-print('The following files contain wildcards, please check they are necessary')
-print(wildcards)
-print('The following files contain folders, please check they are necessary')
-print(hasfolders)
-
-# Sort it just so it looks nice
-for key in new_manifest:
- new_manifest[key]['files'].sort()
- new_manifest[key]['rdepends'].sort()
-
-# Create the manifest from the data structure that was built
-with open('python2-manifest.json.new','w') as outfile:
- json.dump(new_manifest,outfile, indent=4)
-
-prepend_comments(comments,'python2-manifest.json.new')
diff --git a/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch b/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch
deleted file mode 100644
index 5f7309367c..0000000000
--- a/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-Upstream-Status: Inappropriate [Embedded specific]
-
-This patch fixes issuing with different libdir like lib64.
-This patch makes the native python binary modules findable
-in the install process of the host python.
-
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: 2012/03/14
-
-Updated for python 2.7.3
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: 2012/05/01
-
-Rebased for python-2.7.9
-Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-
-
-Index: Python-2.7.9/Lib/sysconfig.py
-===================================================================
---- Python-2.7.9.orig/Lib/sysconfig.py
-+++ Python-2.7.9/Lib/sysconfig.py
-@@ -9,7 +9,7 @@ _INSTALL_SCHEMES = {
- 'posix_prefix': {
- 'stdlib': '{base}/'+sys.lib+'/python{py_version_short}',
- 'platstdlib': '{platbase}/'+sys.lib+'/python{py_version_short}',
-- 'purelib': '{base}/lib/python{py_version_short}/site-packages',
-+ 'purelib': '{base}/'+sys.lib+'/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/'+sys.lib+'/python{py_version_short}/site-packages',
- 'include': '{base}/include/python{py_version_short}',
- 'platinclude': '{platbase}/include/python{py_version_short}',
-@@ -67,7 +67,7 @@ _INSTALL_SCHEMES = {
- 'posix_user': {
- 'stdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
- 'platstdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
-- 'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
-+ 'purelib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages',
- 'platlib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages',
- 'include': '{userbase}/include/python{py_version_short}',
- 'scripts': '{userbase}/bin',
-Index: Python-2.7.9/Makefile.pre.in
-===================================================================
---- Python-2.7.9.orig/Makefile.pre.in
-+++ Python-2.7.9/Makefile.pre.in
-@@ -1046,27 +1046,27 @@ libinstall: build_all $(srcdir)/Lib/$(PL
- $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
- $(DESTDIR)$(LIBDEST)/distutils/tests ; \
- fi
-- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-+ PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
- $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
-- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-+ PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH}$(RUNSHARED) \
- $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
-- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
- $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
- $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
- $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
-- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \
- $(HOSTPYTHON) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
-
- # Create the PLATDIR source directory, if one wasn't distributed..
diff --git a/meta/recipes-devtools/python/python/float-endian.patch b/meta/recipes-devtools/python/python/float-endian.patch
deleted file mode 100644
index 8a5c90aec4..0000000000
--- a/meta/recipes-devtools/python/python/float-endian.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-Python uses AC_RUN_IFELSE to determine the byte order for floats and doubles,
-and falls back onto "I don't know" if it can't run code. This results in
-crippled floating point numbers in Python, and the regression tests fail.
-
-Instead of running code, take a macro from autoconf-archive which compiles C
-with a special double in which has an ASCII representation, and then greps the
-binary to identify the format.
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 253f47b28120c42cfe53a4e2f5ed0ab0ed469deb Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross@burtonini.com>
-Date: Wed, 19 Sep 2018 07:25:48 +0100
-Subject: [PATCH] closes bpo-34585: Don't do runtime test to get float byte
- order. (GH-9085)
-
-Currently configure.ac uses AC_RUN_IFELSE to determine the byte order of doubles, but this silently fails under cross compilation and Python doesn't do floats properly.
-
-Instead, steal a macro from autoconf-archive which compiles code using magic doubles (which encode to ASCII) and grep for the representation in the binary.
-
-RFC because this doesn't yet handle the weird ancient ARMv4 OABI 'mixed-endian' encoding properly. This encoding is ancient and I don't believe the union of "Python 3.8 users" and "OABI users" has anything in. Should the support for this just be dropped too? Alternatively, someone will need to find an OABI toolchain to verify the encoding of the magic double.
-
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- .../Build/2018-09-18-16-28-31.bpo-34585.CGMu0h.rst | 3 +
- configure.ac | 76 ++++----------------
- m4/ax_c_float_words_bigendian.m4 | 83 ++++++++++++++++++++++
- 3 files changed, 99 insertions(+), 63 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Build/2018-09-18-16-28-31.bpo-34585.CGMu0h.rst
- create mode 100644 m4/ax_c_float_words_bigendian.m4
-
-diff --git a/configure.ac b/configure.ac
-index 913d5469d0..7672735396 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3835,74 +3835,24 @@ fi],
- # * Check for various properties of floating point *
- # **************************************************
-
--AC_MSG_CHECKING(whether C doubles are little-endian IEEE 754 binary64)
--AC_CACHE_VAL(ac_cv_little_endian_double, [
--AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <string.h>
--int main() {
-- double x = 9006104071832581.0;
-- if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0)
-- return 0;
-- else
-- return 1;
--}
--]])],
--[ac_cv_little_endian_double=yes],
--[ac_cv_little_endian_double=no],
--[ac_cv_little_endian_double=no])])
--AC_MSG_RESULT($ac_cv_little_endian_double)
--if test "$ac_cv_little_endian_double" = yes
--then
-- AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
-- [Define if C doubles are 64-bit IEEE 754 binary format, stored
-- with the least significant byte first])
--fi
--
--AC_MSG_CHECKING(whether C doubles are big-endian IEEE 754 binary64)
--AC_CACHE_VAL(ac_cv_big_endian_double, [
--AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <string.h>
--int main() {
-- double x = 9006104071832581.0;
-- if (memcmp(&x, "\x43\x3f\xff\x01\x02\x03\x04\x05", 8) == 0)
-- return 0;
-- else
-- return 1;
--}
--]])],
--[ac_cv_big_endian_double=yes],
--[ac_cv_big_endian_double=no],
--[ac_cv_big_endian_double=no])])
--AC_MSG_RESULT($ac_cv_big_endian_double)
--if test "$ac_cv_big_endian_double" = yes
-+AX_C_FLOAT_WORDS_BIGENDIAN
-+if test "$ax_cv_c_float_words_bigendian" = "yes"
- then
- AC_DEFINE(DOUBLE_IS_BIG_ENDIAN_IEEE754, 1,
- [Define if C doubles are 64-bit IEEE 754 binary format, stored
- with the most significant byte first])
--fi
--
--# Some ARM platforms use a mixed-endian representation for doubles.
--# While Python doesn't currently have full support for these platforms
--# (see e.g., issue 1762561), we can at least make sure that float <-> string
--# conversions work.
--AC_MSG_CHECKING(whether C doubles are ARM mixed-endian IEEE 754 binary64)
--AC_CACHE_VAL(ac_cv_mixed_endian_double, [
--AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <string.h>
--int main() {
-- double x = 9006104071832581.0;
-- if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0)
-- return 0;
-- else
-- return 1;
--}
--]])],
--[ac_cv_mixed_endian_double=yes],
--[ac_cv_mixed_endian_double=no],
--[ac_cv_mixed_endian_double=no])])
--AC_MSG_RESULT($ac_cv_mixed_endian_double)
--if test "$ac_cv_mixed_endian_double" = yes
-+elif test "$ax_cv_c_float_words_bigendian" = "no"
- then
-+ AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
-+ [Define if C doubles are 64-bit IEEE 754 binary format, stored
-+ with the least significant byte first])
-+else
-+ # Some ARM platforms use a mixed-endian representation for doubles.
-+ # While Python doesn't currently have full support for these platforms
-+ # (see e.g., issue 1762561), we can at least make sure that float <-> string
-+ # conversions work.
-+ # FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big
-+ # or little, then it must be this?
- AC_DEFINE(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754, 1,
- [Define if C doubles are 64-bit IEEE 754 binary format, stored
- in ARM mixed-endian order (byte order 45670123)])
-diff --git a/m4/ax_c_float_words_bigendian.m4 b/m4/ax_c_float_words_bigendian.m4
-new file mode 100644
-index 0000000000..216b90d803
---- /dev/null
-+++ b/m4/ax_c_float_words_bigendian.m4
-@@ -0,0 +1,83 @@
-+# ===============================================================================
-+# https://www.gnu.org/software/autoconf-archive/ax_c_float_words_bigendian.html
-+# ===============================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_C_FLOAT_WORDS_BIGENDIAN([ACTION-IF-TRUE], [ACTION-IF-FALSE], [ACTION-IF-UNKNOWN])
-+#
-+# DESCRIPTION
-+#
-+# Checks the ordering of words within a multi-word float. This check is
-+# necessary because on some systems (e.g. certain ARM systems), the float
-+# word ordering can be different from the byte ordering. In a multi-word
-+# float context, "big-endian" implies that the word containing the sign
-+# bit is found in the memory location with the lowest address. This
-+# implementation was inspired by the AC_C_BIGENDIAN macro in autoconf.
-+#
-+# The endianness is detected by first compiling C code that contains a
-+# special double float value, then grepping the resulting object file for
-+# certain strings of ASCII values. The double is specially crafted to have
-+# a binary representation that corresponds with a simple string. In this
-+# implementation, the string "noonsees" was selected because the
-+# individual word values ("noon" and "sees") are palindromes, thus making
-+# this test byte-order agnostic. If grep finds the string "noonsees" in
-+# the object file, the target platform stores float words in big-endian
-+# order. If grep finds "seesnoon", float words are in little-endian order.
-+# If neither value is found, the user is instructed to specify the
-+# ordering.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Daniel Amelang <dan@amelang.net>
-+#
-+# 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.
-+
-+#serial 11
-+
-+AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN],
-+ [AC_CACHE_CHECK(whether float word ordering is bigendian,
-+ ax_cv_c_float_words_bigendian, [
-+
-+ax_cv_c_float_words_bigendian=unknown
-+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-+
-+double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0;
-+
-+]])], [
-+
-+if grep noonsees conftest.$ac_objext >/dev/null ; then
-+ ax_cv_c_float_words_bigendian=yes
-+fi
-+if grep seesnoon conftest.$ac_objext >/dev/null ; then
-+ if test "$ax_cv_c_float_words_bigendian" = unknown; then
-+ ax_cv_c_float_words_bigendian=no
-+ else
-+ ax_cv_c_float_words_bigendian=unknown
-+ fi
-+fi
-+
-+])])
-+
-+case $ax_cv_c_float_words_bigendian in
-+ yes)
-+ m4_default([$1],
-+ [AC_DEFINE([FLOAT_WORDS_BIGENDIAN], 1,
-+ [Define to 1 if your system stores words within floats
-+ with the most significant word first])]) ;;
-+ no)
-+ $2 ;;
-+ *)
-+ m4_default([$3],
-+ [AC_MSG_ERROR([
-+
-+Unknown float word ordering. You need to manually preset
-+ax_cv_c_float_words_bigendian=no (or yes) according to your system.
-+
-+ ])]) ;;
-+esac
-+
-+])# AX_C_FLOAT_WORDS_BIGENDIAN
---
-2.11.0
-
diff --git a/meta/recipes-devtools/python/python/get_module_deps2.py b/meta/recipes-devtools/python/python/get_module_deps2.py
deleted file mode 100644
index 73e7c6f6dc..0000000000
--- a/meta/recipes-devtools/python/python/get_module_deps2.py
+++ /dev/null
@@ -1,112 +0,0 @@
-# This script is launched on separate task for each python module
-# It checks for dependencies for that specific module and prints
-# them out, the output of this execution will have all dependencies
-# for a specific module, which will be parsed an dealt on create_manifest.py
-#
-# Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29@gmail.com>
-
-
-# We can get a log per module, for all the dependencies that were found, but its messy.
-debug=False
-
-import sys
-
-# 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
-# and check what modules are currently running, if we substract them from the
-# modules we had initially, we get the dependencies for the module we imported.
-
-# We use importlib to achieve this, so we also need to know what modules importlib needs
-import importlib
-
-core_deps=set(sys.modules)
-
-def fix_path(dep_path):
- import os
- # We DONT want the path on our HOST system
- pivot='recipe-sysroot-native'
- dep_path=dep_path[dep_path.find(pivot)+len(pivot):]
-
- if '/usr/bin' in dep_path:
- dep_path = dep_path.replace('/usr/bin''${bindir}')
-
- # Handle multilib, is there a better way?
- if '/usr/lib32' in dep_path:
- dep_path = dep_path.replace('/usr/lib32','${libdir}')
- if '/usr/lib64' in dep_path:
- dep_path = dep_path.replace('/usr/lib64','${libdir}')
- if '/usr/lib' in dep_path:
- dep_path = dep_path.replace('/usr/lib','${libdir}')
- if '/usr/include' in dep_path:
- dep_path = dep_path.replace('/usr/include','${includedir}')
- if '__init__.' in dep_path:
- dep_path = os.path.split(dep_path)[0]
-
- # If a *.pyc file was imported, we replace it with *.py (since we deal with PYCs on create_manifest)
- if '.pyc' in dep_path:
- dep_path = dep_path.replace('.pyc','.py')
-
- return dep_path
-
-# Module to import was passed as an argument
-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)
-except ImportError as e:
- if (debug==True):
- log.write('Module was not found')
- pass
-
-
-# Get current module dependencies, dif will contain a list of specific deps for this module
-module_deps=set(sys.modules)
-
-# We handle the core package (1st pass on create_manifest.py) as a special case
-if current_module == 'python-core-package':
- dif = core_deps
-else:
- dif = module_deps-core_deps
-
-
-# Check where each dependency came from
-for item in dif:
- dep_path=''
- try:
- if (debug==True):
- log.write('Calling: sys.modules[' + '%s' % item + '].__file__\n')
- dep_path = sys.modules['%s' % item].__file__
- except AttributeError as e:
- # Deals with thread (builtin module) not having __file__ attribute
- if debug==True:
- log.write(item + ' ')
- log.write(str(e))
- log.write('\n')
- pass
- except NameError as e:
- # Deals with NameError: name 'dep_path' is not defined
- # because module is not found (wasn't compiled?), e.g. bddsm
- if (debug==True):
- log.write(item+' ')
- log.write(str(e))
- pass
-
- # Site-customize is a special case since we (OpenEmbedded) put it there manually
- if 'sitecustomize' in dep_path:
- dep_path = '${libdir}/python2.7/sitecustomize.py'
- # Prints out result, which is what will be used by create_manifest
- print (dep_path)
- continue
-
- dep_path = fix_path(dep_path)
-
- if (debug==True):
- log.write(dep_path+'\n')
-
- # Prints out result, which is what will be used by create_manifest
- print (dep_path)
-
-if debug==True:
- log.close()
diff --git a/meta/recipes-devtools/python/python/host_include_contamination.patch b/meta/recipes-devtools/python/python/host_include_contamination.patch
deleted file mode 100644
index e0aafb218b..0000000000
--- a/meta/recipes-devtools/python/python/host_include_contamination.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-when building python for qemux86-64 on ubuntu 11.10/64bit
-it gropes into host includes and then mixes them with cross
-includes and as a result some modules fail to compile and link
-one of the modules is python-elementtree which is then not
-found during image creation
-
-Proble is that setup.py tries to add native includes that newer
-ubuntu has introduced for multiarch support. But that should
-only happen for native builds and not cross building python
-so we add a check here.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-
-diff --git a/setup.py b/setup.py
-index ba2d242..bf859be 100644
---- a/setup.py
-+++ b/setup.py
-@@ -393,6 +393,8 @@ class PyBuildExt(build_ext):
-
- if not find_executable('dpkg-architecture'):
- return
-+ if os.environ.get('CROSS_COMPILE') is not None:
-+ return
- opt = ''
- if cross_compiling:
- opt = '-t' + sysconfig.get_config_var('HOST_GNU_TYPE')
diff --git a/meta/recipes-devtools/python/python/multilib.patch b/meta/recipes-devtools/python/python/multilib.patch
deleted file mode 100644
index d24bc15f01..0000000000
--- a/meta/recipes-devtools/python/python/multilib.patch
+++ /dev/null
@@ -1,298 +0,0 @@
-Rebased for python-2.7.9
-Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-Upstream-Status: Pending
-Index: Python-2.7.14/configure.ac
-===================================================================
---- Python-2.7.14.orig/configure.ac
-+++ Python-2.7.14/configure.ac
-@@ -758,6 +758,10 @@ SunOS*)
- ;;
- esac
-
-+AC_SUBST(LIB)
-+AC_MSG_CHECKING(LIB)
-+LIB="SEDMELIBLEAF"
-+AC_MSG_RESULT($LIB)
-
- AC_SUBST(LIBRARY)
- AC_MSG_CHECKING(LIBRARY)
-Index: Python-2.7.14/Include/pythonrun.h
-===================================================================
---- Python-2.7.14.orig/Include/pythonrun.h
-+++ Python-2.7.14/Include/pythonrun.h
-@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void);
- /* In their own files */
- PyAPI_FUNC(const char *) Py_GetVersion(void);
- PyAPI_FUNC(const char *) Py_GetPlatform(void);
-+PyAPI_FUNC(const char *) Py_GetLib(void);
- PyAPI_FUNC(const char *) Py_GetCopyright(void);
- PyAPI_FUNC(const char *) Py_GetCompiler(void);
- PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
-Index: Python-2.7.14/Lib/distutils/command/install.py
-===================================================================
---- Python-2.7.14.orig/Lib/distutils/command/install.py
-+++ Python-2.7.14/Lib/distutils/command/install.py
-@@ -22,6 +22,8 @@ from site import USER_BASE
- from site import USER_SITE
-
-
-+libname = sys.lib
-+
- if sys.version < "2.2":
- WINDOWS_SCHEME = {
- 'purelib': '$base',
-@@ -41,8 +43,8 @@ else:
-
- INSTALL_SCHEMES = {
- 'unix_prefix': {
-- 'purelib': '$base/lib/python$py_version_short/site-packages',
-- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
-+ 'purelib': '$platbase/'+libname+'/python$py_version_short/site-packages',
-+ 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages',
- 'headers': '$base/include/python$py_version_short/$dist_name',
- 'scripts': '$base/bin',
- 'data' : '$base',
-Index: Python-2.7.14/Lib/distutils/sysconfig.py
-===================================================================
---- Python-2.7.14.orig/Lib/distutils/sysconfig.py
-+++ Python-2.7.14/Lib/distutils/sysconfig.py
-@@ -119,8 +119,11 @@ def get_python_lib(plat_specific=0, stan
- prefix = plat_specific and EXEC_PREFIX or PREFIX
-
- if os.name == "posix":
-- libpython = os.path.join(prefix,
-- "lib", "python" + get_python_version())
-+ if plat_specific or standard_lib:
-+ lib = sys.lib
-+ else:
-+ lib = "lib"
-+ libpython = os.path.join(prefix, lib, "python" + get_python_version())
- if standard_lib:
- return libpython
- else:
-Index: Python-2.7.14/Lib/pydoc.py
-===================================================================
---- Python-2.7.14.orig/Lib/pydoc.py
-+++ Python-2.7.14/Lib/pydoc.py
-@@ -375,7 +375,7 @@ class Doc:
- docmodule = docclass = docroutine = docother = docproperty = docdata = fail
-
- def getdocloc(self, object,
-- basedir=os.path.join(sys.exec_prefix, "lib",
-+ basedir=os.path.join(sys.exec_prefix, "sys.lib",
- "python"+sys.version[0:3])):
- """Return the location of module docs or None"""
-
-Index: Python-2.7.14/Lib/site.py
-===================================================================
---- Python-2.7.14.orig/Lib/site.py
-+++ Python-2.7.14/Lib/site.py
-@@ -288,13 +288,18 @@ def getsitepackages():
- if sys.platform in ('os2emx', 'riscos'):
- sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
- elif os.sep == '/':
-- sitepackages.append(os.path.join(prefix, "lib",
-+ sitepackages.append(os.path.join(prefix, sys.lib,
- "python" + sys.version[:3],
- "site-packages"))
-- sitepackages.append(os.path.join(prefix, "lib", "site-python"))
-+ sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
-+ if sys.lib != "lib":
-+ sitepackages.append(os.path.join(prefix, "lib",
-+ "python" + sys.version[:3],
-+ "site-packages"))
-+ sitepackages.append(os.path.join(prefix, "lib", "site-python"))
- else:
- sitepackages.append(prefix)
-- sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
-+ sitepackages.append(os.path.join(prefix, sys.lib, "site-packages"))
- return sitepackages
-
- def addsitepackages(known_paths):
-Index: Python-2.7.14/Lib/sysconfig.py
-===================================================================
---- Python-2.7.14.orig/Lib/sysconfig.py
-+++ Python-2.7.14/Lib/sysconfig.py
-@@ -7,10 +7,10 @@ from os.path import pardir, realpath
-
- _INSTALL_SCHEMES = {
- 'posix_prefix': {
-- 'stdlib': '{base}/lib/python{py_version_short}',
-- 'platstdlib': '{platbase}/lib/python{py_version_short}',
-+ 'stdlib': '{base}/'+sys.lib+'/python{py_version_short}',
-+ 'platstdlib': '{platbase}/'+sys.lib+'/python{py_version_short}',
- 'purelib': '{base}/lib/python{py_version_short}/site-packages',
-- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
-+ 'platlib': '{platbase}/'+sys.lib+'/python{py_version_short}/site-packages',
- 'include': '{base}/include/python{py_version_short}',
- 'platinclude': '{platbase}/include/python{py_version_short}',
- 'scripts': '{base}/bin',
-@@ -65,10 +65,10 @@ _INSTALL_SCHEMES = {
- 'data' : '{userbase}',
- },
- 'posix_user': {
-- 'stdlib': '{userbase}/lib/python{py_version_short}',
-- 'platstdlib': '{userbase}/lib/python{py_version_short}',
-+ 'stdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
-+ 'platstdlib': '{userbase}/'+sys.lib+'/python{py_version_short}',
- 'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
-- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
-+ 'platlib': '{userbase}/'+sys.lib+'/python{py_version_short}/site-packages',
- 'include': '{userbase}/include/python{py_version_short}',
- 'scripts': '{userbase}/bin',
- 'data' : '{userbase}',
-Index: Python-2.7.14/Lib/test/test_dl.py
-===================================================================
---- Python-2.7.14.orig/Lib/test/test_dl.py
-+++ Python-2.7.14/Lib/test/test_dl.py
-@@ -4,10 +4,11 @@
- import unittest
- from test.test_support import verbose, import_module
- dl = import_module('dl', deprecated=True)
-+import sys
-
- sharedlibs = [
-- ('/usr/lib/libc.so', 'getpid'),
-- ('/lib/libc.so.6', 'getpid'),
-+ ('/usr/'+sys.lib+'/libc.so', 'getpid'),
-+ ('/'+sys.lib+'/libc.so.6', 'getpid'),
- ('/usr/bin/cygwin1.dll', 'getpid'),
- ('/usr/lib/libc.dylib', 'getpid'),
- ]
-Index: Python-2.7.14/Lib/test/test_site.py
-===================================================================
---- Python-2.7.14.orig/Lib/test/test_site.py
-+++ Python-2.7.14/Lib/test/test_site.py
-@@ -252,12 +252,16 @@ class HelperFunctionsTests(unittest.Test
- self.assertEqual(dirs[0], wanted)
- elif os.sep == '/':
- # OS X, Linux, FreeBSD, etc
-- self.assertEqual(len(dirs), 2)
- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
- 'site-packages')
-- self.assertEqual(dirs[0], wanted)
-+ self.assertTrue(wanted in dirs)
- wanted = os.path.join('xoxo', 'lib', 'site-python')
-- self.assertEqual(dirs[1], wanted)
-+ self.assertTrue(wanted in dirs)
-+ wanted = os.path.join('xoxo', sys.lib, 'python' + sys.version[:3],
-+ 'site-packages')
-+ self.assertTrue(wanted in dirs)
-+ wanted = os.path.join('xoxo', sys.lib, 'site-python')
-+ self.assertTrue(wanted in dirs)
- else:
- # other platforms
- self.assertEqual(len(dirs), 2)
-Index: Python-2.7.14/Lib/trace.py
-===================================================================
---- Python-2.7.14.orig/Lib/trace.py
-+++ Python-2.7.14/Lib/trace.py
-@@ -754,10 +754,10 @@ def main(argv=None):
- # should I also call expanduser? (after all, could use $HOME)
-
- s = s.replace("$prefix",
-- os.path.join(sys.prefix, "lib",
-+ os.path.join(sys.prefix, sys.lib,
- "python" + sys.version[:3]))
- s = s.replace("$exec_prefix",
-- os.path.join(sys.exec_prefix, "lib",
-+ os.path.join(sys.exec_prefix, sys.lib,
- "python" + sys.version[:3]))
- s = os.path.normpath(s)
- ignore_dirs.append(s)
-Index: Python-2.7.14/Makefile.pre.in
-===================================================================
---- Python-2.7.14.orig/Makefile.pre.in
-+++ Python-2.7.14/Makefile.pre.in
-@@ -91,6 +91,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
-
- # Machine-dependent subdirectories
- MACHDEP= @MACHDEP@
-+LIB= @LIB@
-
- # Multiarch directory (may be empty)
- MULTIARCH= @MULTIARCH@
-@@ -110,7 +111,7 @@ LIBDIR= @libdir@
- MANDIR= @mandir@
- INCLUDEDIR= @includedir@
- CONFINCLUDEDIR= $(exec_prefix)/include
--SCRIPTDIR= $(prefix)/lib
-+SCRIPTDIR= $(prefix)/@LIB@
-
- # Detailed destination directories
- BINLIBDEST= $(LIBDIR)/python$(VERSION)
-@@ -645,6 +646,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
- -DEXEC_PREFIX='"$(exec_prefix)"' \
- -DVERSION='"$(VERSION)"' \
- -DVPATH='"$(VPATH)"' \
-+ -DLIB='"$(LIB)"' \
- -o $@ $(srcdir)/Modules/getpath.c
-
- Modules/python.o: $(srcdir)/Modules/python.c
-@@ -693,7 +695,7 @@ regen-ast:
- Python/compile.o Python/symtable.o Python/ast.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
-
- Python/getplatform.o: $(srcdir)/Python/getplatform.c
-- $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
-+ $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c
-
- Python/importdl.o: $(srcdir)/Python/importdl.c
- $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-Index: Python-2.7.14/Modules/getpath.c
-===================================================================
---- Python-2.7.14.orig/Modules/getpath.c
-+++ Python-2.7.14/Modules/getpath.c
-@@ -100,6 +100,13 @@
- #error "PREFIX, EXEC_PREFIX, VERSION, and VPATH must be constant defined"
- #endif
-
-+#define LIB_PYTHON LIB "/python" VERSION
-+
-+#ifndef PYTHONPATH
-+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
-+ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
-+#endif
-+
- #ifndef LANDMARK
- #define LANDMARK "os.py"
- #endif
-@@ -108,7 +115,7 @@ static char prefix[MAXPATHLEN+1];
- static char exec_prefix[MAXPATHLEN+1];
- static char progpath[MAXPATHLEN+1];
- static char *module_search_path = NULL;
--static char lib_python[] = "lib/python" VERSION;
-+static char lib_python[] = LIB_PYTHON;
-
- static void
- reduce(char *dir)
-Index: Python-2.7.14/Python/getplatform.c
-===================================================================
---- Python-2.7.14.orig/Python/getplatform.c
-+++ Python-2.7.14/Python/getplatform.c
-@@ -10,3 +10,13 @@ Py_GetPlatform(void)
- {
- return PLATFORM;
- }
-+
-+#ifndef LIB
-+#define LIB "lib"
-+#endif
-+
-+const char *
-+Py_GetLib(void)
-+{
-+ return LIB;
-+}
-Index: Python-2.7.14/Python/sysmodule.c
-===================================================================
---- Python-2.7.14.orig/Python/sysmodule.c
-+++ Python-2.7.14/Python/sysmodule.c
-@@ -1437,6 +1437,8 @@ _PySys_Init(void)
- PyString_FromString(Py_GetCopyright()));
- SET_SYS_FROM_STRING("platform",
- PyString_FromString(Py_GetPlatform()));
-+ SET_SYS_FROM_STRING("lib",
-+ PyString_FromString(Py_GetLib()));
- SET_SYS_FROM_STRING("executable",
- PyString_FromString(Py_GetProgramFullPath()));
- SET_SYS_FROM_STRING("prefix",
diff --git a/meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch b/meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch
deleted file mode 100644
index abab41e957..0000000000
--- a/meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-When using make -j with the 'install' target, it's possible for altbininstall
-(which normally creates BINDIR) and libainstall (which doesn't, though it
-installs python-config there) to race, resulting in a failure due to
-attempting to install python-config into a nonexistent BINDIR. Ensure it also
-exists in the libainstall target.
-
-Upstream-Status: Pending
-
---- Python-2.7.3.orig/Makefile.pre.in
-+++ Python-2.7.3/Makefile.pre.in
-@@ -1187,7 +1187,7 @@
- LIBPC= $(LIBDIR)/pkgconfig
-
- libainstall: @DEF_MAKE_RULE@ python-config
-- @for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC); \
-+ @for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC) $(BINDIR); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
diff --git a/meta/recipes-devtools/python/python/pass-missing-libraries-to-Extension-for-mul.patch b/meta/recipes-devtools/python/python/pass-missing-libraries-to-Extension-for-mul.patch
deleted file mode 100644
index 44fcaacf30..0000000000
--- a/meta/recipes-devtools/python/python/pass-missing-libraries-to-Extension-for-mul.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 71447f04979b267f8866573b67a4340b2719d799 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 4 Aug 2017 14:10:43 +0800
-Subject: [PATCH] setup.py: pass missing libraries to Extension for multiprocessing module
-
-In the following commit:
-...
-commit e711cafab13efc9c1fe6c5cd75826401445eb585
-Author: Benjamin Peterson <benjamin@python.org>
-Date: Wed Jun 11 16:44:04 2008 +0000
-
- Merged revisions 64104,64117 via svnmerge from
- svn+ssh://pythondev@svn.python.org/python/trunk
-...
-(see diff in setup.py)
-It assigned libraries for multiprocessing module according
-the host_platform, but not pass it to Extension.
-
-In glibc, the following commit caused two definition of
-sem_getvalue are different.
-https://sourceware.org/git/?p=glibc.git;a=commit;h=042e1521c794a945edc43b5bfa7e69ad70420524
-(see diff in nptl/sem_getvalue.c for detail)
-`__new_sem_getvalue' is the latest sem_getvalue@@GLIBC_2.1
-and `__old_sem_getvalue' is to compat the old version
-sem_getvalue@GLIBC_2.0.
-
-To build python for embedded Linux systems:
-http://www.yoctoproject.org/docs/2.3.1/yocto-project-qs/yocto-project-qs.html
-If not explicitly link to library pthread (-lpthread), it will
-load glibc's sem_getvalue randomly at runtime.
-
-Such as build python on linux x86_64 host and run the python
-on linux x86_32 target. If not link library pthread, it caused
-multiprocessing bounded semaphore could not work correctly.
-...
->>> import multiprocessing
->>> pool_sema = multiprocessing.BoundedSemaphore(value=1)
->>> pool_sema.acquire()
-True
->>> pool_sema.release()
-Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
-ValueError: semaphore or lock released too many times
-...
-
-And the semaphore issue also caused multiprocessing.Queue().put() hung.
-
-Upstream-Status: Submitted [https://github.com/python/cpython/pull/2999]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- setup.py | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 54054c2..9646bfc 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1586,8 +1586,10 @@ class PyBuildExt(build_ext):
- elif host_platform.startswith('netbsd'):
- macros = dict()
- libraries = []
--
-- else: # Linux and other unices
-+ elif host_platform.startswith(('linux')):
-+ macros = dict()
-+ libraries = ['pthread']
-+ else: # Other unices
- macros = dict()
- libraries = ['rt']
-
-@@ -1610,6 +1612,7 @@ class PyBuildExt(build_ext):
- if sysconfig.get_config_var('WITH_THREAD'):
- exts.append ( Extension('_multiprocessing', multiprocessing_srcs,
- define_macros=macros.items(),
-+ libraries=libraries,
- include_dirs=["Modules/_multiprocessing"]))
- else:
- missing.append('_multiprocessing')
---
-2.7.4
-
diff --git a/meta/recipes-devtools/python/python/python-2.7.3-remove-bsdb-rpath.patch b/meta/recipes-devtools/python/python/python-2.7.3-remove-bsdb-rpath.patch
deleted file mode 100644
index 216be0a448..0000000000
--- a/meta/recipes-devtools/python/python/python-2.7.3-remove-bsdb-rpath.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Remove the RPATH to avoid QA issue warning.
-
-RP: Added secondary unnecessary rpath to the list 2012/8/7
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
-
-Index: Python-2.7.3/setup.py
-===================================================================
---- Python-2.7.3.orig/setup.py 2012-08-07 10:41:58.560132529 +0000
-+++ Python-2.7.3/setup.py 2012-08-07 11:09:47.852094515 +0000
-@@ -1042,7 +1042,6 @@
- exts.append(Extension('_bsddb', ['_bsddb.c'],
- depends = ['bsddb.h'],
- library_dirs=dblib_dir,
-- runtime_library_dirs=dblib_dir,
- include_dirs=db_incs,
- libraries=dblibs))
- else:
-@@ -1252,7 +1251,6 @@
- print "building dbm using bdb"
- dbmext = Extension('dbm', ['dbmmodule.c'],
- library_dirs=dblib_dir,
-- runtime_library_dirs=dblib_dir,
- include_dirs=db_incs,
- define_macros=[
- ('HAVE_BERKDB_H', None),
diff --git a/meta/recipes-devtools/python/python/python2-manifest.json b/meta/recipes-devtools/python/python/python2-manifest.json
deleted file mode 100644
index eb52e862ab..0000000000
--- a/meta/recipes-devtools/python/python/python2-manifest.json
+++ /dev/null
@@ -1,1138 +0,0 @@
-# DO NOT (entirely) modify this file manually, please read.
-#
-# IMPORTANT NOTE:
-# Please keep in mind that the create_manifest task relies on the fact the the
-# target and native Python packages are the same, and it also needs to be executed
-# with a fully working native package (with all the PACKAGECONFIGs enabled and all
-# and all the modules should be working, check log.do_compile), otherwise the script
-# will fail to find dependencies correctly, this note is valid either if you are
-# upgrading to a new Python version or adding a new package.
-#
-#
-# If you are adding a new package please follow the next steps:
-# How to add a new package:
-# - If a user wants to add a new package all that has to be done is:
-# Modify the python2-manifest.json file, and add the required file(s) to the FILES list,
-# fill up the SUMMARY section as well, the script should handle all the rest.
-#
-# Real example:
-# We want to add a web browser package, including the file webbrowser.py
-# which at the moment is on python-misc.
-# "webbrowser": {
-# "files": ["${libdir}/python2.7/lib-dynload/webbrowser.py"],
-# "rdepends": [],
-# "summary": "Python Web Browser support"}
-#
-# * Note that the rdepends field was left empty
-#
-# We run $ bitbake python -c create_manifest and the resulting manifest
-# should be completed after a few seconds, showing something like:
-# "webbrowser": {
-# "files": ["${libdir}/python2.7/webbrowser.py"],
-# "rdepends": ["core","fcntl","io","pickle","shell","subprocess"],
-# "summary": "Python Web Browser support"}
-#
-#
-# If you are upgrading Python to a new version please follow the next steps:
-# After each Python upgrade, the create_manifest task should be executed, because we
-# don't control what changes on upstream Python, so, some module dependency
-# might have changed without us realizing it, a certain module can either have
-# more or less dependencies, or could be depending on a new file that was just
-# created on the new release and for obvious reasons we wouldn't have it on our
-# old manifest, all of these issues would cause runtime errors on our system.
-#
-# - Upgrade both the native and target Python packages to a new version
-# - Run the create_manifest task for the target Python package as its shown below:
-#
-# $ bitbake python -c create_manifest
-#
-# This will automatically replace your manifest file located under the Python directory
-# with an new one, which contains the new dependencies (if any).
-#
-# Several things could have gone wrong here, I will try to explain a few:
-#
-# a) A new file was introduced on this release, e.g. sha3*.so:
-# The task will check what its needed to import every module, more than one module would
-# would probably depend on sha3*.so, although only one module should contain it.
-#
-# After running the task, the new manifest will have the sha3*.so file on more than one
-# module, you need to manually decide which one of them should get it and delete it from
-# the others, for example sha3*.so should likely be on ${PN}-crypt.
-# Once you have deleted from the others you need to run the create_manifest task again,
-# this will populate the other module's rdepends fields, with ${PN}-crypt and you should be
-# good to go.
-#
-# b) The native package wasn't built correctly and its missing a certain module:
-# As mentioned before, you need to make sure the native package was built with all the modules
-# because it is used as base to build the manifest file, you need to manually check log.do_compile
-# since it won't error out the compile function if its only missing a couple of modules.
-#
-# e.g. missing the _uuid module, log.do_compile would show the following:
-# Python build finished successfully!
-# The necessary bits to build these optional modules were not found:
-# _uuid
-#
-# What will happen here is that the new manifest would not be aware that the _uuid module exists, so
-# not only we won't know of any dependencies to it, but also, the _uuid* files will be packaged on
-# the misc package (which is where any file that doesn't belong anywhere else ends up).
-#
-# This will eventually cause runtime errors on our system if we don't include the misc package on
-# on our image, because the _uuid files will be missing.
-# If we build the _uuid module correctly and run the create_manifest task the _uuid files will be
-# detected correctly along with its dependencies, and we will get a working manifest.
-#
-# This is the reason why it is important to make sure we have a fully working native build,
-# so we can avoid these errors.
-#
-#
-#
-# DO NOT MODIFY THE NEXT LINE!, IT IS USED AS A MARKER FOR THE ACTUAL JSON MANIFEST
-# EOC
-{
- "tests": {
- "summary": "Python test suite",
- "rdepends": [
- "core",
- "modules"
- ],
- "files": [
- "${libdir}/python2.7/*/test",
- "${libdir}/python2.7/*/tests",
- "${libdir}/python2.7/idlelib/idle_test/",
- "${libdir}/python2.7/test"
- ],
- "cached": []
- },
- "2to3": {
- "summary": "Python automated Python 2 to 3 code translator",
- "rdepends": [
- "core"
- ],
- "files": [
- "${bindir}/2to3*",
- "${libdir}/python2.7/lib2to3"
- ]
- },
- "argparse": {
- "summary": "Python command line argument parser",
- "rdepends": [
- "codecs",
- "core",
- "lang",
- "textutils"
- ],
- "files": [
- "${libdir}/python2.7/argparse.py"
- ]
- },
- "audio": {
- "summary": "Python Audio Handling",
- "rdepends": [
- "core",
- "crypt",
- "fcntl",
- "io",
- "math"
- ],
- "files": [
- "${libdir}/python2.7/audiodev.py",
- "${libdir}/python2.7/chunk.py",
- "${libdir}/python2.7/lib-dynload/audioop.so",
- "${libdir}/python2.7/lib-dynload/ossaudiodev.so",
- "${libdir}/python2.7/sndhdr.py",
- "${libdir}/python2.7/sunau.py",
- "${libdir}/python2.7/sunaudio.py",
- "${libdir}/python2.7/toaiff.py",
- "${libdir}/python2.7/wave.py"
- ]
- },
- "bsddb": {
- "summary": "Python bindings for the Berkeley Database",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/bsddb",
- "${libdir}/python2.7/lib-dynload/_bsddb.so"
- ]
- },
- "codecs": {
- "summary": "Python codec",
- "rdepends": [
- "core",
- "io",
- "lang"
- ],
- "files": [
- "${libdir}/python2.7/gettext.py",
- "${libdir}/python2.7/lib-dynload/_codecs_cn.so",
- "${libdir}/python2.7/lib-dynload/_codecs_hk.so",
- "${libdir}/python2.7/lib-dynload/_codecs_iso2022.so",
- "${libdir}/python2.7/lib-dynload/_codecs_jp.so",
- "${libdir}/python2.7/lib-dynload/_codecs_kr.so",
- "${libdir}/python2.7/lib-dynload/_codecs_tw.so",
- "${libdir}/python2.7/lib-dynload/_multibytecodec.so",
- "${libdir}/python2.7/lib-dynload/unicodedata.so",
- "${libdir}/python2.7/locale.py",
- "${libdir}/python2.7/stringprep.py",
- "${libdir}/python2.7/xdrlib.py"
- ]
- },
- "compile": {
- "summary": "Python bytecode compilation support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/compileall.py",
- "${libdir}/python2.7/py_compile.py"
- ]
- },
- "compiler": {
- "summary": "Python compiler support",
- "rdepends": [
- "core",
- "io",
- "lang"
- ],
- "files": [
- "${libdir}/python2.7/compiler"
- ]
- },
- "compression": {
- "summary": "Python high-level compression support",
- "rdepends": [
- "core",
- "io",
- "shell",
- "unixadmin",
- "zlib"
- ],
- "files": [
- "${libdir}/python2.7/gzip.py",
- "${libdir}/python2.7/lib-dynload/bz2.so",
- "${libdir}/python2.7/tarfile.py",
- "${libdir}/python2.7/zipfile.py"
- ]
- },
- "contextlib": {
- "summary": "Python utilities for with-statementcontexts.",
- "rdepends": [
- "core",
- "lang"
- ],
- "files": [
- "${libdir}/python2.7/contextlib.py"
- ]
- },
- "core": {
- "summary": "Python interpreter and core modules",
- "rdepends": [],
- "files": [
- "${bindir}/python*",
- "${includedir}/python2.7/pyconfig*.h",
- "${libdir}/python2.7/ConfigParser.py",
- "${libdir}/python2.7/UserDict.py",
- "${libdir}/python2.7/UserList.py",
- "${libdir}/python2.7/UserString.py",
- "${libdir}/python2.7/__future__.py",
- "${libdir}/python2.7/_abcoll.py",
- "${libdir}/python2.7/_sysconfigdata.py",
- "${libdir}/python2.7/_weakrefset.py",
- "${libdir}/python2.7/abc.py",
- "${libdir}/python2.7/ast.py",
- "${libdir}/python2.7/atexit.py",
- "${libdir}/python2.7/codecs.py",
- "${libdir}/python2.7/collections.py",
- "${libdir}/python2.7/copy.py",
- "${libdir}/python2.7/copy_reg.py",
- "${libdir}/python2.7/encodings",
- "${libdir}/python2.7/encodings/aliases.py",
- "${libdir}/python2.7/encodings/utf_8.py",
- "${libdir}/python2.7/genericpath.py",
- "${libdir}/python2.7/getopt.py",
- "${libdir}/python2.7/heapq.py",
- "${libdir}/python2.7/importlib",
- "${libdir}/python2.7/keyword.py",
- "${libdir}/python2.7/lib-dynload/_collections.so",
- "${libdir}/python2.7/lib-dynload/_heapq.so",
- "${libdir}/python2.7/lib-dynload/_locale.so",
- "${libdir}/python2.7/lib-dynload/_struct.so",
- "${libdir}/python2.7/lib-dynload/binascii.so",
- "${libdir}/python2.7/lib-dynload/itertools.so",
- "${libdir}/python2.7/lib-dynload/operator.so",
- "${libdir}/python2.7/lib-dynload/readline.so",
- "${libdir}/python2.7/lib-dynload/strop.so",
- "${libdir}/python2.7/lib-dynload/time.so",
- "${libdir}/python2.7/lib-dynload/xreadlines.so",
- "${libdir}/python2.7/linecache.py",
- "${libdir}/python2.7/new.py",
- "${libdir}/python2.7/os.py",
- "${libdir}/python2.7/platform.py",
- "${libdir}/python2.7/posixpath.py",
- "${libdir}/python2.7/re.py",
- "${libdir}/python2.7/rlcompleter.py",
- "${libdir}/python2.7/site.py",
- "${libdir}/python2.7/sitecustomize.py",
- "${libdir}/python2.7/sre_compile.py",
- "${libdir}/python2.7/sre_constants.py",
- "${libdir}/python2.7/sre_parse.py",
- "${libdir}/python2.7/stat.py",
- "${libdir}/python2.7/string.py",
- "${libdir}/python2.7/struct.py",
- "${libdir}/python2.7/sysconfig.py",
- "${libdir}/python2.7/traceback.py",
- "${libdir}/python2.7/types.py",
- "${libdir}/python2.7/warnings.py",
- "${libdir}/python2.7/weakref.py"
- ]
- },
- "crypt": {
- "summary": "Python basic cryptographic and hashing support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/hashlib.py",
- "${libdir}/python2.7/lib-dynload/_hashlib.so",
- "${libdir}/python2.7/lib-dynload/crypt.so",
- "${libdir}/python2.7/md5.py",
- "${libdir}/python2.7/sha.py"
- ]
- },
- "ctypes": {
- "summary": "Python C types support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/ctypes",
- "${libdir}/python2.7/lib-dynload/_ctypes.so",
- "${libdir}/python2.7/lib-dynload/_ctypes_test.so"
- ]
- },
- "curses": {
- "summary": "Python curses support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/curses",
- "${libdir}/python2.7/lib-dynload/_curses.so",
- "${libdir}/python2.7/lib-dynload/_curses_panel.so"
- ]
- },
- "datetime": {
- "summary": "Python calendar and time support",
- "rdepends": [
- "codecs",
- "core",
- "lang"
- ],
- "files": [
- "${libdir}/python2.7/_strptime.py",
- "${libdir}/python2.7/calendar.py",
- "${libdir}/python2.7/lib-dynload/datetime.so"
- ]
- },
- "db": {
- "summary": "Python file-based database support",
- "rdepends": [
- "bsddb",
- "core",
- "gdbm"
- ],
- "files": [
- "${libdir}/python2.7/anydbm.py",
- "${libdir}/python2.7/dbhash.py",
- "${libdir}/python2.7/dumbdbm.py",
- "${libdir}/python2.7/lib-dynload/dbm.so",
- "${libdir}/python2.7/whichdb.py"
- ]
- },
- "debugger": {
- "summary": "Python debugger",
- "rdepends": [
- "core",
- "io",
- "lang",
- "pprint",
- "shell"
- ],
- "files": [
- "${libdir}/python2.7/bdb.py",
- "${libdir}/python2.7/pdb.py"
- ]
- },
- "dev": {
- "files": [
- "${base_libdir}/*.a",
- "${base_libdir}/*.o",
- "${datadir}/aclocal",
- "${datadir}/pkgconfig",
- "${includedir}",
- "${libdir}/*.a",
- "${libdir}/*.la",
- "${libdir}/*.o",
- "${libdir}/lib*${SOLIBSDEV}",
- "${libdir}/pkgconfig",
- "${libdir}/python2.7/config/Makefile"
- ],
- "rdepends": [
- "core"
- ],
- "summary": "Python development package"
- },
- "difflib": {
- "summary": "Python helpers for computing deltas between objects",
- "rdepends": [
- "core",
- "lang"
- ],
- "files": [
- "${libdir}/python2.7/difflib.py"
- ]
- },
- "distutils-staticdev": {
- "files": [
- "${libdir}/python2.7/config/lib*.a"
- ],
- "rdepends": [
- "distutils"
- ],
- "summary": "Python distribution utilities (static libraries)"
- },
- "distutils": {
- "summary": "Python Distribution Utilities",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/config",
- "${libdir}/python2.7/distutils"
- ]
- },
- "doctest": {
- "summary": "Python framework for running examples in docstrings",
- "rdepends": [
- "core",
- "crypt",
- "debugger",
- "difflib",
- "fcntl",
- "io",
- "lang",
- "math",
- "pprint",
- "shell",
- "unittest"
- ],
- "files": [
- "${libdir}/python2.7/doctest.py"
- ]
- },
- "email": {
- "summary": "Python email support",
- "rdepends": [
- "contextlib",
- "core",
- "crypt",
- "fcntl",
- "io",
- "lang",
- "math",
- "netclient",
- "pickle",
- "subprocess",
- "textutils",
- "threading"
- ],
- "files": [
- "${libdir}/python2.7/email",
- "${libdir}/python2.7/imaplib.py"
- ]
- },
- "fcntl": {
- "summary": "Python's fcntl interface",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/fcntl.so"
- ]
- },
- "gdbm": {
- "summary": "Python GNU database support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/gdbm.so"
- ]
- },
- "hotshot": {
- "summary": "Python hotshot performance profiler",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/hotshot",
- "${libdir}/python2.7/lib-dynload/_hotshot.so"
- ]
- },
- "html": {
- "summary": "Python HTML processing support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/HTMLParser.py",
- "${libdir}/python2.7/formatter.py",
- "${libdir}/python2.7/htmlentitydefs.py",
- "${libdir}/python2.7/htmllib.py",
- "${libdir}/python2.7/markupbase.py",
- "${libdir}/python2.7/sgmllib.py"
- ]
- },
- "idle": {
- "summary": "Python Integrated Development Environment",
- "rdepends": [
- "core"
- ],
- "files": [
- "${bindir}/idle",
- "${libdir}/python2.7/idlelib"
- ]
- },
- "image": {
- "summary": "Python graphical image handling",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/colorsys.py",
- "${libdir}/python2.7/imghdr.py"
- ]
- },
- "io": {
- "summary": "Python low-level I/O",
- "rdepends": [
- "contextlib",
- "core",
- "crypt",
- "fcntl",
- "lang",
- "math",
- "netclient",
- "textutils"
- ],
- "files": [
- "${libdir}/python2.7/StringIO.py",
- "${libdir}/python2.7/_pyio.py",
- "${libdir}/python2.7/io.py",
- "${libdir}/python2.7/lib-dynload/_io.so",
- "${libdir}/python2.7/lib-dynload/_socket.so",
- "${libdir}/python2.7/lib-dynload/_ssl.so",
- "${libdir}/python2.7/lib-dynload/cStringIO.so",
- "${libdir}/python2.7/lib-dynload/select.so",
- "${libdir}/python2.7/lib-dynload/termios.so",
- "${libdir}/python2.7/pipes.py",
- "${libdir}/python2.7/socket.py",
- "${libdir}/python2.7/ssl.py",
- "${libdir}/python2.7/tempfile.py"
- ]
- },
- "json": {
- "summary": "Python JSON support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/json",
- "${libdir}/python2.7/lib-dynload/_json.so"
- ]
- },
- "lang": {
- "summary": "Python low-level language support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/bisect.py",
- "${libdir}/python2.7/code.py",
- "${libdir}/python2.7/codeop.py",
- "${libdir}/python2.7/dis.py",
- "${libdir}/python2.7/functools.py",
- "${libdir}/python2.7/inspect.py",
- "${libdir}/python2.7/lib-dynload/_bisect.so",
- "${libdir}/python2.7/lib-dynload/_functools.so",
- "${libdir}/python2.7/lib-dynload/array.so",
- "${libdir}/python2.7/lib-dynload/parser.so",
- "${libdir}/python2.7/opcode.py",
- "${libdir}/python2.7/repr.py",
- "${libdir}/python2.7/symbol.py",
- "${libdir}/python2.7/token.py",
- "${libdir}/python2.7/tokenize.py"
- ]
- },
- "logging": {
- "summary": "Python logging support",
- "rdepends": [
- "core",
- "io",
- "threading"
- ],
- "files": [
- "${libdir}/python2.7/logging"
- ]
- },
- "mailbox": {
- "summary": "Python mailbox format support",
- "rdepends": [
- "codecs",
- "contextlib",
- "core",
- "crypt",
- "datetime",
- "email",
- "fcntl",
- "io",
- "lang",
- "math",
- "mime",
- "netclient",
- "textutils"
- ],
- "files": [
- "${libdir}/python2.7/mailbox.py"
- ]
- },
- "math": {
- "summary": "Python math support",
- "rdepends": [
- "core",
- "crypt"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/_random.so",
- "${libdir}/python2.7/lib-dynload/cmath.so",
- "${libdir}/python2.7/lib-dynload/math.so",
- "${libdir}/python2.7/random.py",
- "${libdir}/python2.7/sets.py"
- ]
- },
- "mime": {
- "summary": "Python MIME handling APIs",
- "rdepends": [
- "contextlib",
- "core",
- "crypt",
- "fcntl",
- "io",
- "lang",
- "math",
- "netclient",
- "textutils"
- ],
- "files": [
- "${libdir}/python2.7/MimeWriter.py",
- "${libdir}/python2.7/mimetools.py",
- "${libdir}/python2.7/mimetypes.py",
- "${libdir}/python2.7/quopri.py",
- "${libdir}/python2.7/rfc822.py",
- "${libdir}/python2.7/uu.py"
- ]
- },
- "mmap": {
- "summary": "Python memory-mapped file support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/mmap.so"
- ]
- },
- "modules": {
- "files": [],
- "rdepends": [
- "2to3",
- "argparse",
- "audio",
- "bsddb",
- "codecs",
- "compile",
- "compiler",
- "compression",
- "contextlib",
- "core",
- "crypt",
- "ctypes",
- "curses",
- "datetime",
- "db",
- "debugger",
- "difflib",
- "distutils",
- "doctest",
- "email",
- "fcntl",
- "gdbm",
- "hotshot",
- "html",
- "idle",
- "image",
- "io",
- "json",
- "lang",
- "logging",
- "mailbox",
- "math",
- "mime",
- "mmap",
- "multiprocessing",
- "netclient",
- "netserver",
- "numbers",
- "pickle",
- "pkgutil",
- "plistlib",
- "pprint",
- "profile",
- "pydoc",
- "re",
- "resource",
- "robotparser",
- "runpy",
- "shell",
- "smtpd",
- "sqlite3",
- "sqlite3",
- "stringold",
- "subprocess",
- "syslog",
- "terminal",
- "textutils",
- "threading",
- "tkinter",
- "unittest",
- "unixadmin",
- "xml",
- "xmlrpc",
- "zlib"
- ],
- "summary": "All Python modules"
- },
- "multiprocessing": {
- "summary": "Python multiprocessing support",
- "rdepends": [
- "core",
- "fcntl",
- "io",
- "pickle",
- "subprocess",
- "threading"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/_multiprocessing.so",
- "${libdir}/python2.7/multiprocessing"
- ]
- },
- "netclient": {
- "summary": "Python Internet Protocol clients",
- "rdepends": [
- "codecs",
- "contextlib",
- "core",
- "crypt",
- "ctypes",
- "datetime",
- "email",
- "fcntl",
- "io",
- "lang",
- "math",
- "mime",
- "pickle",
- "subprocess",
- "textutils",
- "threading"
- ],
- "files": [
- "${libdir}/python2.7/Cookie.py",
- "${libdir}/python2.7/_LWPCookieJar.py",
- "${libdir}/python2.7/_MozillaCookieJar.py",
- "${libdir}/python2.7/base64.py",
- "${libdir}/python2.7/cookielib.py",
- "${libdir}/python2.7/ftplib.py",
- "${libdir}/python2.7/hmac.py",
- "${libdir}/python2.7/httplib.py",
- "${libdir}/python2.7/nntplib.py",
- "${libdir}/python2.7/poplib.py",
- "${libdir}/python2.7/smtplib.py",
- "${libdir}/python2.7/telnetlib.py",
- "${libdir}/python2.7/urllib.py",
- "${libdir}/python2.7/urllib2.py",
- "${libdir}/python2.7/urlparse.py",
- "${libdir}/python2.7/uuid.py"
- ]
- },
- "netserver": {
- "summary": "Python Internet Protocol servers",
- "rdepends": [
- "compression",
- "contextlib",
- "core",
- "crypt",
- "fcntl",
- "io",
- "lang",
- "math",
- "mime",
- "netclient",
- "shell",
- "textutils",
- "threading",
- "unixadmin",
- "zlib"
- ],
- "files": [
- "${libdir}/python2.7/BaseHTTPServer.py",
- "${libdir}/python2.7/CGIHTTPServer.py",
- "${libdir}/python2.7/SimpleHTTPServer.py",
- "${libdir}/python2.7/SocketServer.py",
- "${libdir}/python2.7/cgi.py"
- ]
- },
- "numbers": {
- "summary": "Python number APIs",
- "rdepends": [
- "codecs",
- "core",
- "lang",
- "math",
- "threading"
- ],
- "files": [
- "${libdir}/python2.7/decimal.py",
- "${libdir}/python2.7/fractions.py",
- "${libdir}/python2.7/numbers.py"
- ]
- },
- "pickle": {
- "summary": "Python serialisation/persistence support",
- "rdepends": [
- "core",
- "io"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/cPickle.so",
- "${libdir}/python2.7/pickle.py",
- "${libdir}/python2.7/pickletools.py",
- "${libdir}/python2.7/shelve.py"
- ]
- },
- "pkgutil": {
- "summary": "Python package extension utility support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/pkgutil.py"
- ]
- },
- "plistlib": {
- "summary": "Generate and parse Mac OS X .plist files",
- "rdepends": [
- "core",
- "datetime",
- "io"
- ],
- "files": [
- "${libdir}/python2.7/plistlib.py"
- ]
- },
- "pprint": {
- "summary": "Python pretty-print support",
- "rdepends": [
- "core",
- "io"
- ],
- "files": [
- "${libdir}/python2.7/pprint.py"
- ]
- },
- "profile": {
- "summary": "Python basic performance profiling support",
- "rdepends": [
- "codecs",
- "core",
- "lang",
- "resource",
- "textutils"
- ],
- "files": [
- "${libdir}/python2.7/cProfile.py",
- "${libdir}/python2.7/lib-dynload/_lsprof.so",
- "${libdir}/python2.7/profile.py",
- "${libdir}/python2.7/pstats.py"
- ]
- },
- "pydoc": {
- "summary": "Python interactive help support",
- "rdepends": [
- "codecs",
- "core",
- "lang",
- "pkgutil"
- ],
- "files": [
- "${bindir}/pydoc",
- "${libdir}/python2.7/pydoc.py",
- "${libdir}/python2.7/pydoc_data"
- ]
- },
- "re": {
- "summary": "Python Regular Expression APIs",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/sre.py"
- ]
- },
- "resource": {
- "summary": "Python resource control interface",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/resource.so"
- ]
- },
- "robotparser": {
- "summary": "Python robots.txt parser",
- "rdepends": [
- "contextlib",
- "core",
- "io",
- "lang",
- "netclient",
- "textutils"
- ],
- "files": [
- "${libdir}/python2.7/robotparser.py"
- ]
- },
- "runpy": {
- "summary": "Python helper for locating/executing scripts in module namespace",
- "rdepends": [
- "core",
- "pkgutil"
- ],
- "files": [
- "${libdir}/python2.7/runpy.py"
- ]
- },
- "shell": {
- "summary": "Python shell-like functionality",
- "rdepends": [
- "compression",
- "core",
- "io",
- "unixadmin",
- "zlib"
- ],
- "files": [
- "${libdir}/python2.7/cmd.py",
- "${libdir}/python2.7/commands.py",
- "${libdir}/python2.7/dircache.py",
- "${libdir}/python2.7/fnmatch.py",
- "${libdir}/python2.7/glob.py",
- "${libdir}/python2.7/popen2.py",
- "${libdir}/python2.7/shlex.py",
- "${libdir}/python2.7/shutil.py"
- ]
- },
- "smtpd": {
- "summary": "Python Simple Mail Transport Daemon",
- "rdepends": [
- "core",
- "fcntl",
- "io",
- "lang"
- ],
- "files": [
- "${bindir}/smtpd.py",
- "${libdir}/python2.7/asynchat.py",
- "${libdir}/python2.7/asyncore.py",
- "${libdir}/python2.7/smtpd.py"
- ]
- },
- "sqlite3": {
- "summary": "Python Sqlite3 database support",
- "rdepends": [
- "core",
- "datetime"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/_sqlite3.so",
- "${libdir}/python2.7/sqlite3"
- ]
- },
- "stringold": {
- "summary": "Python string APIs [deprecated]",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/stringold.py"
- ]
- },
- "subprocess": {
- "summary": "Python subprocess support",
- "rdepends": [
- "core",
- "fcntl",
- "io",
- "pickle",
- "threading"
- ],
- "files": [
- "${libdir}/python2.7/subprocess.py"
- ]
- },
- "syslog": {
- "summary": "Python syslog interface",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/syslog.so"
- ]
- },
- "terminal": {
- "summary": "Python terminal controlling support",
- "rdepends": [
- "core",
- "io"
- ],
- "files": [
- "${libdir}/python2.7/pty.py",
- "${libdir}/python2.7/tty.py"
- ]
- },
- "textutils": {
- "summary": "Python option parsin",
- "rdepends": [
- "codecs",
- "core",
- "io",
- "lang"
- ],
- "files": [
- "${libdir}/python2.7/csv.py",
- "${libdir}/python2.7/lib-dynload/_csv.so",
- "${libdir}/python2.7/optparse.py",
- "${libdir}/python2.7/textwrap.py"
- ]
- },
- "threading": {
- "summary": "Python threading & synchronization support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/Queue.py",
- "${libdir}/python2.7/_threading_local.py",
- "${libdir}/python2.7/dummy_thread.py",
- "${libdir}/python2.7/dummy_threading.py",
- "${libdir}/python2.7/mutex.py",
- "${libdir}/python2.7/threading.py"
- ]
- },
- "tkinter": {
- "summary": "Python Tcl/Tk bindings",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_tkinter.so",
- "${libdir}/python2.7/lib-tk"
- ]
- },
- "unittest": {
- "summary": "Python unit testing framework",
- "rdepends": [
- "core",
- "difflib",
- "io",
- "lang",
- "pprint",
- "shell"
- ],
- "files": [
- "${libdir}/python2.7/unittest"
- ]
- },
- "unixadmin": {
- "summary": "Python Unix administration support",
- "rdepends": [
- "core",
- "io"
- ],
- "files": [
- "${libdir}/python2.7/getpass.py",
- "${libdir}/python2.7/lib-dynload/grp.so",
- "${libdir}/python2.7/lib-dynload/nis.so"
- ]
- },
- "xml": {
- "summary": "Python basic XML support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/_elementtree.so",
- "${libdir}/python2.7/lib-dynload/pyexpat.so",
- "${libdir}/python2.7/xml"
- ]
- },
- "xmlrpc": {
- "summary": "Python XML-RPC support",
- "rdepends": [
- "codecs",
- "compression",
- "contextlib",
- "core",
- "crypt",
- "datetime",
- "fcntl",
- "io",
- "lang",
- "math",
- "mime",
- "netclient",
- "netserver",
- "pkgutil",
- "pydoc",
- "textutils",
- "threading",
- "xml",
- "zlib"
- ],
- "files": [
- "${libdir}/python2.7/DocXMLRPCServer.py",
- "${libdir}/python2.7/SimpleXMLRPCServer.py",
- "${libdir}/python2.7/xmlrpclib.py"
- ]
- },
- "zlib": {
- "summary": "Python zlib compression support",
- "rdepends": [
- "core"
- ],
- "files": [
- "${libdir}/python2.7/lib-dynload/zlib.so"
- ]
- }
-}
diff --git a/meta/recipes-devtools/python/python/run-ptest b/meta/recipes-devtools/python/python/run-ptest
deleted file mode 100644
index c7002a4560..0000000000
--- a/meta/recipes-devtools/python/python/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-python -mtest -W | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -e '/\.\.\. [ERROR|FAIL]/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'
diff --git a/meta/recipes-devtools/python/python/search_db_h_in_inc_dirs_and_avoid_warning.patch b/meta/recipes-devtools/python/python/search_db_h_in_inc_dirs_and_avoid_warning.patch
deleted file mode 100644
index dacb552ec7..0000000000
--- a/meta/recipes-devtools/python/python/search_db_h_in_inc_dirs_and_avoid_warning.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-python should search for db.h in inc_dirs and not in a hardcoded path.
-If db.h is found but HASHVERSION is not 2 we avoid a warning by not
-adding this module to missing variable.
-
-Upstream-Status: Inappropriate [distribution]
-
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-
-diff --git a/setup.py b/setup.py
-index b887808..ae51607 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1237,6 +1237,8 @@ class PyBuildExt(build_ext):
- # the more recent berkeleydb's db.h file first in the include path
- # when attempting to compile and it will fail.
- f = "/usr/include/db.h"
-+ if len(inc_dirs) != 0:
-+ f = os.path.join(inc_dirs[0], "db.h")
-
- if host_platform == 'darwin':
- if is_macosx_sdk_path(f):
-@@ -1257,8 +1259,10 @@ class PyBuildExt(build_ext):
- libraries=libraries))
- else:
- exts.append(Extension('bsddb185', ['bsddbmodule.c']))
-- else:
-- missing.append('bsddb185')
-+ # If a newer version is detected don't report an useless
-+ # warning
-+ #else:
-+ # missing.append('bsddb185')
- else:
- missing.append('bsddb185')
-
diff --git a/meta/recipes-devtools/python/python/setup_py_skip_cross_import_check.patch b/meta/recipes-devtools/python/python/setup_py_skip_cross_import_check.patch
deleted file mode 100644
index 6ccdb948b9..0000000000
--- a/meta/recipes-devtools/python/python/setup_py_skip_cross_import_check.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-This patch skips over the 'import check' setup.py does when building
-extensions. This generally won't work when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded-specific]
-
-Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
-
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py 2011-11-04 16:46:34.553796410 -0500
-+++ Python-2.7.2/setup.py 2011-11-04 16:59:49.692802313 -0500
-@@ -287,6 +287,15 @@
- (ext.name, sys.exc_info()[1]))
- self.failed.append(ext.name)
- return
-+
-+ # If we're cross-compiling, we want to skip the import check
-+ # i.e. we shouldn't be dynamically loading target shared libs
-+ if os.environ.get('CROSS_COMPILE') is not None:
-+ self.announce(
-+ 'WARNING: skipping import check for cross-compiled "%s"' %
-+ ext.name)
-+ return
-+
- # Workaround for Mac OS X: The Carbon-based modules cannot be
- # reliably imported into a command-line Python
- if 'Carbon' in ext.extra_link_args:
diff --git a/meta/recipes-devtools/python/python/setuptweaks.patch b/meta/recipes-devtools/python/python/setuptweaks.patch
deleted file mode 100644
index 3a91b1916c..0000000000
--- a/meta/recipes-devtools/python/python/setuptweaks.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-This patch removes various ways native system options can pass into the python
-compilation and somehow break C modules.
-
-Upstream-Status: Inappropriate [OE Specific]
-
-RP 2012/04/23
-
-Index: Python-2.7.2/setup.py
-===================================================================
---- Python-2.7.2.orig/setup.py 2012-04-23 20:03:47.295582553 +0000
-+++ Python-2.7.2/setup.py 2012-04-23 20:03:15.000000000 +0000
-@@ -231,7 +231,13 @@
- # compilers
- if compiler is not None:
- (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS')
-- args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags
-+ # Need to filter out -isysroot from the flags. Ideally should
-+ # figure out target flags here.
-+ flags = []
-+ for f in cflags.split():
-+ if not f.startswith("-isystem"):
-+ flags.append(f)
-+ args['compiler_so'] = compiler + ' ' + ccshared + ' ' + ' '.join(flags)
- self.compiler.set_executables(**args)
-
- build_ext.build_extensions(self)
-@@ -393,7 +399,6 @@
- # into configure and stored in the Makefile (issue found on OS X 10.3).
- for env_var, arg_name, dir_list in (
- ('LDFLAGS', '-R', self.compiler.runtime_library_dirs),
-- ('LDFLAGS', '-L', self.compiler.library_dirs),
- ('CPPFLAGS', '-I', self.compiler.include_dirs)):
- env_val = sysconfig.get_config_var(env_var)
- if env_val:
-@@ -419,16 +424,16 @@
- for directory in reversed(options.dirs):
- add_dir_to_list(dir_list, directory)
-
-- if os.path.normpath(sys.prefix) != '/usr' \
-- and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
-+# if os.path.normpath(sys.prefix) != '/usr' \
-+# and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
- # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
- # (PYTHONFRAMEWORK is set) to avoid # linking problems when
- # building a framework with different architectures than
- # the one that is currently installed (issue #7473)
-- add_dir_to_list(self.compiler.library_dirs,
-- sysconfig.get_config_var("LIBDIR"))
-- add_dir_to_list(self.compiler.include_dirs,
-- sysconfig.get_config_var("INCLUDEDIR"))
-+# add_dir_to_list(self.compiler.library_dirs,
-+# sysconfig.get_config_var("LIBDIR"))
-+# add_dir_to_list(self.compiler.include_dirs,
-+# sysconfig.get_config_var("INCLUDEDIR"))
-
- try:
- have_unicode = unicode
diff --git a/meta/recipes-devtools/python/python/sitecustomize.py b/meta/recipes-devtools/python/python/sitecustomize.py
deleted file mode 100644
index 4c8b5e2ba3..0000000000
--- a/meta/recipes-devtools/python/python/sitecustomize.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# OpenEmbedded sitecustomize.py (C) 2002-2008 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
-# GPLv2 or later
-# Version: 20081123
-# Features:
-# * set proper default encoding
-# * enable readline completion in the interactive interpreter
-# * load command line history on startup
-# * save command line history on exit
-
-import os
-
-def __exithandler():
- try:
- readline.write_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) )
- except IOError:
- pass
-
-def __registerExitHandler():
- import atexit
- atexit.register( __exithandler )
-
-def __enableReadlineSupport():
- readline.set_history_length( 1000 )
- readline.parse_and_bind( "tab: complete" )
- try:
- readline.read_history_file( "%s/.python-history" % os.getenv( "HOME", "/tmp" ) )
- except IOError:
- pass
-
-import sys
-try:
- import rlcompleter, readline
-except ImportError:
- pass
-else:
- __registerExitHandler()
- __enableReadlineSupport()
diff --git a/meta/recipes-devtools/python/python/support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch b/meta/recipes-devtools/python/python/support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch
deleted file mode 100644
index 12651798ee..0000000000
--- a/meta/recipes-devtools/python/python/support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-The compiled .pyc files contain time stamp corresponding to the compile time.
-This prevents binary reproducibility. This patch allows to achieve binary
-reproducibility by overriding the build time stamp by the value
-exported via SOURCE_DATE_EPOCH.
-
-Patch by Bernhard M. Wiedemann
-
-Upstream-Status: Backport
-
-Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
-
-Fri Feb 24 17:08:25 UTC 2017 - bwiedemann@suse.com
-
-- Add reproducible.patch to allow reproducible builds of various
- python packages like python-amqp
- Upstream: https://github.com/python/cpython/pull/296
-
-
-@@ -0,0 +1,15 @@
-Index: Python-2.7.13/Lib/py_compile.py
-===================================================================
---- Python-2.7.13.orig/Lib/py_compile.py
-+++ Python-2.7.13/Lib/py_compile.py
-@@ -108,6 +108,10 @@ def compile(file, cfile=None, dfile=None
- timestamp = long(os.fstat(f.fileno()).st_mtime)
- except AttributeError:
- timestamp = long(os.stat(file).st_mtime)
-+ sde = os.environ.get('SOURCE_DATE_EPOCH')
-+ if sde and timestamp > int(sde):
-+ timestamp = int(sde)
-+ os.utime(file, (timestamp, timestamp))
- codestring = f.read()
- try:
- codeobject = __builtin__.compile(codestring, dfile or file,'exec')
diff --git a/meta/recipes-devtools/python/python/use_sysroot_ncurses_instead_of_host.patch b/meta/recipes-devtools/python/python/use_sysroot_ncurses_instead_of_host.patch
deleted file mode 100644
index fb4a3bcf95..0000000000
--- a/meta/recipes-devtools/python/python/use_sysroot_ncurses_instead_of_host.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Python tries to use ncursesw from the host,
-if it is not found causes an error on configure,
-we should use ncursesw from sysroot instead
-
-Upstream-Status: Pending
-
-Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-
-Index: Python-2.7.9/configure.ac
-===================================================================
---- Python-2.7.9.orig/configure.ac
-+++ Python-2.7.9/configure.ac
-@@ -4311,7 +4311,7 @@ fi
-
- # first curses configure check
- ac_save_cppflags="$CPPFLAGS"
--CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
-+CPPFLAGS="$CPPFLAGS -I=/usr/include/ncursesw"
-
- AC_CHECK_HEADERS(curses.h ncurses.h)
-
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-dbus_1.2.12.bb b/meta/recipes-devtools/python/python3-dbus_1.2.16.bb
index d005dc4a90..e1700fa869 100644
--- a/meta/recipes-devtools/python/python3-dbus_1.2.12.bb
+++ b/meta/recipes-devtools/python/python3-dbus_1.2.16.bb
@@ -7,8 +7,8 @@ DEPENDS = "expat dbus glib-2.0 virtual/libintl"
SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz"
-SRC_URI[md5sum] = "428b7a9e7e2d154a7ceb3e13536283e4"
-SRC_URI[sha256sum] = "cdd4de2c4f5e58f287b12013ed7b41dee81d503c8d0d2397c5bd2fb01badf260"
+SRC_URI[md5sum] = "51a45c973d82bedff033a4b57d69d5d8"
+SRC_URI[sha256sum] = "11238f1d86c995d8aed2e22f04a1e3779f0d70e587caffeab4857f3c662ed5a4"
S = "${WORKDIR}/dbus-python-${PV}"
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.2.bb b/meta/recipes-devtools/python/python3-git_3.1.7.bb
index 9dd753db4f..6d1fc4b653 100644
--- a/meta/recipes-devtools/python/python3-git_3.0.2.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] = "ccec14a5c9f18702406122983d80032c"
-SRC_URI[sha256sum] = "d2f4945f8260f6981d724f5957bc076398ada55cb5d25aaee10108bcdc894100"
+SRC_URI[sha256sum] = "2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858"
DEPENDS += " ${PYTHON_PN}-gitdb"
diff --git a/meta/recipes-devtools/python/python3-gitdb_2.0.5.bb b/meta/recipes-devtools/python/python3-gitdb_2.0.5.bb
deleted file mode 100644
index fe158327cb..0000000000
--- a/meta/recipes-devtools/python/python3-gitdb_2.0.5.bb
+++ /dev/null
@@ -1,2 +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
new file mode 100644
index 0000000000..3a2d8733e9
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python interface to libarchive"
+DESCRIPTION = "A Python interface to libarchive. It uses the standard ctypes module to \
+ dynamically load and access the C library."
+HOMEPAGE = "https://github.com/Changaco/python-libarchive-c"
+LICENSE = "CC0-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc"
+
+PYPI_PACKAGE = "libarchive-c"
+
+inherit pypi setuptools3
+
+SRC_URI[md5sum] = "083bd2cb0043c1e22a52cb9a05e31532"
+SRC_URI[sha256sum] = "9919344cec203f5db6596a29b5bc26b07ba9662925a05e24980b84709232ef60"
+
+RDEPENDS_${PN} += "\
+ libarchive \
+ ${PYTHON_PN}-ctypes \
+ ${PYTHON_PN}-mmap \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/python/python3-magic_0.4.18.bb b/meta/recipes-devtools/python/python3-magic_0.4.18.bb
new file mode 100644
index 0000000000..101b96d31c
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-magic_0.4.18.bb
@@ -0,0 +1,22 @@
+SUMMARY = "File type identification using libmagic"
+DESCRIPTION = "This module uses ctypes to access the libmagic file type \
+ identification library. It makes use of the local magic database and supports \
+ both textual and MIME-type output."
+HOMEPAGE = "http://github.com/ahupp/python-magic"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=16a934f165e8c3245f241e77d401bb88"
+
+PYPI_PACKAGE = "python-magic"
+
+inherit pypi setuptools3
+
+SRC_URI[md5sum] = "5edc6caa39cc62641850f6b1b6f284ba"
+SRC_URI[sha256sum] = "b757db2a5289ea3f1ced9e60f072965243ea43a2221430048fd8cacab17be0ce"
+
+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-pbr_5.4.3.bb b/meta/recipes-devtools/python/python3-pbr_5.4.3.bb
deleted file mode 100644
index e7835e7a97..0000000000
--- a/meta/recipes-devtools/python/python3-pbr_5.4.3.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-inherit setuptools3
-require python-pbr.inc
-
-SRC_URI[md5sum] = "477d2aa285ad97250a172b199f4060b7"
-SRC_URI[sha256sum] = "2c8e420cd4ed4cec4e7999ee47409e876af575d4c35a45840d59e8b5f3155ab8"
diff --git a/meta/recipes-devtools/python/python3-pbr_5.4.4.bb b/meta/recipes-devtools/python/python3-pbr_5.4.4.bb
new file mode 100644
index 0000000000..6f335ea341
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pbr_5.4.4.bb
@@ -0,0 +1,5 @@
+inherit setuptools3
+require python-pbr.inc
+
+SRC_URI[md5sum] = "65cdc32e1a1ff56d481fc15aa8caf988"
+SRC_URI[sha256sum] = "139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b"
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_19.2.3.bb b/meta/recipes-devtools/python/python3-pip_20.0.2.bb
index 019e327e0c..99eeea2edf 100644
--- a/meta/recipes-devtools/python/python3-pip_19.2.3.bb
+++ b/meta/recipes-devtools/python/python3-pip_20.0.2.bb
@@ -1,13 +1,15 @@
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[md5sum] = "f417444c66a0db1a82c8d9d2283a2f95"
-SRC_URI[sha256sum] = "e7a31f147974362e6c82d84b91c7f2bdf57e4d3163d3d454e6c3e71944d67135"
+SRC_URI += "file://0001-change-shebang-to-python3.patch"
+
+SRC_URI[md5sum] = "7d42ba49b809604f0df3d55df1c3fd86"
+SRC_URI[sha256sum] = "7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f"
inherit pypi distutils3
diff --git a/meta/recipes-devtools/python/python3-pycairo_1.18.1.bb b/meta/recipes-devtools/python/python3-pycairo_1.19.1.bb
index 5aaa01a00a..34c8543bce 100644
--- a/meta/recipes-devtools/python/python3-pycairo_1.18.1.bb
+++ b/meta/recipes-devtools/python/python3-pycairo_1.19.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://cairographics.org/pycairo"
BUGTRACKER = "http://bugs.freedesktop.org"
SECTION = "python-devel"
LICENSE = "LGPLv2.1 & MPLv1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f2e071ab72978431b294a0d696327421 \
+LIC_FILES_CHKSUM = "file://COPYING;md5=f3713ca2c28d9312ad718520b6dc3eee \
file://COPYING-LGPL-2.1;md5=fad9b3332be894bab9bc501572864b29 \
file://COPYING-MPL-1.1;md5=bfe1f75d606912a4111c90743d6c7325"
@@ -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] = "7610da8a40a7bed548991aa3416431d1"
-SRC_URI[sha256sum] = "70172e58b6bad7572a3518c26729b074acdde15e6fee6cbab6d3528ad552b786"
+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.4.2.bb b/meta/recipes-devtools/python/python3-pygments_2.6.1.bb
index 35c0ac6a57..bffef59e69 100644
--- a/meta/recipes-devtools/python/python3-pygments_2.4.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] = "5ecc3fbb2a783e917b369271fc0e6cd1"
-SRC_URI[sha256sum] = "881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297"
+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_41.2.0.bb b/meta/recipes-devtools/python/python3-setuptools_41.2.0.bb
deleted file mode 100644
index 0dc1ed8622..0000000000
--- a/meta/recipes-devtools/python/python3-setuptools_41.2.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 322197eed8..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] = "a3470ce184da33f0fa6c9f44f6221bc0"
-SRC_URI[sha256sum] = "66b86bbae7cc7ac2e867f52dc08a6bd064d938bac59dfec71b9b565dd36d6012"
+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.12.0.bb b/meta/recipes-devtools/python/python3-six_1.12.0.bb
deleted file mode 100644
index 8795313bec..0000000000
--- a/meta/recipes-devtools/python/python3-six_1.12.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-six.inc
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/no_traceback2.patch b/meta/recipes-devtools/python/python3-testtools/no_traceback2.patch
new file mode 100644
index 0000000000..594510342b
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-testtools/no_traceback2.patch
@@ -0,0 +1,23 @@
+traceback2 adds traceback for python2. Rather than depend on traceback2, we're
+python3 only so just use traceback.
+This caused breakage in oe-selftest -j which uses testtools on the autobuilder
+using buildtools-tarball.
+
+Upstream-Status: Inappropriate [Our recipe is python3 specific]
+(Once py2 is EOL upstream probably could/should take this)
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: testtools-2.3.0/testtools/content.py
+===================================================================
+--- testtools-2.3.0.orig/testtools/content.py
++++ testtools-2.3.0/testtools/content.py
+@@ -19,8 +19,7 @@ import os
+ import sys
+
+ from extras import try_import
+-# To let setup.py work, make this a conditional import.
+-traceback = try_import('traceback2')
++import traceback
+
+ from testtools.compat import (
+ _b,
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 896ecee65c..a254b90a75 100644
--- a/meta/recipes-devtools/python/python3-testtools_2.3.0.bb
+++ b/meta/recipes-devtools/python/python3-testtools_2.4.0.bb
@@ -1,2 +1,4 @@
inherit setuptools3
require python-testtools.inc
+
+SRC_URI += "file://no_traceback2.patch"
diff --git a/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch b/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
index 09f279ba1d..59592821d7 100644
--- a/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
+++ b/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
@@ -1,4 +1,4 @@
-From 23294c6ba6896115828293fdb7e67b47b38ba675 Mon Sep 17 00:00:00 2001
+From 039c53dd5baddec3359a05be0bff46a3b32bbb84 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 25 Jan 2019 19:04:13 +0100
Subject: [PATCH] Do not add /usr/lib/termcap to linker flags to avoid host
@@ -12,14 +12,14 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 1 deletion(-)
diff --git a/setup.py b/setup.py
-index b4357e3..fbec00d 100644
+index 20d7f35..ab18ff0 100644
--- a/setup.py
+++ b/setup.py
-@@ -856,7 +856,6 @@ class PyBuildExt(build_ext):
+@@ -957,7 +957,6 @@ class PyBuildExt(build_ext):
'termcap'):
readline_libs.append('termcap')
- exts.append( Extension('readline', ['readline.c'],
-- library_dirs=['/usr/lib/termcap'],
- extra_link_args=readline_extra_link_args,
- libraries=readline_libs) )
+ self.add(Extension('readline', ['readline.c'],
+- library_dirs=['/usr/lib/termcap'],
+ extra_link_args=readline_extra_link_args,
+ libraries=readline_libs))
else:
diff --git a/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch b/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
index 661f52d01f..112c979441 100644
--- a/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
+++ b/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
@@ -1,4 +1,4 @@
-From 0fbdad1eaf541a8e92be81f39514cd249b3b0801 Mon Sep 17 00:00:00 2001
+From a078b6ff1492e848ad1055764fb9a414abaf3e12 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 5 Feb 2019 15:52:02 +0100
Subject: [PATCH] Do not hardcode "lib" as location for modules, site-packages
@@ -11,13 +11,13 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Include/pythonrun.h | 2 ++
Lib/site.py | 4 ++--
Makefile.pre.in | 5 +++--
- Modules/getpath.c | 18 ++++++++++++------
+ Modules/getpath.c | 22 ++++++++++++++--------
Python/getplatform.c | 10 ++++++++++
Python/sysmodule.c | 2 ++
- 6 files changed, 31 insertions(+), 10 deletions(-)
+ 6 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/Include/pythonrun.h b/Include/pythonrun.h
-index 6f0c6fc..0a17edd 100644
+index 46091e0..61b2e15 100644
--- a/Include/pythonrun.h
+++ b/Include/pythonrun.h
@@ -7,6 +7,8 @@
@@ -28,12 +28,12 @@ index 6f0c6fc..0a17edd 100644
+
#ifndef Py_LIMITED_API
PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *);
- PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *);
+ PyAPI_FUNC(int) PyRun_AnyFileExFlags(
diff --git a/Lib/site.py b/Lib/site.py
-index ffd132b..b55f6d8 100644
+index a065ab0..1d720ef 100644
--- a/Lib/site.py
+++ b/Lib/site.py
-@@ -334,12 +334,12 @@ def getsitepackages(prefixes=None):
+@@ -335,12 +335,12 @@ def getsitepackages(prefixes=None):
seen.add(prefix)
if os.sep == '/':
@@ -49,10 +49,10 @@ index ffd132b..b55f6d8 100644
def addsitepackages(known_paths, prefixes=None):
diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 6e81b2f..671a20e 100644
+index 65665df..be49140 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
-@@ -142,7 +142,7 @@ LIBDIR= @libdir@
+@@ -143,7 +143,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
@@ -61,7 +61,7 @@ index 6e81b2f..671a20e 100644
ABIFLAGS= @ABIFLAGS@
# Detailed destination directories
-@@ -768,6 +768,7 @@ Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
+@@ -753,6 +753,7 @@ Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
-DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \
@@ -69,8 +69,8 @@ index 6e81b2f..671a20e 100644
-o $@ $(srcdir)/Modules/getpath.c
Programs/python.o: $(srcdir)/Programs/python.c
-@@ -856,7 +857,7 @@ regen-opcode:
- Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
+@@ -868,7 +869,7 @@ regen-symbol: $(srcdir)/Include/graminit.h
+ Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o Parser/parsetok.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
Python/getplatform.o: $(srcdir)/Python/getplatform.c
- $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
@@ -79,72 +79,90 @@ index 6e81b2f..671a20e 100644
Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
diff --git a/Modules/getpath.c b/Modules/getpath.c
-index e6a3e8e..0c62af6 100644
+index b727f66..c003e46 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
-@@ -123,6 +123,7 @@ typedef struct {
- wchar_t *exec_prefix; /* EXEC_PREFIX define */
+@@ -128,6 +128,7 @@ typedef struct {
+ wchar_t *exec_prefix; /* EXEC_PREFIX macro */
wchar_t *lib_python; /* "lib/pythonX.Y" */
+ wchar_t *multilib_python; /* "lib[suffix]/pythonX.Y" */
- wchar_t argv0_path[MAXPATHLEN+1];
- wchar_t zip_path[MAXPATHLEN+1]; /* ".../lib/pythonXY.zip" */
-@@ -314,7 +315,7 @@ search_for_prefix(const _PyCoreConfig *core_config,
+ int prefix_found; /* found platform independent libraries? */
+ int exec_prefix_found; /* found the platform dependent libraries? */
+@@ -386,7 +387,7 @@ search_for_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
if (delim) {
*delim = L'\0';
}
-- joinpath(prefix, calculate->lib_python);
-+ joinpath(prefix, calculate->multilib_python);
- joinpath(prefix, LANDMARK);
- return 1;
- }
-@@ -343,7 +344,7 @@ search_for_prefix(const _PyCoreConfig *core_config,
- copy_absolute(prefix, calculate->argv0_path, MAXPATHLEN+1);
+- status = joinpath(prefix, calculate->lib_python, prefix_len);
++ status = joinpath(prefix, calculate->multilib_python, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+@@ -444,7 +445,7 @@ search_for_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
do {
- n = wcslen(prefix);
-- joinpath(prefix, calculate->lib_python);
-+ joinpath(prefix, calculate->multilib_python);
- joinpath(prefix, LANDMARK);
- if (ismodule(prefix)) {
- return 1;
-@@ -355,7 +356,7 @@ search_for_prefix(const _PyCoreConfig *core_config,
- /* Look at configure's PREFIX */
- wcsncpy(prefix, calculate->prefix, MAXPATHLEN);
- prefix[MAXPATHLEN] = L'\0';
-- joinpath(prefix, calculate->lib_python);
-+ joinpath(prefix, calculate->multilib_python);
- joinpath(prefix, LANDMARK);
- if (ismodule(prefix)) {
- return 1;
-@@ -427,7 +428,7 @@ search_for_exec_prefix(const _PyCoreConfig *core_config,
- wcsncpy(exec_prefix, core_config->home, MAXPATHLEN);
+ /* Path: <argv0_path or substring> / <lib_python> / LANDMARK */
+ size_t n = wcslen(prefix);
+- status = joinpath(prefix, calculate->lib_python, prefix_len);
++ status = joinpath(prefix, calculate->multilib_python, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
- exec_prefix[MAXPATHLEN] = L'\0';
-- joinpath(exec_prefix, calculate->lib_python);
-+ joinpath(exec_prefix, calculate->multilib_python);
- joinpath(exec_prefix, L"lib-dynload");
- return 1;
+@@ -467,7 +468,7 @@ search_for_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
+ if (safe_wcscpy(prefix, calculate->prefix, prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
+- status = joinpath(prefix, calculate->lib_python, prefix_len);
++ status = joinpath(prefix, calculate->multilib_python, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
}
-@@ -464,7 +465,7 @@ search_for_exec_prefix(const _PyCoreConfig *core_config,
- copy_absolute(exec_prefix, calculate->argv0_path, MAXPATHLEN+1);
+@@ -510,7 +511,7 @@ calculate_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
+ if (safe_wcscpy(prefix, calculate->prefix, prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
+- status = joinpath(prefix, calculate->lib_python, prefix_len);
++ status = joinpath(prefix, calculate->multilib_python, prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+@@ -635,7 +636,7 @@ search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
+ return PATHLEN_ERR();
+ }
+ }
+- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
++ status = joinpath(exec_prefix, calculate->multilib_python, exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+@@ -667,7 +668,7 @@ search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
do {
- n = wcslen(exec_prefix);
-- joinpath(exec_prefix, calculate->lib_python);
-+ joinpath(exec_prefix, calculate->multilib_python);
- joinpath(exec_prefix, L"lib-dynload");
- if (isdir(exec_prefix)) {
- return 1;
-@@ -476,7 +477,7 @@ search_for_exec_prefix(const _PyCoreConfig *core_config,
- /* Look at configure's EXEC_PREFIX */
- wcsncpy(exec_prefix, calculate->exec_prefix, MAXPATHLEN);
- exec_prefix[MAXPATHLEN] = L'\0';
-- joinpath(exec_prefix, calculate->lib_python);
-+ joinpath(exec_prefix, calculate->multilib_python);
- joinpath(exec_prefix, L"lib-dynload");
- if (isdir(exec_prefix)) {
- return 1;
-@@ -871,6 +872,10 @@ calculate_init(PyCalculatePath *calculate,
+ /* Path: <argv0_path or substring> / <lib_python> / "lib-dynload" */
+ size_t n = wcslen(exec_prefix);
+- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
++ status = joinpath(exec_prefix, calculate->multilib_python, exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+@@ -689,7 +690,7 @@ search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
+ if (safe_wcscpy(exec_prefix, calculate->exec_prefix, exec_prefix_len) < 0) {
+ return PATHLEN_ERR();
+ }
+- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
++ status = joinpath(exec_prefix, calculate->multilib_python, exec_prefix_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ return status;
+ }
+@@ -928,7 +929,7 @@ calculate_argv0_path(PyCalculatePath *calculate, const wchar_t *program_full_pat
+ return PATHLEN_ERR();
+ }
+ reduce(argv0_path);
+- status = joinpath(argv0_path, calculate->lib_python, argv0_path_len);
++ status = joinpath(argv0_path, calculate->multilib_python, argv0_path_len);
+ if (_PyStatus_EXCEPTION(status)) {
+ PyMem_RawFree(wbuf);
+ return status;
+@@ -1201,6 +1202,10 @@ calculate_init(PyCalculatePath *calculate, const PyConfig *config)
if (!calculate->lib_python) {
return DECODE_LOCALE_ERR("EXEC_PREFIX define", len);
}
@@ -152,10 +170,10 @@ index e6a3e8e..0c62af6 100644
+ if (!calculate->multilib_python) {
+ return DECODE_LOCALE_ERR("EXEC_PREFIX define", len);
+ }
- return _Py_INIT_OK();
- }
-@@ -882,6 +887,7 @@ calculate_free(PyCalculatePath *calculate)
+ calculate->warnings = config->pathconfig_warnings;
+ calculate->pythonpath_env = config->pythonpath_env;
+@@ -1216,6 +1221,7 @@ calculate_free(PyCalculatePath *calculate)
PyMem_RawFree(calculate->prefix);
PyMem_RawFree(calculate->exec_prefix);
PyMem_RawFree(calculate->lib_python);
@@ -182,10 +200,10 @@ index 81a0f7a..d55396b 100644
+ return LIB;
+}
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
-index efe5b29..de77b17 100644
+index 5b0fb81..0dce754 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
-@@ -2319,6 +2319,8 @@ _PySys_BeginInit(PyObject **sysmod)
+@@ -2668,6 +2668,8 @@ _PySys_InitCore(_PyRuntimeState *runtime, PyInterpreterState *interp,
PyUnicode_FromString(Py_GetCopyright()));
SET_SYS_FROM_STRING("platform",
PyUnicode_FromString(Py_GetPlatform()));
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-Makefile-do-not-compile-.pyc-in-parallel.patch b/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch
new file mode 100644
index 0000000000..b1bceac512
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch
@@ -0,0 +1,58 @@
+From c501e121a872cbcef8ffe626c1de173a125be9f8 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 16 Jan 2020 12:34:20 +0100
+Subject: [PATCH] Makefile: do not compile .pyc in parallel
+
+This was found to break reproducibility, and produce strange file ownership
+races.
+
+The upstream commit introducing the change was:
+https://github.com/python/cpython/commit/1a2dd82f56bd813aacc570e172cefe55a8a41504
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.pre.in | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 1241112..5dfdf44 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1457,30 +1457,30 @@ libinstall: build_all $(srcdir)/Modules/xxmodule.c
+ fi
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
+- -j0 -d $(LIBDEST) -f \
++ -d $(LIBDEST) -f \
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+ $(DESTDIR)$(LIBDEST)
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
+- -j0 -d $(LIBDEST) -f \
++ -d $(LIBDEST) -f \
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+ $(DESTDIR)$(LIBDEST)
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
+- -j0 -d $(LIBDEST) -f \
++ -d $(LIBDEST) -f \
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+ $(DESTDIR)$(LIBDEST)
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
+- -j0 -d $(LIBDEST)/site-packages -f \
++ -d $(LIBDEST)/site-packages -f \
+ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
+- -j0 -d $(LIBDEST)/site-packages -f \
++ -d $(LIBDEST)/site-packages -f \
+ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
+- -j0 -d $(LIBDEST)/site-packages -f \
++ -d $(LIBDEST)/site-packages -f \
+ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
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 e7af88654d..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 7535c39951b9d15dd64c4669092a8582ba555466 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
@@ -12,15 +12,17 @@ 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 | 169 ++++++---------------------------------------------
- 1 file changed, 17 insertions(+), 152 deletions(-)
+ configure.ac | 175 +++++++--------------------------------------------
+ 1 file changed, 21 insertions(+), 154 deletions(-)
diff --git a/configure.ac b/configure.ac
-index a7de901e08..a73e2de51b 100644
+index ede710e..bc81b0b 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -727,158 +727,23 @@ fi
+@@ -710,160 +710,27 @@ fi
MULTIARCH=$($CC --print-multiarch 2>/dev/null)
AC_SUBST(MULTIARCH)
@@ -163,6 +165,8 @@ index a7de901e08..a73e2de51b 100644
- i386-gnu
-#elif defined(__APPLE__)
- darwin
+-#elif defined(__VXWORKS__)
+- vxworks
-#else
-# error unknown platform triplet
-#endif
@@ -190,12 +194,16 @@ index a7de901e08..a73e2de51b 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.21.0
+2.24.1
diff --git a/meta/recipes-devtools/python/python3/0001-configure.ac-fix-LIBPL.patch b/meta/recipes-devtools/python/python3/0001-configure.ac-fix-LIBPL.patch
new file mode 100644
index 0000000000..123ce3a2dc
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0001-configure.ac-fix-LIBPL.patch
@@ -0,0 +1,35 @@
+From acce3d441e7eadadd2d3ce38654155dc43f1f607 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 7 Feb 2020 09:36:25 +0800
+Subject: [PATCH] configure.ac: fix LIBPL
+
+Use LIBDIR rather than prefix/lib, so that it would work when lib64.
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+Signed-off-by: Li Zhou <li.zhou@windriver.c>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ce04258..915f475 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4532,9 +4532,9 @@ fi
+ dnl define LIBPL after ABIFLAGS and LDVERSION is defined.
+ AC_SUBST(PY_ENABLE_SHARED)
+ if test x$PLATFORM_TRIPLET = x; then
+- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
++ LIBPL='$(LIBDIR)'"/python${VERSION}/config-${LDVERSION}"
+ else
+- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
++ LIBPL='$(LIBDIR)'"/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}"
+ fi
+ AC_SUBST(LIBPL)
+
+--
+2.7.4
+
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 1741f5753b..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 17796e353acf08acd604610f34840a4a9d2f4b54 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
@@ -15,10 +15,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
2 files changed, 4 insertions(+)
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index e07a6c8..6b8c129 100644
+index b51629e..2df348c 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
-@@ -421,6 +421,8 @@ def _init_posix():
+@@ -438,6 +438,8 @@ def _init_posix():
platform=sys.platform,
multiarch=getattr(sys.implementation, '_multiarch', ''),
))
@@ -28,10 +28,10 @@ index e07a6c8..6b8c129 100644
build_time_vars = _temp.build_time_vars
global _config_vars
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
-index 9ee4d31..e586abd 100644
+index b2d790b..405273c 100644
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
-@@ -412,6 +412,8 @@ def _init_posix(vars):
+@@ -419,6 +419,8 @@ def _init_posix(vars):
"""Initialize the module as appropriate for POSIX systems."""
# _sysconfigdata is generated at build time, see _generate_posix_vars()
name = _get_sysconfigdata_name()
diff --git a/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch b/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch
deleted file mode 100644
index a0ed7cc830..0000000000
--- a/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From ffe7797637f08cd6ee4c82e2d67462c5e194d30a Mon Sep 17 00:00:00 2001
-From: Jaewon Lee <jaewon.lee@xilinx.com>
-Date: Thu, 25 Apr 2019 15:34:26 -0700
-Subject: [PATCH] main.c: if OEPYTHON3HOME is set use instead of PYTHONHOME
-
-There is one variable PYTHONHOME to determine where libraries are coming
-from for both python2 and python3. This becomes an issue if only one has
-libraries in the specified PYTHONHOME path, but they are using the same
-PYTHONHOME. Creating another variable OEPYTHON3HOME to allow for a way
-to set a different path for python3
-
-Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
-
-Upstream-Status: Inappropriate [OE specific configuration]
----
- Modules/main.c | 17 +++++++++++++----
- 1 file changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/Modules/main.c b/Modules/main.c
-index a745381..b553e30 100644
---- a/Modules/main.c
-+++ b/Modules/main.c
-@@ -1855,10 +1855,19 @@ config_init_home(_PyCoreConfig *config)
- }
- return _Py_INIT_OK();
- }
--
-- int res = config_get_env_var_dup(&home, L"PYTHONHOME", "PYTHONHOME");
-- if (res < 0) {
-- return DECODE_LOCALE_ERR("PYTHONHOME", res);
-+ int res;
-+ const char *oepython3home = config_get_env_var("OEPYTHON3HOME");
-+ if (oepython3home) {
-+ res = config_get_env_var_dup(&home, L"OEPYTHON3HOME", "OEPYTHON3HOME");
-+ if (res < 0) {
-+ return DECODE_LOCALE_ERR("OEPYTHON3HOME", res);
-+ }
-+ }
-+ else {
-+ res = config_get_env_var_dup(&home, L"PYTHONHOME", "PYTHONHOME");
-+ if (res < 0) {
-+ return DECODE_LOCALE_ERR("PYTHONHOME", res);
-+ }
- }
- config->home = home;
- return _Py_INIT_OK();
---
-2.7.4
-
diff --git a/meta/recipes-devtools/python/python3/0001-python3-Do-not-hardcode-lib-for-distutils.patch b/meta/recipes-devtools/python/python3/0001-python3-Do-not-hardcode-lib-for-distutils.patch
new file mode 100644
index 0000000000..fe031b9983
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0001-python3-Do-not-hardcode-lib-for-distutils.patch
@@ -0,0 +1,43 @@
+From bb711b53f10d32a90a27ccf4b0dc51e4a701d862 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 7 Feb 2020 09:42:09 +0800
+Subject: [PATCH] python3: Do not hardcode "lib" for distutils
+
+Get the sys.lib from python3 itself and do not use
+hardcoded value of 'lib' for distutils.
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Lib/distutils/command/install.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
+index c625c95..8e32f54 100644
+--- a/Lib/distutils/command/install.py
++++ b/Lib/distutils/command/install.py
+@@ -19,6 +19,8 @@ from site import USER_BASE
+ from site import USER_SITE
+ HAS_USER_SITE = True
+
++libname = sys.lib
++
+ WINDOWS_SCHEME = {
+ 'purelib': '$base/Lib/site-packages',
+ 'platlib': '$base/Lib/site-packages',
+@@ -29,8 +31,8 @@ WINDOWS_SCHEME = {
+
+ INSTALL_SCHEMES = {
+ 'unix_prefix': {
+- 'purelib': '$base/lib/python$py_version_short/site-packages',
+- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
++ 'purelib': '$base/' + libname + '/python$py_version_short/site-packages',
++ 'platlib': '$platbase/' + libname + '/python$py_version_short/site-packages',
+ 'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
+ 'scripts': '$base/bin',
+ 'data' : '$base',
+--
+2.7.4
+
diff --git a/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch b/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
index 5735954628..fb10ca94b3 100644
--- a/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
+++ b/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
@@ -1,4 +1,4 @@
-From 2645317fef09afe31b01bb2c1d4fe5b9afdbb11a Mon Sep 17 00:00:00 2001
+From 994783da5c21cab81b6589ed2d4275e665a946f9 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Mon, 22 Oct 2018 15:19:51 +0800
Subject: [PATCH] python3: use cc_basename to replace CC for checking compiler
@@ -21,12 +21,13 @@ Signed-off-by: Li Zhou <li.zhou@windriver.com>
patch originally from Li Zhou, I just rework it to new version
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
---
configure.ac | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/configure.ac b/configure.ac
-index a7de901..4a3681f 100644
+index a189d42..0f85486 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,6 +54,7 @@ AC_CONFIG_HEADER(pyconfig.h)
@@ -37,7 +38,7 @@ index a7de901..4a3681f 100644
# pybuilddir.txt will be created by --generate-posix-vars in the Makefile
rm -f pybuilddir.txt
-@@ -695,7 +696,7 @@ AC_MSG_RESULT($with_cxx_main)
+@@ -671,7 +672,7 @@ AC_MSG_RESULT($with_cxx_main)
preset_cxx="$CXX"
if test -z "$CXX"
then
@@ -46,7 +47,7 @@ index a7de901..4a3681f 100644
gcc) AC_PATH_TOOL(CXX, [g++], [g++], [notfound]) ;;
cc) AC_PATH_TOOL(CXX, [c++], [c++], [notfound]) ;;
clang|*/clang) AC_PATH_TOOL(CXX, [clang++], [clang++], [notfound]) ;;
-@@ -979,7 +980,7 @@ rmdir CaseSensitiveTestDir
+@@ -957,7 +958,7 @@ rmdir CaseSensitiveTestDir
case $ac_sys_system in
hp*|HP*)
@@ -55,7 +56,7 @@ index a7de901..4a3681f 100644
cc|*/cc) CC="$CC -Ae";;
esac;;
esac
-@@ -1336,7 +1337,7 @@ else
+@@ -1335,7 +1336,7 @@ else
fi],
[AC_MSG_RESULT(no)])
if test "$Py_LTO" = 'true' ; then
@@ -63,8 +64,8 @@ index a7de901..4a3681f 100644
+ case $cc_basename in
*clang*)
AC_SUBST(LLVM_AR)
- AC_PATH_TARGET_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path})
-@@ -1426,7 +1427,7 @@ then
+ AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path})
+@@ -1425,7 +1426,7 @@ then
fi
fi
LLVM_PROF_ERR=no
@@ -73,16 +74,16 @@ index a7de901..4a3681f 100644
*clang*)
# Any changes made here should be reflected in the GCC+Darwin case below
PGO_PROF_GEN_FLAG="-fprofile-instr-generate"
-@@ -1500,7 +1501,7 @@ then
- WRAP="-fwrapv"
- fi
+@@ -1486,7 +1487,7 @@ esac
+ # compiler and platform. BASECFLAGS tweaks need to be made even if the
+ # user set OPT.
-- case $CC in
-+ case $cc_basename in
- *clang*)
- cc_is_clang=1
- ;;
-@@ -1623,7 +1624,7 @@ yes)
+-case $CC in
++case $cc_basename in
+ *clang*)
+ cc_is_clang=1
+ ;;
+@@ -1622,7 +1623,7 @@ yes)
# ICC doesn't recognize the option, but only emits a warning
## XXX does it emit an unused result warning and can it be disabled?
@@ -91,7 +92,7 @@ index a7de901..4a3681f 100644
*icc*)
ac_cv_disable_unused_result_warning=no
;;
-@@ -1965,7 +1966,7 @@ yes)
+@@ -1943,7 +1944,7 @@ yes)
esac
# ICC needs -fp-model strict or floats behave badly
@@ -100,7 +101,7 @@ index a7de901..4a3681f 100644
*icc*)
CFLAGS_NODIST="$CFLAGS_NODIST -fp-model strict"
;;
-@@ -2727,7 +2728,7 @@ then
+@@ -2711,7 +2712,7 @@ then
then
LINKFORSHARED="-Wl,--export-dynamic"
fi;;
@@ -109,7 +110,7 @@ index a7de901..4a3681f 100644
*gcc*)
if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
then
-@@ -5429,7 +5430,7 @@ if test "$have_gcc_asm_for_x87" = yes; then
+@@ -5362,7 +5363,7 @@ if test "$have_gcc_asm_for_x87" = yes; then
# Some versions of gcc miscompile inline asm:
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491
# http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html
diff --git a/meta/recipes-devtools/python/python3/0003-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 b9d5bc9c51..ea0af02e72 100644
--- a/meta/recipes-devtools/python/python3/0003-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
@@ -1,6 +1,6 @@
-From b881a79adcd4ae5ac8fe4f49d0fc77c47f777919 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 4 Aug 2017 11:16:14 +0800
+From 7019ba184b828ed7253750cf409fc5760ef90a54 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 9 Jan 2020 17:44:05 +0100
Subject: [PATCH] setup.py: pass missing libraries to Extension for
multiprocessing module
@@ -46,35 +46,24 @@ ValueError: semaphore or lock released too many times
And the semaphore issue also caused multiprocessing.Queue().put() hung.
-Upstream-Status: Submitted [https://github.com/python/cpython/pull/2999]
+Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
- setup.py | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
-index b7a36a6..658ead3 100644
+index ec3f2a4..b0f1541 100644
--- a/setup.py
+++ b/setup.py
-@@ -1584,8 +1584,10 @@ class PyBuildExt(build_ext):
- elif host_platform.startswith('netbsd'):
- macros = dict()
- libraries = []
--
-- else: # Linux and other unices
-+ elif host_platform.startswith(('linux')):
-+ macros = dict()
-+ libraries = ['pthread']
-+ else: # Other unices
- macros = dict()
- libraries = ['rt']
+@@ -1671,7 +1671,7 @@ class PyBuildExt(build_ext):
+ libraries=libs,
+ include_dirs=["Modules/_multiprocessing"]))
-@@ -1603,6 +1605,7 @@ class PyBuildExt(build_ext):
-
- exts.append ( Extension('_multiprocessing', multiprocessing_srcs,
- define_macros=list(macros.items()),
-+ libraries=libraries,
- include_dirs=["Modules/_multiprocessing"]))
- # End multiprocessing
+- self.add(Extension('_multiprocessing', multiprocessing_srcs,
++ self.add(Extension('_multiprocessing', multiprocessing_srcs, libraries=['pthread'],
+ include_dirs=["Modules/_multiprocessing"]))
+ def detect_uuid(self):
diff --git a/meta/recipes-devtools/python/python3/0002-Don-t-do-runtime-test-to-get-float-byte-order.patch b/meta/recipes-devtools/python/python3/0002-Don-t-do-runtime-test-to-get-float-byte-order.patch
deleted file mode 100644
index 3721e7c2aa..0000000000
--- a/meta/recipes-devtools/python/python3/0002-Don-t-do-runtime-test-to-get-float-byte-order.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-From fa96a7fd19e17b9c6b4dd01c3c3774fb382dddc6 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Wed, 5 Sep 2018 11:45:52 +0100
-Subject: [PATCH] Don't do runtime test to get float byte order
-
-Python uses AC_RUN_IFELSE to determine the byte order for floats and doubles,
-and falls back onto "I don't know" if it can't run code. This results in
-crippled floating point numbers in Python, and the regression tests fail.
-
-Instead of running code, take a macro from autoconf-archive which compiles C
-with a special double in which has an ASCII representation, and then greps the
-binary to identify the format.
-
-Upstream-Status: Submitted [https://bugs.python.org/issue34585]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- configure.ac | 72 +++------------------------
- m4/ax_c_float_words_bigendian.m4 | 83 ++++++++++++++++++++++++++++++++
- 2 files changed, 90 insertions(+), 65 deletions(-)
- create mode 100644 m4/ax_c_float_words_bigendian.m4
-
-diff --git a/configure.ac b/configure.ac
-index 4a3681f..4ab19a6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -4328,77 +4328,19 @@ fi
- # * Check for various properties of floating point *
- # **************************************************
-
--AC_MSG_CHECKING(whether C doubles are little-endian IEEE 754 binary64)
--AC_CACHE_VAL(ac_cv_little_endian_double, [
--AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <string.h>
--int main() {
-- double x = 9006104071832581.0;
-- if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0)
-- return 0;
-- else
-- return 1;
--}
--]])],
--[ac_cv_little_endian_double=yes],
--[ac_cv_little_endian_double=no],
--[ac_cv_little_endian_double=no])])
--AC_MSG_RESULT($ac_cv_little_endian_double)
--if test "$ac_cv_little_endian_double" = yes
--then
-- AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
-- [Define if C doubles are 64-bit IEEE 754 binary format, stored
-- with the least significant byte first])
--fi
--
--AC_MSG_CHECKING(whether C doubles are big-endian IEEE 754 binary64)
--AC_CACHE_VAL(ac_cv_big_endian_double, [
--AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <string.h>
--int main() {
-- double x = 9006104071832581.0;
-- if (memcmp(&x, "\x43\x3f\xff\x01\x02\x03\x04\x05", 8) == 0)
-- return 0;
-- else
-- return 1;
--}
--]])],
--[ac_cv_big_endian_double=yes],
--[ac_cv_big_endian_double=no],
--[ac_cv_big_endian_double=no])])
--AC_MSG_RESULT($ac_cv_big_endian_double)
--if test "$ac_cv_big_endian_double" = yes
-+AX_C_FLOAT_WORDS_BIGENDIAN
-+if test "$ax_cv_c_float_words_bigendian" = "yes"
- then
- AC_DEFINE(DOUBLE_IS_BIG_ENDIAN_IEEE754, 1,
- [Define if C doubles are 64-bit IEEE 754 binary format, stored
- with the most significant byte first])
--fi
--
--# Some ARM platforms use a mixed-endian representation for doubles.
--# While Python doesn't currently have full support for these platforms
--# (see e.g., issue 1762561), we can at least make sure that float <-> string
--# conversions work.
--AC_MSG_CHECKING(whether C doubles are ARM mixed-endian IEEE 754 binary64)
--AC_CACHE_VAL(ac_cv_mixed_endian_double, [
--AC_RUN_IFELSE([AC_LANG_SOURCE([[
--#include <string.h>
--int main() {
-- double x = 9006104071832581.0;
-- if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0)
-- return 0;
-- else
-- return 1;
--}
--]])],
--[ac_cv_mixed_endian_double=yes],
--[ac_cv_mixed_endian_double=no],
--[ac_cv_mixed_endian_double=no])])
--AC_MSG_RESULT($ac_cv_mixed_endian_double)
--if test "$ac_cv_mixed_endian_double" = yes
-+elif test "$ax_cv_c_float_words_bigendian" = "no"
- then
-- AC_DEFINE(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754, 1,
-+ AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
- [Define if C doubles are 64-bit IEEE 754 binary format, stored
-- in ARM mixed-endian order (byte order 45670123)])
-+ with the least significant byte first])
-+else
-+ AC_MSG_ERROR([Cannot identify floating point byte order])
- fi
-
- # The short float repr introduced in Python 3.1 requires the
-diff --git a/m4/ax_c_float_words_bigendian.m4 b/m4/ax_c_float_words_bigendian.m4
-new file mode 100644
-index 0000000..216b90d
---- /dev/null
-+++ b/m4/ax_c_float_words_bigendian.m4
-@@ -0,0 +1,83 @@
-+# ===============================================================================
-+# https://www.gnu.org/software/autoconf-archive/ax_c_float_words_bigendian.html
-+# ===============================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_C_FLOAT_WORDS_BIGENDIAN([ACTION-IF-TRUE], [ACTION-IF-FALSE], [ACTION-IF-UNKNOWN])
-+#
-+# DESCRIPTION
-+#
-+# Checks the ordering of words within a multi-word float. This check is
-+# necessary because on some systems (e.g. certain ARM systems), the float
-+# word ordering can be different from the byte ordering. In a multi-word
-+# float context, "big-endian" implies that the word containing the sign
-+# bit is found in the memory location with the lowest address. This
-+# implementation was inspired by the AC_C_BIGENDIAN macro in autoconf.
-+#
-+# The endianness is detected by first compiling C code that contains a
-+# special double float value, then grepping the resulting object file for
-+# certain strings of ASCII values. The double is specially crafted to have
-+# a binary representation that corresponds with a simple string. In this
-+# implementation, the string "noonsees" was selected because the
-+# individual word values ("noon" and "sees") are palindromes, thus making
-+# this test byte-order agnostic. If grep finds the string "noonsees" in
-+# the object file, the target platform stores float words in big-endian
-+# order. If grep finds "seesnoon", float words are in little-endian order.
-+# If neither value is found, the user is instructed to specify the
-+# ordering.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Daniel Amelang <dan@amelang.net>
-+#
-+# 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.
-+
-+#serial 11
-+
-+AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN],
-+ [AC_CACHE_CHECK(whether float word ordering is bigendian,
-+ ax_cv_c_float_words_bigendian, [
-+
-+ax_cv_c_float_words_bigendian=unknown
-+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-+
-+double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0;
-+
-+]])], [
-+
-+if grep noonsees conftest.$ac_objext >/dev/null ; then
-+ ax_cv_c_float_words_bigendian=yes
-+fi
-+if grep seesnoon conftest.$ac_objext >/dev/null ; then
-+ if test "$ax_cv_c_float_words_bigendian" = unknown; then
-+ ax_cv_c_float_words_bigendian=no
-+ else
-+ ax_cv_c_float_words_bigendian=unknown
-+ fi
-+fi
-+
-+])])
-+
-+case $ax_cv_c_float_words_bigendian in
-+ yes)
-+ m4_default([$1],
-+ [AC_DEFINE([FLOAT_WORDS_BIGENDIAN], 1,
-+ [Define to 1 if your system stores words within floats
-+ with the most significant word first])]) ;;
-+ no)
-+ $2 ;;
-+ *)
-+ m4_default([$3],
-+ [AC_MSG_ERROR([
-+
-+Unknown float word ordering. You need to manually preset
-+ax_cv_c_float_words_bigendian=no (or yes) according to your system.
-+
-+ ])]) ;;
-+esac
-+
-+])# AX_C_FLOAT_WORDS_BIGENDIAN
diff --git a/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch b/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch
new file mode 100644
index 0000000000..4bd98f62fd
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch
@@ -0,0 +1,32 @@
+From a2dd127b4163aff6cc35af0d0251321964232ad4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 7 Oct 2019 13:22:14 +0200
+Subject: [PATCH] setup.py: do not report missing dependencies for disabled
+ modules
+
+Reporting those missing dependencies is misleading as the modules would not
+have been built anyway. This particularly matters in oe-core's automated
+build completeness checker which relies on the report.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ setup.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/setup.py b/setup.py
+index 7691258..ec3f2a4 100644
+--- a/setup.py
++++ b/setup.py
+@@ -408,6 +408,10 @@ class PyBuildExt(build_ext):
+ print("%-*s %-*s %-*s" % (longest, e, longest, f,
+ longest, g))
+
++ # There is no need to report missing module dependencies,
++ # if the modules have been disabled in the first place.
++ self.missing = list(set(self.missing) - set(sysconf_dis))
++
+ if self.missing:
+ print()
+ print("Python build finished successfully!")
diff --git a/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch b/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch
new file mode 100644
index 0000000000..e04a91605c
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch
@@ -0,0 +1,48 @@
+From 863c09f640a5dfd33ff22915b0d5fee7bc5df70a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sun, 16 Feb 2020 17:50:25 +0100
+Subject: [PATCH] configure.ac, setup.py: do not add a curses include path from
+ the host
+
+This leads to host contamination, and particularly can cause
+curses modules to fail at runtime if the host curses is configured
+differently to native curses (observed on current OpenSuse Tumbleweed
+as dnf failures).
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 6 ------
+ setup.py | 2 --
+ 2 files changed, 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 915f475..c911011 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4828,12 +4828,6 @@ then
+ [Define if you have struct stat.st_mtimensec])
+ fi
+
+-# first curses header check
+-ac_save_cppflags="$CPPFLAGS"
+-if test "$cross_compiling" = no; then
+- CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
+-fi
+-
+ AC_CHECK_HEADERS(curses.h ncurses.h)
+
+ # On Solaris, term.h requires curses.h
+diff --git a/setup.py b/setup.py
+index b0f1541..7208cd0 100644
+--- a/setup.py
++++ b/setup.py
+@@ -973,8 +973,6 @@ class PyBuildExt(build_ext):
+ panel_library = 'panel'
+ if curses_library == 'ncursesw':
+ curses_defines.append(('HAVE_NCURSESW', '1'))
+- if not CROSS_COMPILING:
+- curses_includes.append('/usr/include/ncursesw')
+ # Bug 1464056: If _curses.so links with ncursesw,
+ # _curses_panel.so must link with panelw.
+ panel_library = 'panelw'
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 0bafec73c0..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 6229502e5ae6cbb22240594f002638e9ef78f831 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
@@ -18,10 +18,10 @@ Upstream-Status: Inappropriate [embedded specific]
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index 3dfd0a3..6c6b09a 100644
+index 2df348c..4f8db84 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
-@@ -97,7 +97,9 @@ def get_python_inc(plat_specific=0, prefix=None):
+@@ -96,7 +96,9 @@ def get_python_inc(plat_specific=0, prefix=None):
If 'prefix' is supplied, use it instead of sys.base_prefix or
sys.base_exec_prefix -- i.e., ignore 'plat_specific'.
"""
@@ -32,7 +32,7 @@ index 3dfd0a3..6c6b09a 100644
prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX
if os.name == "posix":
if python_build:
-@@ -140,7 +142,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
+@@ -139,7 +141,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
If 'prefix' is supplied, use it instead of sys.base_prefix or
sys.base_exec_prefix -- i.e., ignore 'plat_specific'.
"""
@@ -47,7 +47,7 @@ index 3dfd0a3..6c6b09a 100644
if standard_lib:
prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX
else:
-@@ -148,7 +156,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
+@@ -147,7 +155,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
if os.name == "posix":
libpython = os.path.join(prefix,
diff --git a/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch b/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
index 24e67b4ca1..184540e794 100644
--- a/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
+++ b/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
@@ -1,4 +1,4 @@
-From fead48c8b501a8d7c3db21df2e599f90f38f11d3 Mon Sep 17 00:00:00 2001
+From ba7202700578d435b07cfdfb7b57e83185752800 Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@gherzan.ro>
Date: Mon, 28 Jan 2019 15:57:54 +0000
Subject: [PATCH] _tkinter module needs tk module along with tcl. tk is not yet
@@ -11,26 +11,21 @@ Also simply disable the tk module since its not in DEPENDS.
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
---
- setup.py | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
+ setup.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/setup.py b/setup.py
-index fbec00d..b7a36a6 100644
+index ab18ff0..7691258 100644
--- a/setup.py
+++ b/setup.py
-@@ -1623,10 +1623,12 @@ class PyBuildExt(build_ext):
- self.extensions.extend(exts)
+@@ -1706,8 +1706,8 @@ class PyBuildExt(build_ext):
+ self.detect_decimal()
+ self.detect_ctypes()
+ self.detect_multiprocessing()
+- if not self.detect_tkinter():
+- self.missing.append('_tkinter')
++# if not self.detect_tkinter():
++# self.missing.append('_tkinter')
+ self.detect_uuid()
- # Call the method for detecting whether _tkinter can be compiled
-- self.detect_tkinter(inc_dirs, lib_dirs)
-+ # self.detect_tkinter(inc_dirs, lib_dirs)
-
-- if '_tkinter' not in [e.name for e in self.extensions]:
-- missing.append('_tkinter')
-+ # tkinter module will not be avalaible as yocto
-+ # doesn't have tk integrated (yet)
-+ #if '_tkinter' not in [e.name for e in self.extensions]:
-+ # missing.append('_tkinter')
-
- # Build the _uuid module if possible
- uuid_incs = find_file("uuid.h", inc_dirs, ["/usr/include/uuid"])
+ ## # Uncomment these lines if you want to play with xxmodule.c
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/python-config.patch b/meta/recipes-devtools/python/python3/python-config.patch
index f23b8b7df0..c8a8f3d4aa 100644
--- a/meta/recipes-devtools/python/python3/python-config.patch
+++ b/meta/recipes-devtools/python/python3/python-config.patch
@@ -1,4 +1,7 @@
-python-config: Revert to using distutils.sysconfig
+From 07df0ae0d70cba6d1847fe1c24a71063930bec60 Mon Sep 17 00:00:00 2001
+From: Tyler Hall <tylerwhall@gmail.com>
+Date: Sun, 4 May 2014 20:06:43 -0400
+Subject: [PATCH] python-config: Revert to using distutils.sysconfig
The newer sysconfig module shares some code with distutils.sysconfig, but the same modifications as in
@@ -12,11 +15,16 @@ Upstream-Status: Inappropriate [Embedded Specific]
Signed-off-by: Tyler Hall <tylerwhall@gmail.com>
:
-Index: Python-3.3.3/Misc/python-config.in
-===================================================================
---- Python-3.3.3.orig/Misc/python-config.in
-+++ Python-3.3.3/Misc/python-config.in
-@@ -4,7 +4,7 @@
+
+---
+ Misc/python-config.in | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Misc/python-config.in b/Misc/python-config.in
+index 727c4a8..c702829 100644
+--- a/Misc/python-config.in
++++ b/Misc/python-config.in
+@@ -6,7 +6,7 @@
import getopt
import os
import sys
@@ -24,8 +32,8 @@ Index: Python-3.3.3/Misc/python-config.in
+from distutils import sysconfig
valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
- 'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir']
-@@ -32,14 +32,14 @@ if '--help' in opt_flags:
+ 'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir',
+@@ -35,14 +35,14 @@ if '--help' in opt_flags:
for opt in opt_flags:
if opt == '--prefix':
diff --git a/meta/recipes-devtools/python/python3/python3-manifest.json b/meta/recipes-devtools/python/python3/python3-manifest.json
index 1ad85a9ff3..69aecb7004 100644
--- a/meta/recipes-devtools/python/python3/python3-manifest.json
+++ b/meta/recipes-devtools/python/python3/python3-manifest.json
@@ -122,7 +122,8 @@
"logging",
"netclient",
"numbers",
- "stringold"
+ "stringold",
+ "typing"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/asyncio",
@@ -182,26 +183,15 @@
"compression": {
"summary": "Python high-level compression support",
"rdepends": [
- "core",
- "shell",
- "unixadmin"
+ "core"
],
"files": [
- "${libdir}/python${PYTHON_MAJMIN}/_compression.py",
- "${libdir}/python${PYTHON_MAJMIN}/bz2.py",
"${libdir}/python${PYTHON_MAJMIN}/gzip.py",
- "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bz2.*.so",
- "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lzma.*.so",
- "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/zlib.*.so",
- "${libdir}/python${PYTHON_MAJMIN}/lzma.py",
"${libdir}/python${PYTHON_MAJMIN}/tarfile.py",
"${libdir}/python${PYTHON_MAJMIN}/zipfile.py"
],
"cached": [
- "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compression.*.pyc",
- "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bz2.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/gzip.*.pyc",
- "${libdir}/python${PYTHON_MAJMIN}/__pycache__/lzma.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/tarfile.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/zipfile.*.pyc"
]
@@ -210,9 +200,10 @@
"summary": "Python interpreter and core modules",
"rdepends": [],
"files": [
- "${bindir}/python*[!-config]",
- "${includedir}/python${PYTHON_BINABI}/pyconfig*.h",
- "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]",
+ "${bindir}/python${PYTHON_MAJMIN}",
+ "${bindir}/python${PYTHON_MAJMIN}.real",
+ "${bindir}/python3",
+ "${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h",
"${libdir}/python${PYTHON_MAJMIN}/UserDict.py",
"${libdir}/python${PYTHON_MAJMIN}/UserList.py",
"${libdir}/python${PYTHON_MAJMIN}/UserString.py",
@@ -220,6 +211,7 @@
"${libdir}/python${PYTHON_MAJMIN}/_abcoll.py",
"${libdir}/python${PYTHON_MAJMIN}/_bootlocale.py",
"${libdir}/python${PYTHON_MAJMIN}/_collections_abc.py",
+ "${libdir}/python${PYTHON_MAJMIN}/_compression.py",
"${libdir}/python${PYTHON_MAJMIN}/_markupbase.py",
"${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.py",
"${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py",
@@ -228,6 +220,7 @@
"${libdir}/python${PYTHON_MAJMIN}/argparse.py",
"${libdir}/python${PYTHON_MAJMIN}/ast.py",
"${libdir}/python${PYTHON_MAJMIN}/bisect.py",
+ "${libdir}/python${PYTHON_MAJMIN}/bz2.py",
"${libdir}/python${PYTHON_MAJMIN}/code.py",
"${libdir}/python${PYTHON_MAJMIN}/codecs.py",
"${libdir}/python${PYTHON_MAJMIN}/codeop.py",
@@ -244,6 +237,7 @@
"${libdir}/python${PYTHON_MAJMIN}/encodings/latin_1.py",
"${libdir}/python${PYTHON_MAJMIN}/encodings/utf_8.py",
"${libdir}/python${PYTHON_MAJMIN}/enum.py",
+ "${libdir}/python${PYTHON_MAJMIN}/fnmatch.py",
"${libdir}/python${PYTHON_MAJMIN}/functools.py",
"${libdir}/python${PYTHON_MAJMIN}/genericpath.py",
"${libdir}/python${PYTHON_MAJMIN}/getopt.py",
@@ -264,13 +258,16 @@
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/time.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/xreadlines.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bisect.*.so",
+ "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bz2.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_csv.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_heapq.*.so",
+ "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lzma.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_opcode.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixsubprocess.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_struct.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/array.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/binascii.*.so",
+ "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/math.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/parser.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/readline.*.so",
@@ -278,14 +275,18 @@
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/time.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/unicodedata.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/xreadlines.*.so",
+ "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/zlib.*.so",
"${libdir}/python${PYTHON_MAJMIN}/linecache.py",
"${libdir}/python${PYTHON_MAJMIN}/locale.py",
+ "${libdir}/python${PYTHON_MAJMIN}/lzma.py",
"${libdir}/python${PYTHON_MAJMIN}/new.py",
"${libdir}/python${PYTHON_MAJMIN}/ntpath.py",
"${libdir}/python${PYTHON_MAJMIN}/opcode.py",
"${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",
"${libdir}/python${PYTHON_MAJMIN}/re.py",
@@ -293,6 +294,7 @@
"${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py",
"${libdir}/python${PYTHON_MAJMIN}/runpy.py",
"${libdir}/python${PYTHON_MAJMIN}/selectors.py",
+ "${libdir}/python${PYTHON_MAJMIN}/shutil.py",
"${libdir}/python${PYTHON_MAJMIN}/signal.py",
"${libdir}/python${PYTHON_MAJMIN}/site.py",
"${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py",
@@ -311,21 +313,26 @@
"${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"
+ "${libdir}/python${PYTHON_MAJMIN}/weakref.py",
+ "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]"
],
"cached": [
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/__future__.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/_bootlocale.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/_collections_abc.*.pyc",
+ "${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",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/ast.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/bisect.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bz2.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/code.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/codecs.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/codeop.*.pyc",
@@ -336,6 +343,7 @@
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/csv.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/dis.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/enum.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/functools.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/genericpath.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/getopt.*.pyc",
@@ -347,10 +355,14 @@
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/keyword.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/linecache.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/locale.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/lzma.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ntpath.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/opcode.*.pyc",
"${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",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/re.*.pyc",
@@ -358,6 +370,7 @@
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/rlcompleter.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/runpy.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/selectors.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shutil.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/signal.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/site.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/sre_compile.*.pyc",
@@ -386,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": {
@@ -402,10 +417,10 @@
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_blake2.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_crypt.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_hashlib.*.so",
+ "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so",
+ "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha256.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha3.*.so",
- "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so",
- "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha512.*.so"
],
"cached": [
@@ -416,7 +431,10 @@
"ctypes": {
"summary": "Python C types support",
"rdepends": [
- "core"
+ "core",
+ "crypt",
+ "io",
+ "math"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/ctypes",
@@ -487,7 +505,7 @@
"files": [
"${base_libdir}/*.a",
"${base_libdir}/*.o",
- "${bindir}/python*-config",
+ "${bindir}/python*-config*",
"${datadir}/aclocal",
"${datadir}/pkgconfig",
"${includedir}",
@@ -498,7 +516,8 @@
"${libdir}/pkgconfig"
],
"rdepends": [
- "core"
+ "core",
+ "distutils"
],
"summary": "Python development package"
},
@@ -515,19 +534,20 @@
]
},
"distutils-windows": {
- "cached": [],
- "files": [
- "${libdir}/python${PYTHON_MAJMIN}/distutils/command/wininst-*.exe"
- ],
+ "summary": "Python distribution utilities (Windows installer stubs)",
"rdepends": [
- "distutils"
+ "core"
],
- "summary": "Python distribution utilities (Windows installer stubs)"
+ "files": [],
+ "cached": []
},
"distutils": {
"summary": "Python Distribution Utilities",
"rdepends": [
- "core"
+ "compression",
+ "core",
+ "email",
+ "stringold"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/distutils"
@@ -537,13 +557,18 @@
"doctest": {
"summary": "Python framework for running examples in docstrings",
"rdepends": [
+ "asyncio",
"core",
"debugger",
"difflib",
+ "io",
"logging",
+ "netclient",
+ "numbers",
"pprint",
"shell",
"stringold",
+ "typing",
"unittest"
],
"files": [
@@ -561,7 +586,9 @@
"datetime",
"io",
"math",
- "netclient"
+ "mime",
+ "netclient",
+ "stringold"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/email",
@@ -632,13 +659,11 @@
"io": {
"summary": "Python low-level I/O",
"rdepends": [
- "compression",
"core",
"crypt",
"math",
"netclient",
- "shell",
- "unixadmin"
+ "shell"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/_pyio.py",
@@ -675,7 +700,11 @@
"summary": "Python logging support",
"rdepends": [
"core",
- "stringold"
+ "io",
+ "netserver",
+ "pickle",
+ "stringold",
+ "threading"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/logging"
@@ -809,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": []
@@ -840,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": [
@@ -853,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"
@@ -861,7 +897,6 @@
"netserver": {
"summary": "Python Internet Protocol servers",
"rdepends": [
- "compression",
"core",
"crypt",
"datetime",
@@ -871,9 +906,7 @@
"math",
"mime",
"netclient",
- "shell",
- "stringold",
- "unixadmin"
+ "stringold"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/cgi.py",
@@ -930,12 +963,8 @@
"rdepends": [
"core"
],
- "files": [
- "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py"
- ],
- "cached": [
- "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pkgutil.*.pyc"
- ]
+ "files": [],
+ "cached": []
},
"plistlib": {
"summary": "Generate and parse Mac OS X .plist files",
@@ -983,9 +1012,7 @@
"pydoc": {
"summary": "Python interactive help support",
"rdepends": [
- "core",
- "netclient",
- "pkgutil"
+ "core"
],
"files": [
"${bindir}/pydoc*",
@@ -1009,24 +1036,18 @@
"shell": {
"summary": "Python shell-like functionality",
"rdepends": [
- "compression",
"core",
- "stringold",
- "unixadmin"
+ "stringold"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/cmd.py",
- "${libdir}/python${PYTHON_MAJMIN}/fnmatch.py",
"${libdir}/python${PYTHON_MAJMIN}/glob.py",
- "${libdir}/python${PYTHON_MAJMIN}/shlex.py",
- "${libdir}/python${PYTHON_MAJMIN}/shutil.py"
+ "${libdir}/python${PYTHON_MAJMIN}/shlex.py"
],
"cached": [
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/cmd.*.pyc",
- "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/glob.*.pyc",
- "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc",
- "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shutil.*.pyc"
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc"
]
},
"smtpd": {
@@ -1146,12 +1167,16 @@
"unittest": {
"summary": "Python unit testing framework",
"rdepends": [
+ "asyncio",
"core",
"difflib",
+ "io",
"logging",
+ "netclient",
+ "numbers",
"pprint",
- "shell",
- "stringold"
+ "stringold",
+ "typing"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/unittest",
@@ -1168,7 +1193,6 @@
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/getpass.py",
- "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so",
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/nis.*.so"
],
"cached": [
@@ -1178,12 +1202,9 @@
"venv": {
"summary": "Provides support for creating lightweight virtual environments with their own site directories, optionally isolated from system site directories.",
"rdepends": [
- "compression",
"core",
"logging",
- "shell",
- "stringold",
- "unixadmin"
+ "stringold"
],
"files": [
"${bindir}/pyvenv*",
@@ -1206,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/run-ptest b/meta/recipes-devtools/python/python3/run-ptest
index 3e45d3918c..405b07f495 100644
--- a/meta/recipes-devtools/python/python3/run-ptest
+++ b/meta/recipes-devtools/python/python3/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-python3 -m test -v | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -e '/\.\.\. [ERROR|FAIL]/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'
+python3 -m test -v | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -r -e '/\.\.\. (ERROR|FAIL)/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'
diff --git a/meta/recipes-devtools/python/python3_3.7.4.bb b/meta/recipes-devtools/python/python3_3.8.5.bb
index 8693c446c2..2a3c52a116 100644
--- a/meta/recipes-devtools/python/python3_3.7.4.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 \
@@ -19,35 +19,40 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \
file://0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch \
file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \
- file://0002-Don-t-do-runtime-test-to-get-float-byte-order.patch \
- file://0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \
file://0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch \
file://0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch \
- file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \
- file://crosspythonpath.patch \
+ file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \
+ file://crosspythonpath.patch \
file://reformat_sysconfig.py \
file://0001-Use-FLAG_REF-always-for-interned-strings.patch \
file://0001-test_locale.py-correct-the-test-output-format.patch \
+ file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \
+ file://0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \
+ file://0001-Makefile-do-not-compile-.pyc-in-parallel.patch \
+ file://0001-configure.ac-fix-LIBPL.patch \
+ file://0001-python3-Do-not-hardcode-lib-for-distutils.patch \
+ file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \
"
SRC_URI_append_class-native = " \
file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \
file://12-distutils-prefix-is-inside-staging-area.patch \
- "
-SRC_URI_append_class-nativesdk = " \
- file://0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch \
+ file://0001-Don-t-search-system-for-headers-libraries.patch \
"
-SRC_URI[md5sum] = "d33e4aae66097051c2eca45ee3604803"
-SRC_URI[sha256sum] = "fb799134b868199930b75f26678f18932214042639cd52b16da7fd134cd9b13f"
+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"
-PYTHON_MAJMIN = "3.7"
-PYTHON_BINABI = "${PYTHON_MAJMIN}m"
+# This is not exploitable when glibc has CVE-2016-10739 fixed.
+CVE_CHECK_WHITELIST += "CVE-2019-18348"
+
+PYTHON_MAJMIN = "3.8"
S = "${WORKDIR}/Python-${PV}"
@@ -57,12 +62,12 @@ inherit autotools pkgconfig qemu ptest multilib_header update-alternatives
MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}"
-ALTERNATIVE_${PN}-dev = "python-config"
-ALTERNATIVE_LINK_NAME[python-config] = "${bindir}/python${PYTHON_BINABI}-config"
-ALTERNATIVE_TARGET[python-config] = "${bindir}/python${PYTHON_BINABI}-config-${MULTILIB_SUFFIX}"
+ALTERNATIVE_${PN}-dev = "python3-config"
+ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config"
+ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}"
-DEPENDS = "bzip2-replacement-native libffi bzip2 gdbm openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2"
+DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2"
DEPENDS_append_class-target = " python3-native"
DEPENDS_append_class-nativesdk = " python3-native"
@@ -78,22 +83,32 @@ 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}"
-PACKAGECONFIG_class-native ??= "readline"
-PACKAGECONFIG_class-nativesdk ??= "readline"
+PACKAGECONFIG_class-target ??= "readline ${@possibly_include_pgo(d)} gdbm"
+PACKAGECONFIG_class-native ??= "readline gdbm"
+PACKAGECONFIG_class-nativesdk ??= "readline gdbm"
PACKAGECONFIG[readline] = ",,readline"
# Use profile guided optimisation by running PyBench inside qemu-user
PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native"
PACKAGECONFIG[tk] = ",,tk"
+PACKAGECONFIG[gdbm] = ",,gdbm"
+
+do_configure_prepend () {
+ mkdir -p ${B}/Modules
+ cat > ${B}/Modules/Setup.local << EOF
+*disabled*
+${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '_gdbm _dbm', d)}
+${@bb.utils.contains('PACKAGECONFIG', 'readline', '', 'readline', d)}
+EOF
+}
CPPFLAGS_append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid"
@@ -120,7 +135,7 @@ do_install_prepend() {
}
do_install_append_class-target() {
- oe_multilib_header python${PYTHON_BINABI}/pyconfig.h
+ oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h
}
do_install_append_class-native() {
@@ -150,7 +165,7 @@ do_install_append() {
}
do_install_append_class-nativesdk () {
- create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} OEPYTHON3HOME='${prefix}' TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1'
+ create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1'
}
SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py"
@@ -164,9 +179,9 @@ py_package_preprocess () {
-e 's:${RECIPE_SYSROOT_NATIVE}::g' \
-e 's:${RECIPE_SYSROOT}::g' \
-e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
- ${PKGD}/${prefix}/lib/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \
+ ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \
${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py \
- ${PKGD}/${bindir}/python${PYTHON_BINABI}-config
+ ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config
# Reformat _sysconfigdata after modifying it so that it remains
# reproducible
@@ -185,7 +200,7 @@ py_package_preprocess () {
-c "from py_compile import compile; compile('$sysconfigfile', optimize=2)"
cd -
- mv ${PKGD}/${bindir}/python${PYTHON_BINABI}-config ${PKGD}/${bindir}/python${PYTHON_BINABI}-config-${MULTILIB_SUFFIX}
+ mv ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}
#Remove the unneeded copy of target sysconfig data
rm -rf ${PKGD}/${libdir}/python-sysconfigdata
@@ -215,6 +230,9 @@ python(){
pn = 'python3'
rprovides = d.getVar('RPROVIDES').split()
+ # ${PN}-misc-native is not in the manifest
+ rprovides.append(pn + '-misc-native')
+
for key in python_manifest:
pypackage = pn + '-' + key + '-native'
if pypackage not in rprovides:
@@ -264,6 +282,7 @@ python(){
packages = newpackages + packages
d.setVar('PACKAGES', ' '.join(packages))
d.setVar('ALLOW_EMPTY_${PN}-modules', '1')
+ d.setVar('ALLOW_EMPTY_${PN}-pkgutil', '1')
}
# Files needed to create a new manifest
@@ -291,36 +310,53 @@ do_create_manifest[depends] += "${PN}:do_prepare_recipe_sysroot"
do_create_manifest[depends] += "${PN}:do_patch"
# manual dependency additions
-RPROVIDES_${PN}-modules = "${PN}"
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} = ""
+RPROVIDES_${PN}-modules = "${PN}"
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"
FILES_libpython3 = "${libdir}/libpython*.so.*"
-FILES_libpython3-staticdev += "${prefix}/lib/python${PYTHON_MAJMIN}/config-${PYTHON_BINABI}-*/libpython${PYTHON_BINABI}.a"
+FILES_libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a"
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"
-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
PACKAGES += "${PN}-man"
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 = " ${MLPREFIX}bash"
+RDEPENDS_${PN}-tests_append_class-nativesdk = " ${MLPREFIX}bash"
diff --git a/meta/recipes-devtools/python/python_2.7.16.bb b/meta/recipes-devtools/python/python_2.7.16.bb
deleted file mode 100644
index 5b856a5097..0000000000
--- a/meta/recipes-devtools/python/python_2.7.16.bb
+++ /dev/null
@@ -1,267 +0,0 @@
-require python.inc
-
-DEPENDS = "python-native libffi bzip2 gdbm openssl \
- readline sqlite3 zlib virtual/crypt"
-
-DISTRO_SRC_URI ?= "file://sitecustomize.py"
-DISTRO_SRC_URI_linuxstdbase = ""
-SRC_URI += " \
- file://01-use-proper-tools-for-cross-build.patch \
- file://03-fix-tkinter-detection.patch \
- file://06-avoid_usr_lib_termcap_path_in_linking.patch \
- ${DISTRO_SRC_URI} \
- file://multilib.patch \
- file://cgi_py.patch \
- file://setup_py_skip_cross_import_check.patch \
- file://add-md5module-support.patch \
- file://host_include_contamination.patch \
- file://fix_for_using_different_libdir.patch \
- file://setuptweaks.patch \
- file://check-if-target-is-64b-not-host.patch \
- file://search_db_h_in_inc_dirs_and_avoid_warning.patch \
- ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', 'file://avoid_warning_about_tkinter.patch', d)} \
- file://avoid_warning_for_sunos_specific_module.patch \
- file://python-2.7.3-remove-bsdb-rpath.patch \
- file://run-ptest \
- file://parallel-makeinst-create-bindir.patch \
- file://use_sysroot_ncurses_instead_of_host.patch \
- file://add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
- file://pass-missing-libraries-to-Extension-for-mul.patch \
- file://support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch \
- file://float-endian.patch \
- file://0001-python2-use-cc_basename-to-replace-CC-for-checking-c.patch \
-"
-
-S = "${WORKDIR}/Python-${PV}"
-
-inherit autotools multilib_header python-dir pythonnative ptest
-
-CONFIGUREOPTS += " --with-system-ffi "
-
-EXTRA_OECONF += "ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no ac_cv_working_tzset=yes"
-
-PACKAGECONFIG ??= "bdb"
-PACKAGECONFIG[bdb] = ",,db"
-PACKAGECONFIG[tk] = ",,tk"
-
-do_configure_append() {
- rm -f ${S}/Makefile.orig
- autoreconf -Wcross --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
-}
-
-do_compile() {
- # regenerate platform specific files, because they depend on system headers
- cd ${S}/Lib/plat-linux2
- include=${STAGING_INCDIR} ${STAGING_BINDIR_NATIVE}/python-native/python \
- ${S}/Tools/scripts/h2py.py -i '(u_long)' \
- ${STAGING_INCDIR}/dlfcn.h \
- ${STAGING_INCDIR}/linux/cdrom.h \
- ${STAGING_INCDIR}/netinet/in.h \
- ${STAGING_INCDIR}/sys/types.h
- sed -e 's,${STAGING_DIR_HOST},,g' -i *.py
- cd -
-
- # remove any bogus LD_LIBRARY_PATH
- sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile
-
- if [ ! -f Makefile.orig ]; then
- install -m 0644 Makefile Makefile.orig
- fi
- sed -i -e 's#^LDFLAGS=.*#LDFLAGS=${LDFLAGS} -L. -L${STAGING_LIBDIR}#g' \
- -e 's,libdir=${libdir},libdir=${STAGING_LIBDIR},g' \
- -e 's,libexecdir=${libexecdir},libexecdir=${STAGING_DIR_HOST}${libexecdir},g' \
- -e 's,^LIBDIR=.*,LIBDIR=${STAGING_LIBDIR},g' \
- -e 's,includedir=${includedir},includedir=${STAGING_INCDIR},g' \
- -e 's,^INCLUDEDIR=.*,INCLUDE=${STAGING_INCDIR},g' \
- -e 's,^CONFINCLUDEDIR=.*,CONFINCLUDE=${STAGING_INCDIR},g' \
- Makefile
- # save copy of it now, because if we do it in do_install and
- # then call do_install twice we get Makefile.orig == Makefile.sysroot
- install -m 0644 Makefile Makefile.sysroot
-
- export CROSS_COMPILE="${TARGET_PREFIX}"
- export PYTHONBUILDDIR="${B}"
-
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- OPT="${CFLAGS}"
-}
-
-do_install() {
- # make install needs the original Makefile, or otherwise the inclues would
- # go to ${D}${STAGING...}/...
- install -m 0644 Makefile.orig Makefile
-
- export CROSS_COMPILE="${TARGET_PREFIX}"
- export PYTHONBUILDDIR="${B}"
-
- # After swizzling the makefile, we need to run the build again.
- # install can race with the build so we have to run this first, then install
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
- CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- DESTDIR=${D} LIBDIR=${libdir}
-
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
- CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- DESTDIR=${D} LIBDIR=${libdir} install
-
- install -m 0644 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
-
- if [ -e ${WORKDIR}/sitecustomize.py ]; then
- install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
- fi
-
- oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h
-
- if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'bdb', d)}" ]; then
- rm -rf ${D}/${libdir}/python${PYTHON_MAJMIN}/bsddb
- fi
-
- # Python 3.x version of 2to3 is now the default
- mv ${D}/${bindir}/2to3 ${D}/${bindir}/2to3-${PYTHON_MAJMIN}
-}
-
-do_install_append_class-nativesdk () {
- create_wrapper ${D}${bindir}/python2.7 PYTHONHOME='${prefix}' TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1'
-}
-
-SSTATE_SCAN_FILES += "Makefile"
-PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
-
-py_package_preprocess () {
- # copy back the old Makefile to fix target package
- install -m 0644 ${B}/Makefile.orig ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
-
- # Remove references to buildmachine paths in target Makefile and _sysconfigdata
- sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-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:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
- ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile \
- ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py
- (cd ${PKGD}; python -m py_compile ./${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py)
-}
-
-PACKAGES_remove = "${PN}"
-
-# manual dependency additions
-RPROVIDES_${PN}-modules = "${PN}"
-RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python-modules"
-RRECOMMENDS_${PN}-crypt = "openssl"
-
-# package libpython2
-PACKAGES =+ "lib${BPN}2"
-FILES_lib${BPN}2 = "${libdir}/libpython*.so.*"
-
-# catch all the rest (unsorted)
-PACKAGES += "${PN}-misc"
-FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}"
-RDEPENDS_${PN}-modules += "${PN}-misc"
-
-# ptest
-RDEPENDS_${PN}-ptest = "${PN}-modules ${PN}-tests unzip tzdata-europe coreutils sed"
-RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}"
-# catch manpage
-PACKAGES += "${PN}-man"
-FILES_${PN}-man = "${datadir}/man"
-
-# Nasty but if bdb isn't enabled the package won't be generated
-RDEPENDS_${PN}-modules_remove = "${@bb.utils.contains('PACKAGECONFIG', 'bdb', '', '${PN}-bsddb', d)}"
-
-RDEPENDS_${PN}-dev = ""
-
-BBCLASSEXTEND = "nativesdk"
-
-# We want bytecode precompiled .py files (.pyc's) by default
-# but the user may set it on their own conf
-
-INCLUDE_PYCS ?= "1"
-
-python(){
- import collections, json
-
- filename = os.path.join(d.getVar('THISDIR'), 'python', 'python2-manifest.json')
- # This python changes the datastore based on the contents of a file, so mark
- # that dependency.
- bb.parse.mark_dependency(d, filename)
-
- with open(filename) as manifest_file:
- manifest_str = manifest_file.read()
- json_start = manifest_str.find('# EOC') + 6
- manifest_file.seek(json_start)
- manifest_str = manifest_file.read()
- python_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict)
-
- include_pycs = d.getVar('INCLUDE_PYCS')
-
- packages = d.getVar('PACKAGES').split()
- pn = d.getVar('PN')
-
- newpackages=[]
-
- for key in python_manifest:
- pypackage= pn + '-' + key
-
- if pypackage not in packages:
- # We need to prepend, otherwise python-misc gets everything
- # so we use a new variable
- newpackages.append(pypackage)
-
- # "Build" python's manifest FILES, RDEPENDS and SUMMARY
- d.setVar('FILES_' + pypackage, '')
- for value in python_manifest[key]['files']:
- d.appendVar('FILES_' + pypackage, ' ' + value)
- if include_pycs == '1':
- if value.endswith('.py'):
- d.appendVar('FILES_' + pypackage, ' ' + value + 'c')
-
- for value in python_manifest[key]['rdepends']:
- # Make it work with or without $PN
- if '${PN}' in value:
- value=value.split('-')[1]
- d.appendVar('RDEPENDS_' + pypackage, ' ' + pn + '-' + value)
- d.setVar('SUMMARY_' + pypackage, python_manifest[key]['summary'])
-
- # Prepending so to avoid python-misc getting everything
- packages = newpackages + packages
- d.setVar('PACKAGES', ' '.join(packages))
- d.setVar('ALLOW_EMPTY_${PN}-modules', '1')
-}
-
-# Files needed to create a new manifest
-SRC_URI += "file://create_manifest2.py file://get_module_deps2.py file://python2-manifest.json"
-
-do_create_manifest() {
- # This task should be run with every new release of Python.
- # We must ensure that PACKAGECONFIG enables everything when creating
- # a new manifest, this is to base our new manifest on a complete
- # native python build, containing all dependencies, otherwise the task
- # wont be able to find the required files.
- # e.g. BerkeleyDB is an optional build dependency so it may or may not
- # be present, we must ensure it is.
-
- cd ${WORKDIR}
- # This needs to be executed by python-native and NOT by HOST's python
- nativepython create_manifest2.py
- cp python2-manifest.json.new ${THISDIR}/python/python2-manifest.json
-}
-
-# bitbake python -c create_manifest
-addtask do_create_manifest
-
-# Make sure we have native python ready when we create a new manifest
-do_create_manifest[depends] += "python:do_prepare_recipe_sysroot"
-do_create_manifest[depends] += "python:do_patch"
diff --git a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
index d9d9da0fad..2fc07669dd 100644
--- a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
@@ -5,19 +5,24 @@ PR = "r1"
LIC_FILES_CHKSUM = "file://${WORKDIR}/tunctl.c;endline=4;md5=ff3a09996bc5fff6bc5d4e0b4c28f999"
-SRC_URI = "file://tunctl.c"
+SRC_URI = "\
+ file://tunctl.c \
+ file://qemu-oe-bridge-helper \
+ "
S = "${WORKDIR}"
inherit native
do_compile() {
- ${CC} tunctl.c -o tunctl
+ ${CC} ${CFLAGS} ${LDFLAGS} -Wall tunctl.c -o tunctl
}
do_install() {
install -d ${D}${bindir}
install tunctl ${D}${bindir}/
+
+ install -m 755 ${WORKDIR}/qemu-oe-bridge-helper ${D}${bindir}/
}
DEPENDS += "qemu-system-native"
diff --git a/meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper b/meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper
new file mode 100755
index 0000000000..f057d4eef0
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper
@@ -0,0 +1,25 @@
+#! /bin/sh
+# Copyright 2020 Garmin Ltd. or its subsidiaries
+#
+# SPDX-License-Identifier: GPL-2.0
+#
+# Attempts to find and exec the host qemu-bridge-helper program
+
+# If the QEMU_BRIDGE_HELPER variable is set by the user, exec it.
+if [ -n "$QEMU_BRIDGE_HELPER" ]; then
+ exec "$QEMU_BRIDGE_HELPER" "$@"
+fi
+
+# Search common paths for the helper program
+BN="qemu-bridge-helper"
+PATHS="/usr/libexec/ /usr/lib/qemu/"
+
+for p in $PATHS; do
+ if [ -e "$p/$BN" ]; then
+ exec "$p/$BN" "$@"
+ fi
+done
+
+echo "$BN not found!" > /dev/stderr
+exit 1
+
diff --git a/meta/recipes-devtools/qemu/qemu-helper/tunctl.c b/meta/recipes-devtools/qemu/qemu-helper/tunctl.c
index 16e24a2add..d745dd06cb 100644
--- a/meta/recipes-devtools/qemu/qemu-helper/tunctl.c
+++ b/meta/recipes-devtools/qemu/qemu-helper/tunctl.c
@@ -19,7 +19,7 @@
#define TUNSETGROUP _IOW('T', 206, int)
#endif
-static void Usage(char *name)
+static void Usage(char *name, int status)
{
fprintf(stderr, "Create: %s [-b] [-u owner] [-g group] [-t device-name] "
"[-f tun-clone-device]\n", name);
@@ -28,7 +28,7 @@ static void Usage(char *name)
fprintf(stderr, "The default tun clone device is /dev/net/tun - some systems"
" use\n/dev/misc/net/tun instead\n\n");
fprintf(stderr, "-b will result in brief output (just the device name)\n");
- exit(1);
+ exit(status);
}
int main(int argc, char **argv)
@@ -41,7 +41,7 @@ int main(int argc, char **argv)
int tap_fd, opt, delete = 0, brief = 0;
char *tun = "", *file = "/dev/net/tun", *name = argv[0], *end;
- while((opt = getopt(argc, argv, "bd:f:t:u:g:")) > 0){
+ while((opt = getopt(argc, argv, "bd:f:t:u:g:h")) > 0){
switch(opt) {
case 'b':
brief = 1;
@@ -63,7 +63,7 @@ int main(int argc, char **argv)
if(*end != '\0'){
fprintf(stderr, "'%s' is neither a username nor a numeric uid.\n",
optarg);
- Usage(name);
+ Usage(name, 1);
}
break;
case 'g':
@@ -76,7 +76,7 @@ int main(int argc, char **argv)
if(*end != '\0'){
fprintf(stderr, "'%s' is neither a groupname nor a numeric group.\n",
optarg);
- Usage(name);
+ Usage(name, 1);
}
break;
@@ -84,8 +84,10 @@ int main(int argc, char **argv)
tun = optarg;
break;
case 'h':
+ Usage(name, 0);
+ break;
default:
- Usage(name);
+ Usage(name, 1);
}
}
@@ -93,7 +95,7 @@ int main(int argc, char **argv)
argc -= optind;
if(argc > 0)
- Usage(name);
+ Usage(name, 1);
if((tap_fd = open(file, O_RDWR)) < 0){
fprintf(stderr, "Failed to open '%s' : ", file);
diff --git a/meta/recipes-devtools/qemu/qemu-native.inc b/meta/recipes-devtools/qemu/qemu-native.inc
index 69c2c43e6b..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://0010-fix-libcap-header-issue-on-some-distro.patch \
- file://0011-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.1.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.1.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-native_5.1.0.bb
diff --git a/meta/recipes-devtools/qemu/qemu-system-native_4.1.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.1.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-targets.inc b/meta/recipes-devtools/qemu/qemu-targets.inc
index 8184ef5781..24f9a03948 100644
--- a/meta/recipes-devtools/qemu/qemu-targets.inc
+++ b/meta/recipes-devtools/qemu/qemu-targets.inc
@@ -13,7 +13,7 @@ def get_qemu_target_list(d):
softmmuonly += arch + "-softmmu,"
archs.remove(arch)
linuxuseronly = ""
- for arch in ['armeb', 'alpha', 'ppc64abi32', 'sparc32plus', 'aarch64_be']:
+ for arch in ['armeb', 'alpha', 'ppc64abi32', 'ppc64le', 'sparc32plus', 'aarch64_be']:
if arch in archs:
linuxuseronly += arch + "-linux-user,"
archs.remove(arch)
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 88ae68a1e9..84f600cec0 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -27,16 +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://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] = "cdf2b5ca52b9abac9bacb5842fa420f8"
-SRC_URI[sha256sum] = "656e60218689bdeec69903087fd7582d5d3e72238d02f4481d8dc6d79fd909c6"
+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
@@ -54,10 +61,13 @@ 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
-QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc ppc64 riscv32 riscv64 sh4 x86_64"
+QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc ppc64 ppc64le riscv32 riscv64 sh4 x86_64"
EXTRA_OECONF = " \
--prefix=${prefix} \
@@ -74,6 +84,9 @@ EXTRA_OECONF = " \
--disable-strip \
--disable-werror \
--extra-cflags='${CFLAGS}' \
+ --extra-ldflags='${LDFLAGS}' \
+ --with-git=/bin/false \
+ --disable-git-update \
${PACKAGECONFIG_CONFARGS} \
"
@@ -94,6 +107,7 @@ do_configure_prepend_class-native() {
do_configure() {
${S}/configure ${EXTRA_OECONF}
}
+do_configure[cleandirs] += "${B}"
do_install () {
export STRIP=""
@@ -130,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,"
@@ -149,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"
@@ -163,6 +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,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 9478102ae5..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 4655dc18074e0be9d239f51dac32b61435da8549 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 8c43db93..3ff8ca28 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 8c43db93..3ff8ca28 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 8c43db93..3ff8ca28 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 2ccddd53cf..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 67751f3a23e3db3012f391b3b3b73a4484488ce9 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 fd7fdb86..83b7f409 100644
---- a/tests/Makefile.include
-+++ b/tests/Makefile.include
-@@ -1183,4 +1183,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 5c42d68030..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
@@ -1,4 +1,4 @@
-From 235b94f1188597873c8776b019fed49947983392 Mon Sep 17 00:00:00 2001
+From ce1eceab2350d27960ec254650717085f6a11c9a Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Fri, 28 Mar 2014 17:42:43 +0800
Subject: [PATCH] qemu: Add addition environment space to boot loader
@@ -15,19 +15,19 @@ 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 20e019bf..d150b01c 100644
---- a/hw/mips/mips_malta.c
-+++ b/hw/mips/mips_malta.c
-@@ -60,7 +60,7 @@
+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
- #define ENVP_NB_ENTRIES 16
--#define ENVP_ENTRY_SIZE 256
-+#define ENVP_ENTRY_SIZE 1024
+ #define ENVP_ADDR 0x80002000l
+ #define ENVP_NB_ENTRIES 16
+-#define ENVP_ENTRY_SIZE 256
++#define ENVP_ENTRY_SIZE 1024
/* Hardware addresses */
- #define FLASH_ADDRESS 0x1e000000ULL
+ #define FLASH_ADDRESS 0x1e000000ULL
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 0ac4ab40b1..71f537f9b0 100644
--- a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
+++ b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
@@ -1,4 +1,4 @@
-From 3ad7a375015d47fdf5016e03e11fa93440d6d8bd Mon Sep 17 00:00:00 2001
+From 4127296bb1046cdf73994ba69dc913d8c02fd74f Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 20 Oct 2015 22:19:08 +0100
Subject: [PATCH] qemu: disable Valgrind
@@ -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 714e7fb6..dad4fc59 100755
---- a/configure
-+++ b/configure
-@@ -5335,15 +5335,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 a73681510e..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 80e6070bcdfe636b103a13598e6c38ad0d0e7624 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 dad4fc59..685bbe5e 100755
---- a/configure
-+++ b/configure
-@@ -5971,10 +5971,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 a42385530f..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
@@ -1,4 +1,4 @@
-From ad853601e75f6d0dd09672bcca05fbe4fac766a4 Mon Sep 17 00:00:00 2001
+From bcc63f775e265df69963a4ad7805b8678ace68f0 Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair.francis@xilinx.com>
Date: Thu, 21 Dec 2017 11:35:16 -0800
Subject: [PATCH] chardev: connect socket to a spawned command
@@ -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 7ca5d97a..207fae4a 100644
---- a/chardev/char-socket.c
-+++ b/chardev/char-socket.c
-@@ -1278,6 +1278,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 7ca5d97a..207fae4a 100644
static void qmp_chardev_open_socket(Chardev *chr,
ChardevBackend *backend,
-@@ -1286,6 +1347,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 7ca5d97a..207fae4a 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;
-@@ -1351,6 +1415,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 7ca5d97a..207fae4a 100644
if (s->is_listen) {
if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
is_waitconnect, errp) < 0) {
-@@ -1370,9 +1442,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 7ca5d97a..207fae4a 100644
+ }
+ } else
+#endif
-+
if ((!!path + !!fd + !!host) != 1) {
error_setg(errp,
"Exactly one of 'path', 'fd' or 'host' required");
-@@ -1415,12 +1504,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 7ca5d97a..207fae4a 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 b50e8c2545..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
@@ -1,4 +1,4 @@
-From f51e49e7d7d87b7254242b7360f99c2df94a5a2d Mon Sep 17 00:00:00 2001
+From a59a98d100123030a4145e7efe3b8a001920a9f1 Mon Sep 17 00:00:00 2001
From: Mark Asselstine <mark.asselstine@windriver.com>
Date: Tue, 26 Feb 2013 11:43:28 -0500
Subject: [PATCH] apic: fixup fallthrough to PIC
@@ -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 bce89911..df4b582e 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 e562f25bec..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
@@ -1,4 +1,4 @@
-From 25a064f91f73630e5dff2a6aeb23d953c469cea6 Mon Sep 17 00:00:00 2001
+From cf8c9aac5243f506a1a3e8e284414f311cde04f5 Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair.francis@xilinx.com>
Date: Wed, 17 Jan 2018 10:51:49 -0800
Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target
@@ -18,16 +18,16 @@ 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 8ffc5251..4067e739 100644
---- a/linux-user/main.c
-+++ b/linux-user/main.c
-@@ -77,7 +77,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. */
--# define MAX_RESERVED_VA (0xfffffffful & TARGET_PAGE_MASK)
-+# define MAX_RESERVED_VA (0x7ffffffful & TARGET_PAGE_MASK)
+-# define MAX_RESERVED_VA(CPU) (0xfffffffful & TARGET_PAGE_MASK)
++# define MAX_RESERVED_VA(CPU) (0x7ffffffful & TARGET_PAGE_MASK)
# else
- # define MAX_RESERVED_VA (1ul << TARGET_VIRT_ADDR_SPACE_BITS)
+ # define MAX_RESERVED_VA(CPU) (1ul << TARGET_VIRT_ADDR_SPACE_BITS)
# endif
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 4072d9455f..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 b633b9a1813fcd715dce44659a89293f1c64ae8c 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
@@ -18,6 +18,9 @@ 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 ++++-
@@ -25,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 536ea58f81..4c63a6a2e4 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 9151fdb042..cb2b8f329f 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
@@ -59,11 +62,11 @@ index 9151fdb042..cb2b8f329f 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 46a6e3a761..7735465462 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;
@@ -72,18 +75,18 @@ index 46a6e3a761..7735465462 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);
@@ -95,7 +98,7 @@ index 46a6e3a761..7735465462 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;
@@ -109,11 +112,11 @@ index 46a6e3a761..7735465462 100644
mmap_lock();
if (flags & MREMAP_FIXED) {
-diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 8b41a03901..bc5d85de02 100644
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -4031,9 +4031,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;
}
}
@@ -123,15 +126,12 @@ index 8b41a03901..bc5d85de02 100644
mmap_lock();
-@@ -6881,7 +6878,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;
- }
---
-2.22.0
-
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 a8ab7daa42..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
@@ -1,7 +1,7 @@
-From 5214dd4461f2090ef0965b4d2518f49927d61cbc Mon Sep 17 00:00:00 2001
+From c207607cdf3996ad9783c3bffbcd3d65e74c0158 Mon Sep 17 00:00:00 2001
From: He Zhe <zhe.he@windriver.com>
Date: Wed, 28 Aug 2019 19:56:28 +0800
-Subject: [Qemu-devel] [PATCH] configure: Add pkg-config handling for libgcrypt
+Subject: [PATCH] configure: Add pkg-config handling for libgcrypt
libgcrypt may also be controlled by pkg-config, this patch adds pkg-config
handling for libgcrypt.
@@ -9,15 +9,16 @@ handling for libgcrypt.
Upstream-Status: Denied [https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg06333.html]
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 e44e454..0f362a7 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
}
@@ -48,7 +49,7 @@ index e44e454..0f362a7 100755
if test "$nettle" != "no"; then
pass="no"
-@@ -2902,7 +2926,14 @@ fi
+@@ -3124,7 +3148,14 @@ fi
if test "$gcrypt" != "no"; then
pass="no"
@@ -64,7 +65,7 @@ index e44e454..0f362a7 100755
gcrypt_cflags=$(libgcrypt-config --cflags)
gcrypt_libs=$(libgcrypt-config --libs)
# Debian has removed -lgpg-error from libgcrypt-config
-@@ -2912,15 +2943,16 @@ if test "$gcrypt" != "no"; then
+@@ -3134,15 +3165,16 @@ if test "$gcrypt" != "no"; then
then
gcrypt_libs="$gcrypt_libs -lgpg-error"
fi
@@ -88,6 +89,3 @@ index e44e454..0f362a7 100755
if test "$pass" = "yes"; then
gcrypt="yes"
cat > $TMPC << EOF
---
-2.7.4
-
diff --git a/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch b/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
deleted file mode 100644
index 3a7d7bbd33..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0010-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/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
deleted file mode 100644
index e5ebfc1267..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0011-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/run-ptest b/meta/recipes-devtools/qemu/qemu/run-ptest
index 2206b31922..b25a792d4f 100644
--- a/meta/recipes-devtools/qemu/qemu/run-ptest
+++ b/meta/recipes-devtools/qemu/qemu/run-ptest
@@ -7,4 +7,4 @@ ptestdir=$(dirname "$(readlink -f "$0")")
export SRC_PATH=$ptestdir
cd $ptestdir/tests
-make -f Makefile.include -k runtest-TESTS | sed '/: OK/ s/^/PASS: /g'
+make -f Makefile.include -k runtest-TESTS | sed '/^ok /s/ok /PASS: /g'
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.1.0.bb b/meta/recipes-devtools/qemu/qemu_5.1.0.bb
index f0c1daabe1..599ff82fc1 100644
--- a/meta/recipes-devtools/qemu/qemu_4.1.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/quilt/quilt.inc b/meta/recipes-devtools/quilt/quilt.inc
index 61e1c93605..d6d06c049c 100644
--- a/meta/recipes-devtools/quilt/quilt.inc
+++ b/meta/recipes-devtools/quilt/quilt.inc
@@ -1,8 +1,7 @@
SUMMARY = "Tool for working with series of patches"
DESCRIPTION = "Quilt is a tool to manage large sets of patches by keeping \
track of the changes each patch makes. Patches can be applied, un-applied,\
-refreshed, etc. The key philosophical concept is that your primary output \
-is patches."
+refreshed, etc."
HOMEPAGE = "http://savannah.nongnu.org/projects/quilt/"
SECTION = "devel"
LICENSE = "GPLv2"
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-Rip-out-partial-support-for-unused-MD2-and-RIPEMD160.patch b/meta/recipes-devtools/rpm/files/0001-Rip-out-partial-support-for-unused-MD2-and-RIPEMD160.patch
new file mode 100644
index 0000000000..734e38bb39
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/0001-Rip-out-partial-support-for-unused-MD2-and-RIPEMD160.patch
@@ -0,0 +1,81 @@
+From 2d53d1e308a5bd15a16cc289fa7e1f264ea706be Mon Sep 17 00:00:00 2001
+From: Panu Matilainen <pmatilai@redhat.com>
+Date: Tue, 26 Jun 2018 10:46:14 +0300
+Subject: [PATCH] Rip out partial support for unused MD2 and RIPEMD160 digests
+
+Inspired by #453, adding configure-checks for unused digests algorithms
+seems nonsensical, at no point in rpm history have these algorithms been
+used for anything in rpm so there's not even backward compatibility to
+care about. So the question becomes why do we appear to have (some)
+support for those unused algorithms? So lets don't, problem solved...
+
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/ff4b9111aeba01dd025dd133ce617fb80f7398a0]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ rpmio/digest_beecrypt.c | 7 -------
+ rpmio/digest_nss.c | 2 --
+ rpmio/digest_openssl.c | 6 ------
+ 3 files changed, 15 deletions(-)
+
+diff --git a/rpmio/digest_beecrypt.c b/rpmio/digest_beecrypt.c
+index 597027e25..653a39491 100644
+--- a/rpmio/digest_beecrypt.c
++++ b/rpmio/digest_beecrypt.c
+@@ -132,10 +132,6 @@ DIGEST_CTX rpmDigestInit(int hashalgo, rpmDigestFlags flags)
+ ctx->Digest = (void *) sha512Digest;
+ break;
+ #endif
+- case PGPHASHALGO_RIPEMD160:
+- case PGPHASHALGO_MD2:
+- case PGPHASHALGO_TIGER192:
+- case PGPHASHALGO_HAVAL_5_160:
+ default:
+ free(ctx);
+ return NULL;
+@@ -292,9 +288,6 @@ static int pgpVerifySigRSA(pgpDigAlg pgpkey, pgpDigAlg pgpsig, uint8_t *hash, si
+ case PGPHASHALGO_SHA1:
+ prefix = "3021300906052b0e03021a05000414";
+ break;
+- case PGPHASHALGO_MD2:
+- prefix = "3020300c06082a864886f70d020205000410";
+- break;
+ case PGPHASHALGO_SHA256:
+ prefix = "3031300d060960864801650304020105000420";
+ break;
+diff --git a/rpmio/digest_nss.c b/rpmio/digest_nss.c
+index e11920e3e..b3d2b5595 100644
+--- a/rpmio/digest_nss.c
++++ b/rpmio/digest_nss.c
+@@ -117,7 +117,6 @@ static HASH_HashType getHashType(int hashalgo)
+ {
+ switch (hashalgo) {
+ case PGPHASHALGO_MD5: return HASH_AlgMD5;
+- case PGPHASHALGO_MD2: return HASH_AlgMD2;
+ case PGPHASHALGO_SHA1: return HASH_AlgSHA1;
+ #ifdef SHA224_LENGTH
+ case PGPHASHALGO_SHA224: return HASH_AlgSHA224;
+@@ -217,7 +216,6 @@ static SECOidTag getHashAlg(unsigned int hashalgo)
+ {
+ switch (hashalgo) {
+ case PGPHASHALGO_MD5: return SEC_OID_MD5;
+- case PGPHASHALGO_MD2: return SEC_OID_MD2;
+ case PGPHASHALGO_SHA1: return SEC_OID_SHA1;
+ #ifdef SHA224_LENGTH
+ case PGPHASHALGO_SHA224: return SEC_OID_SHA224;
+diff --git a/rpmio/digest_openssl.c b/rpmio/digest_openssl.c
+index 18e52a724..0ae48dd1d 100644
+--- a/rpmio/digest_openssl.c
++++ b/rpmio/digest_openssl.c
+@@ -172,12 +172,6 @@ static const EVP_MD *getEVPMD(int hashalgo)
+ case PGPHASHALGO_SHA1:
+ return EVP_sha1();
+
+- case PGPHASHALGO_RIPEMD160:
+- return EVP_ripemd160();
+-
+- case PGPHASHALGO_MD2:
+- return EVP_md2();
+-
+ case PGPHASHALGO_SHA256:
+ return EVP_sha256();
+
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/0001-rpmplugins.c-call-dlerror-prior-to-dlsym.patch b/meta/recipes-devtools/rpm/files/0001-rpmplugins.c-call-dlerror-prior-to-dlsym.patch
new file mode 100644
index 0000000000..8842e3ebd7
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/0001-rpmplugins.c-call-dlerror-prior-to-dlsym.patch
@@ -0,0 +1,29 @@
+From 6878a83f9bac015c64d83cee42530a20a264cc5a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 7 Jan 2020 12:02:06 +0100
+Subject: [PATCH] rpmplugins.c: call dlerror() prior to dlsym()
+
+This is the recommended way in the manpage; if there is
+a lingering error from an unrelated dl*() call that was
+never obtained via dlerror(), it needs to be cleared
+prior to calling dlsym().
+
+Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/998]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ lib/rpmplugins.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/rpmplugins.c b/lib/rpmplugins.c
+index 65e684e84..b950f85cf 100644
+--- a/lib/rpmplugins.c
++++ b/lib/rpmplugins.c
+@@ -68,6 +68,8 @@ static rpmPlugin rpmPluginNew(const char *name, const char *path,
+
+ /* make sure the plugin has the supported hooks flag */
+ hooks_name = rstrscat(NULL, name, "_hooks", NULL);
++ /* clear out any old errors that weren't fetched */
++ dlerror();
+ hooks = dlsym(handle, hooks_name);
+ if ((error = dlerror()) != NULL) {
+ rpmlog(RPMLOG_ERR, _("Failed to resolve symbol %s: %s\n"),
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 c37330eb4c..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,22 +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-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 = "nss 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
@@ -58,22 +58,26 @@ export PYTHON_ABI
# OE-core patches autoreconf to additionally run gnu-configize, which fails with this recipe
EXTRA_AUTORECONF_append = " --exclude=gnu-configize"
-EXTRA_OECONF_append = " --without-lua --enable-python"
-EXTRA_OECONF_append_libc-musl = " --disable-nls"
+EXTRA_OECONF_append = " --without-lua --enable-python --with-crypto=openssl"
+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 = ""
@@ -95,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 \
@@ -105,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 \
@@ -113,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
@@ -125,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 ffb1d061c0..375efa0dea 100644
--- a/meta/recipes-devtools/rsync/rsync_3.1.3.bb
+++ b/meta/recipes-devtools/rsync/rsync_3.2.3.bb
@@ -3,24 +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[sha256sum] = "becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e"
-SRC_URI[md5sum] = "1581a588fde9d89f6bc6201e8129afaf"
-SRC_URI[sha256sum] = "55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0"
+# -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)} \
@@ -29,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.inc b/meta/recipes-devtools/ruby/ruby.inc
index a98249afbd..a38b3fe624 100644
--- a/meta/recipes-devtools/ruby/ruby.inc
+++ b/meta/recipes-devtools/ruby/ruby.inc
@@ -6,12 +6,12 @@ It is simple, straight-forward, and extensible. \
"
HOMEPAGE = "http://www.ruby-lang.org/"
SECTION = "devel/ruby"
-LICENSE = "Ruby | BSD | GPLv2"
+LICENSE = "Ruby | BSD-2-Clause | BSD-3-Clause | GPLv2 | ISC | MIT"
LIC_FILES_CHKSUM = "\
- file://COPYING;md5=340948e1882e579731841bf49cdc22c1 \
+ file://COPYING;md5=5b8c87559868796979806100db3f3805 \
file://BSDL;md5=19aaf65c88a40b508d17ae4be539c4b5\
file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263\
- file://LEGAL;md5=23a79bb4c1a40f6cc9bcb6f4e7c39799 \
+ file://LEGAL;md5=2b6d62dc0d608f34d510ca3f428110ec \
"
DEPENDS = "ruby-native zlib openssl tcl libyaml gdbm readline libffi"
@@ -19,7 +19,7 @@ DEPENDS_class-native = "openssl-native libyaml-native readline-native zlib-nativ
SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "http://cache.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \
- file://extmk.patch \
+ file://0001-extmk-fix-cross-compilation-of-external-gems.patch \
file://0002-Obey-LDFLAGS-for-the-link-of-libruby.patch \
"
UPSTREAM_CHECK_URI = "https://www.ruby-lang.org/en/downloads/"
@@ -35,6 +35,6 @@ inherit autotools ptest
# built.
do_configure_prepend() {
- sed -i "s#%%TARGET_CFLAGS%%#$TARGET_CFLAGS#; s#%%TARGET_LDFLAGS%%#$TARGET_LDFLAGS#" ${S}/common.mk
+ sed -i "s#%%TARGET_CFLAGS%%#$CFLAGS#; s#%%TARGET_LDFLAGS%%#$LDFLAGS#" ${S}/common.mk
rm -rf ${S}/ruby/
}
diff --git a/meta/recipes-devtools/ruby/ruby/0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch b/meta/recipes-devtools/ruby/ruby/0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch
new file mode 100644
index 0000000000..f316bed7bd
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby/0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch
@@ -0,0 +1,38 @@
+From eed7bc855fd8d232d4d203cc9027dd07cee8eca2 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Sat, 8 Feb 2020 15:16:14 +0800
+Subject: [PATCH] Modify shebang of libexec/y2racc and libexec/racc2y.
+
+change /usr/local/bin/ruby to /usr/bin/env ruby.
+
+Upstream-Status: Pending
+
+Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
+---
+ libexec/racc2y | 2 +-
+ libexec/y2racc | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libexec/racc2y b/libexec/racc2y
+index f88d73ed2c..74e49cfa21 100755
+--- a/libexec/racc2y
++++ b/libexec/racc2y
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/ruby
++#!/usr/bin/env ruby
+ #
+ # $Id$
+ #
+diff --git a/libexec/y2racc b/libexec/y2racc
+index 7933f94153..36daf864e1 100755
+--- a/libexec/y2racc
++++ b/libexec/y2racc
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/ruby
++#!/usr/bin/env ruby
+ #
+ # $Id$
+ #
+--
+2.17.1
+
diff --git a/meta/recipes-devtools/ruby/ruby/0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch b/meta/recipes-devtools/ruby/ruby/0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch
deleted file mode 100644
index 4cc1fa027f..0000000000
--- a/meta/recipes-devtools/ruby/ruby/0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 3a8189530312e81d6c005c396565f985a47f3383 Mon Sep 17 00:00:00 2001
-From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
-Date: Fri, 8 Feb 2019 07:22:55 +0000
-Subject: [PATCH] configure.ac: check finite,isinf,isnan as macros first
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ruby-core:91487] [Bug #15595]
-
-git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-
----
-Upstream-Status: Backport [https://github.com/ruby/ruby/commit/74f94b3e6ebf15b76f3b357e754095412b006e94]
-(modified so as to apply cleanly here)
-Signed-off-by: André Draszik <andre.draszik@jci.com>
----
- aclocal.m4 | 1 +
- configure.ac | 13 ++++---------
- tool/m4/ruby_replace_funcs.m4 | 13 +++++++++++++
- 3 files changed, 18 insertions(+), 9 deletions(-)
- create mode 100644 tool/m4/ruby_replace_funcs.m4
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 18ba297b05..2a907b3467 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -13,3 +13,4 @@
-
- m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
- m4_include([acinclude.m4])
-+m4_include([tool/m4/ruby_replace_funcs.m4])
-diff --git a/configure.ac b/configure.ac
-index 8a7cee55b8..b97c5b3cc9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1189,9 +1189,6 @@ main()
- ac_cv_func_fsync=yes
- ac_cv_func_seekdir=yes
- ac_cv_func_telldir=yes
-- ac_cv_func_isinf=yes
-- ac_cv_func_isnan=yes
-- ac_cv_func_finite=yes
- ac_cv_func_lchown=yes
- ac_cv_func_link=yes
- ac_cv_func_readlink=yes
-@@ -1239,9 +1236,6 @@ main()
- [netbsd*], [ LIBS="-lm $LIBS"
- ],
- [dragonfly*], [ LIBS="-lm $LIBS"
-- # isinf() and isnan() are macros on DragonFly.
-- ac_cv_func_isinf=yes
-- ac_cv_func_isnan=yes
- ],
- [aix*],[ LIBS="-lm $LIBS"
- ac_cv_func_round=no
-@@ -2213,11 +2207,8 @@ AC_REPLACE_FUNCS(dup2)
- AC_REPLACE_FUNCS(erf)
- AC_REPLACE_FUNCS(explicit_bzero)
- AC_REPLACE_FUNCS(ffs)
--AC_REPLACE_FUNCS(finite)
- AC_REPLACE_FUNCS(flock)
- AC_REPLACE_FUNCS(hypot)
--AC_REPLACE_FUNCS(isinf)
--AC_REPLACE_FUNCS(isnan)
- AC_REPLACE_FUNCS(lgamma_r)
- AC_REPLACE_FUNCS(memmove)
- AC_REPLACE_FUNCS(nextafter)
-@@ -2229,6 +2220,10 @@ AC_REPLACE_FUNCS(strlcpy)
- AC_REPLACE_FUNCS(strstr)
- AC_REPLACE_FUNCS(tgamma)
-
-+RUBY_REPLACE_FUNC([finite], [@%:@include <math.h>])
-+RUBY_REPLACE_FUNC([isinf], [@%:@include <math.h>])
-+RUBY_REPLACE_FUNC([isnan], [@%:@include <math.h>])
-+
- # for missing/setproctitle.c
- AS_CASE(["$target_os"],
- [aix* | k*bsd*-gnu | kopensolaris*-gnu | linux* | darwin*], [AC_DEFINE(SPT_TYPE,SPT_REUSEARGV)],
-diff --git a/tool/m4/ruby_replace_funcs.m4 b/tool/m4/ruby_replace_funcs.m4
-new file mode 100644
-index 0000000000..d0612e29a0
---- /dev/null
-+++ b/tool/m4/ruby_replace_funcs.m4
-@@ -0,0 +1,13 @@
-+# -*- Autoconf -*-
-+dnl RUBY_REPLACE_FUNC [func] [included]
-+AC_DEFUN([RUBY_REPLACE_FUNC], [dnl
-+ AC_CHECK_DECL([$1],dnl
-+ [AC_DEFINE(AS_TR_CPP(HAVE_[$1]))],dnl
-+ [AC_REPLACE_FUNCS($1)],dnl
-+ [$2])dnl
-+])
-+
-+dnl RUBY_REPLACE_FUNCS [funcs] [included]
-+AC_DEFUN([RUBY_REPLACE_FUNCS] [dnl
-+ m4_map_args_w([$1], [RUBY_REPLACE_FUNC(], [), [$2]])dnl
-+])
---
-2.23.0.rc1
-
diff --git a/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch b/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch
new file mode 100644
index 0000000000..2e3156880e
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch
@@ -0,0 +1,34 @@
+From a6e12b25a54d112c899b70c89c0bec9c5e5ebf3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
+Date: Mon, 30 Sep 2019 16:57:01 +0100
+Subject: [PATCH 1/3] extmk: fix cross-compilation of external gems
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Note that I (André) didn't actually write this patch, I
+only updated it so that git-am works.
+
+Upstream-Status: Pending
+Signed-off-by: André Draszik <andre.draszik@jci.com>
+---
+ ext/extmk.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/extmk.rb b/ext/extmk.rb
+index 1389dc4117..e4d923d7a7 100755
+--- a/ext/extmk.rb
++++ b/ext/extmk.rb
+@@ -413,8 +413,8 @@ def $mflags.defined?(var)
+ end
+ $ruby = [$ruby]
+ $ruby << "-I'$(topdir)'"
++$ruby << "-I'$(top_srcdir)/lib'"
+ unless CROSS_COMPILING
+- $ruby << "-I'$(top_srcdir)/lib'"
+ $ruby << "-I'$(extout)/$(arch)'" << "-I'$(extout)/common'" if $extout
+ ENV["RUBYLIB"] = "-"
+ end
+--
+2.23.0.rc1
+
diff --git a/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch b/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch
index 4cf579f427..b31dee1128 100644
--- a/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch
+++ b/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch
@@ -1,25 +1,27 @@
-Upstream-Status: Pending
-
-From 306e95a9818d39d3349075aac9609e062b0f19ce Mon Sep 17 00:00:00 2001
+From 6d608326970b1613633d7715ebb7d628dfcd16ee Mon Sep 17 00:00:00 2001
From: Christopher Larson <chris_larson@mentor.com>
Date: Thu, 5 May 2016 10:59:07 -0700
-Subject: [PATCH 2/2] Obey LDFLAGS for the link of libruby
+Subject: [PATCH 2/3] Obey LDFLAGS for the link of libruby
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+Upstream-Status: Pending
---
- Makefile.in | 2 +-
+ template/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: ruby-2.5.0/Makefile.in
-===================================================================
---- ruby-2.5.0.orig/Makefile.in
-+++ ruby-2.5.0/Makefile.in
-@@ -77,7 +77,7 @@ LIBS = @LIBS@ $(EXTLIBS)
- MISSING = @LIBOBJS@ @ALLOCA@
+diff --git a/template/Makefile.in b/template/Makefile.in
+index fa1e19ef37..bbd07fa34b 100644
+--- a/template/Makefile.in
++++ b/template/Makefile.in
+@@ -109,7 +109,7 @@ MISSING = @LIBOBJS@ @ALLOCA@
ENABLE_SHARED = @ENABLE_SHARED@
LDSHARED = @LIBRUBY_LDSHARED@
+ DLDSHARED = @DLDSHARED@
-DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
+DLDFLAGS = @LIBRUBY_DLDFLAGS@ @LDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
SOLIBS = @SOLIBS@
ENABLE_DEBUG_ENV = @ENABLE_DEBUG_ENV@
MAINLIBS = @MAINLIBS@
+--
+2.23.0.rc1
+
diff --git a/meta/recipes-devtools/ruby/ruby/extmk.patch b/meta/recipes-devtools/ruby/ruby/extmk.patch
deleted file mode 100644
index 404b9af7aa..0000000000
--- a/meta/recipes-devtools/ruby/ruby/extmk.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream-Status: Pending
-diff -ru ruby-1.8.7-p248.orig/ext/extmk.rb ruby-1.8.7-p248/ext/extmk.rb
---- ruby-1.8.7-p248.orig/ext/extmk.rb 2009-12-24 03:01:58.000000000 -0600
-+++ ruby-1.8.7-p248/ext/extmk.rb 2010-02-12 15:55:27.370061558 -0600
-@@ -413,8 +413,8 @@ def $mflags.defined?(var)
- end
- $ruby = [$ruby]
- $ruby << "-I'$(topdir)'"
-+$ruby << "-I'$(top_srcdir)/lib'"
- unless CROSS_COMPILING
-- $ruby << "-I'$(top_srcdir)/lib'"
- $ruby << "-I'$(extout)/$(arch)'" << "-I'$(extout)/common'" if $extout
- ENV["RUBYLIB"] = "-"
- end
---
-
diff --git a/meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch b/meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch
new file mode 100644
index 0000000000..a1e6330445
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch
@@ -0,0 +1,26 @@
+Filter out __has_include* compiler defines
+
+They are internal to compiler and this header is later on includes in C
+files, but newer gcc >= 10 complains about it.
+
+error in initial header file:
+| In file included from /tmp/20200124-86625-14hiju4.c:1:
+| /tmp/20200124-86625-11y6l6i.h:13849:9: error: "__has_include" cannot be used as a macro name
+| 13849 | #define __has_include __has_include
+| | ^~~~~~~~~~~~~
+| compilation terminated due to -Wfatal-errors.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/common.mk
++++ b/common.mk
+@@ -221,6 +221,8 @@ $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT
+ $(TIMESTAMPDIR)/$(arch)/.time
+ $(ECHO) building $(@F:.time=.h)
+ $(Q) $(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new
++ $(Q)sed -i -e "/#define __has_include __has_include/d" $(@F:.time=.h).new
++ $(Q)sed -i -e "/#define __has_include_next __has_include_next/d" $(@F:.time=.h).new
+ $(Q) $(IFCHANGE) "--timestamp=$@" $(@F:.time=.h) $(@F:.time=.h).new
+
+ $(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time
diff --git a/meta/recipes-devtools/ruby/ruby_2.5.5.bb b/meta/recipes-devtools/ruby/ruby_2.7.1.bb
index 223b0371eb..3dd9fb0a62 100644
--- a/meta/recipes-devtools/ruby/ruby_2.5.5.bb
+++ b/meta/recipes-devtools/ruby/ruby_2.7.1.bb
@@ -1,12 +1,15 @@
require ruby.inc
+DEPENDS_append_libc-musl = " libucontext"
+
SRC_URI += " \
- file://0001-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch \
+ file://remove_has_include_macros.patch \
file://run-ptest \
+ file://0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch \
"
-SRC_URI[md5sum] = "7e156fb526b8f4bb1b30a3dd8a7ce400"
-SRC_URI[sha256sum] = "28a945fdf340e6ba04fc890b98648342e3cccfd6d223a48f3810572f11b2514c"
+SRC_URI[md5sum] = "debb9c325bf65021214451660f46e909"
+SRC_URI[sha256sum] = "d418483bdd0000576c1370571121a6eb24582116db0b7bb2005e90e250eae418"
PACKAGECONFIG ??= ""
PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
@@ -15,8 +18,6 @@ PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
PACKAGECONFIG[gmp] = "--with-gmp=yes, --with-gmp=no, gmp"
PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6,"
-EXTRA_AUTORECONF += "--exclude=aclocal"
-
EXTRA_OECONF = "\
--disable-versioned-paths \
--disable-rpath \
@@ -26,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
}
@@ -42,16 +49,24 @@ do_install_append_class-target () {
-e 's:${RECIPE_SYSROOT}::g' \
-e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
${D}$rbconfig_rb
-
- # Find out created.rid from .installed.list
- created_rid=`grep created.rid ${B}/.installed.list`
- # Remove build host directories
- sed -i -e 's:${WORKDIR}::g' ${D}$created_rid
-
}
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 - \
+ | tar -C ${D}${libdir}/ruby/${SHRT_VER}.0/ --no-same-owner --preserve-permissions --strip-components=2 -xf -
+ # adjust path to not assume build directory layout
+ sed -e 's|File.expand_path(.*\.\./bin/erb[^)]*|File.expand_path("${bindir}/erb"|g' \
+ -i ${D}${PTEST_PATH}/test/erb/test_erb_command.rb
+
cp -r ${S}/include ${D}/${libdir}/ruby/
test_case_rb=`grep rubygems/test_case.rb ${B}/.installed.list`
sed -i -e 's:../../../test/:../../../ptest/test/:g' ${D}/$test_case_rb
@@ -69,6 +84,9 @@ FILES_${PN}-rdoc += "${libdir}/ruby/*/rdoc ${bindir}/rdoc"
FILES_${PN} += "${datadir}/rubygems"
-FILES_${PN}-ptest_append_class-target += "${libdir}/ruby/include"
+FILES_${PN}-ptest_append_class-target = "\
+ ${libdir}/ruby/include \
+ ${libdir}/ruby/${SHRT_VER}.0/*/-test- \
+"
BBCLASSEXTEND = "native"
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/squashfs-tools-4.3-sysmacros.patch b/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch
deleted file mode 100644
index f2e88f416a..0000000000
--- a/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-fs/squashfs-tools/files/squashfs-tools-4.3-sysmacros.patch
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
-Upstream-Status: Pending
-
-
-sys/types.h might not always include sys/sysmacros.h for major/minor/makedev
-
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -59,6 +59,7 @@
- #else
- #include <endian.h>
- #include <sys/sysinfo.h>
-+#include <sys/sysmacros.h>
- #endif
-
- #include "squashfs_fs.h"
---- a/squashfs-tools/unsquashfs.c
-+++ b/squashfs-tools/unsquashfs.c
-@@ -40,6 +40,10 @@
- #include <limits.h>
- #include <ctype.h>
-
-+#ifdef linux
-+#include <sys/sysmacros.h>
-+#endif
-+
- struct cache *fragment_cache, *data_cache;
- struct queue *to_reader, *to_inflate, *to_writer, *from_writer;
- pthread_t *thread, *inflator_thread;
diff --git a/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
index 51e4a5939d..b06951df36 100644
--- a/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
+++ b/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
@@ -5,19 +5,14 @@ SECTION = "base"
LICENSE = "GPL-2"
LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-PV = "4.3+gitr${SRCPV}"
-SRCREV = "f95864afe8833fe3ad782d714b41378e860977b1"
+PV = "4.4"
+SRCREV = "52eb4c279cd283ed9802dd1ceb686560b22ffb67"
SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https \
- file://squashfs-tools-4.3-sysmacros.patch;striplevel=2 \
+ file://0001-squashfs-tools-fix-build-failure-against-gcc-10.patch;striplevel=2 \
"
-SRC_URI[lzma.md5sum] = "29d5ffd03a5a3e51aef6a74e9eafb759"
-SRC_URI[lzma.sha256sum] = "c935fd04dd8e0e8c688a3078f3675d699679a90be81c12686837e0880aa0fa1e"
S = "${WORKDIR}/git/squashfs-tools"
-# needs FNM_EXTMATCH
-COMPATIBLE_HOST_libc-musl = 'null'
-
EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS}"
PACKAGECONFIG ??= "gzip xz lzo lz4 lzma xattr reproducible"
@@ -31,13 +26,11 @@ PACKAGECONFIG[zstd] = "ZSTD_SUPPORT=1,ZSTD_SUPPORT=0,zstd"
PACKAGECONFIG[reproducible] = "REPRODUCIBLE_DEFAULT=1,REPRODUCIBLE_DEFAULT=0,"
do_compile() {
- oe_runmake mksquashfs unsquashfs
+ oe_runmake all
}
-do_install () {
- install -d ${D}${sbindir}
- install -m 0755 mksquashfs ${D}${sbindir}/
- install -m 0755 unsquashfs ${D}${sbindir}/
+do_install() {
+ oe_runmake install INSTALL_DIR=${D}${sbindir}
}
ARM_INSTRUCTION_SET_armv4 = "arm"
diff --git a/meta/recipes-devtools/strace/strace/0001-caps-abbrev.awk-fix-gawk-s-path.patch b/meta/recipes-devtools/strace/strace/0001-caps-abbrev.awk-fix-gawk-s-path.patch
index 52d2cdcdc5..235e803641 100644
--- a/meta/recipes-devtools/strace/strace/0001-caps-abbrev.awk-fix-gawk-s-path.patch
+++ b/meta/recipes-devtools/strace/strace/0001-caps-abbrev.awk-fix-gawk-s-path.patch
@@ -1,4 +1,4 @@
-From d225aaa8841f47ba8aa7b353b0ac3028d5913efe Mon Sep 17 00:00:00 2001
+From 597cc206d982e7237eb93fdc33e8c4bb6bb2d796 Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Thu, 9 Feb 2017 01:27:49 -0800
Subject: [PATCH] caps-abbrev.awk: fix gawk's path
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-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch b/meta/recipes-devtools/strace/strace/0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch
deleted file mode 100644
index 95d85bf34a..0000000000
--- a/meta/recipes-devtools/strace/strace/0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 879ae71c472ce522f1b3514d2abf6ad49b4acc07 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 18 Sep 2017 22:51:32 -0700
-Subject: [PATCH] tests/sigaction: Check for mips and alpha before using
- sa_restorer
-
-local structure does not define restorer member for mips and alpha
-in definition, we need to match that assumption here where they are
-being set
-
-Fixes
-| ../../strace-4.18/tests/sigaction.c:177:36: error: 'struct_set_sa {aka struct set_sa}' has no member named 'restorer'
-| # define SA_RESTORER_ARGS , new_act->restorer
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- tests/sigaction.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/tests/sigaction.c
-+++ b/tests/sigaction.c
-@@ -156,7 +156,7 @@ main(void)
- sigdelset(mask.libc, SIGHUP);
-
- memcpy(new_act->mask, mask.old, sizeof(mask.old));
--# ifdef SA_RESTORER
-+#if defined(SA_RESTORER) && !defined(MIPS) && !defined(ALPHA)
- new_act->flags = SA_RESTORER;
- new_act->restorer = (unsigned long) 0xdeadfacecafef00dULL;
- # define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx"
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/Makefile-ptest.patch b/meta/recipes-devtools/strace/strace/Makefile-ptest.patch
index 08fa5c53b8..42c1893f39 100644
--- a/meta/recipes-devtools/strace/strace/Makefile-ptest.patch
+++ b/meta/recipes-devtools/strace/strace/Makefile-ptest.patch
@@ -1,4 +1,4 @@
-From ef5040b4f15006a22ac63a3bacfceac36ffc2045 Mon Sep 17 00:00:00 2001
+From ee47e205255928679701a5b769bd7ae0f815119d Mon Sep 17 00:00:00 2001
From: Gabriel Barbu <gabriel.barbu@enea.com>
Date: Thu, 25 Jul 2013 15:28:33 +0200
Subject: [PATCH] strace: Add ptest
@@ -14,10 +14,10 @@ Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
1 file changed, 19 insertions(+)
diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 825c989..4623c48 100644
+index 8cf4c36..66162eb 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
-@@ -14,6 +14,7 @@ SIZEOF_LONG = @SIZEOF_LONG@
+@@ -15,6 +15,7 @@ SIZEOF_LONG = @SIZEOF_LONG@
MPERS_NAME =
MPERS_CC_FLAGS =
ARCH_MFLAGS =
@@ -25,7 +25,7 @@ index 825c989..4623c48 100644
AM_CFLAGS = $(WARN_CFLAGS)
AM_CPPFLAGS = $(ARCH_MFLAGS) \
-I$(builddir) \
-@@ -477,3 +478,21 @@ BUILT_SOURCES = ksysent.h
+@@ -538,3 +539,21 @@ BUILT_SOURCES = ksysent.h
CLEANFILES = ksysent.h
include ../scno.am
@@ -44,6 +44,6 @@ index 825c989..4623c48 100644
+ done
+ for file in $(EXTRA_DIST); do \
+ install $(srcdir)/$$file $(DESTDIR)/$(TESTDIR); \
-+ sed -i -e 's/$${srcdir=.}/./g' $(DESTDIR)/$(TESTDIR)/$$file; \
++ #sed -i -e 's/$${srcdir=.}/./g' $(DESTDIR)/$(TESTDIR)/$$file; \
+ done
+ for i in net scm_rights-fd rt_sigaction; do sed -i -e 's/$$srcdir/./g' $(DESTDIR)/$(TESTDIR)/$$i.test; done
diff --git a/meta/recipes-devtools/strace/strace/disable-git-version-gen.patch b/meta/recipes-devtools/strace/strace/disable-git-version-gen.patch
index 5fefff33e9..e8dbd7f273 100644
--- a/meta/recipes-devtools/strace/strace/disable-git-version-gen.patch
+++ b/meta/recipes-devtools/strace/strace/disable-git-version-gen.patch
@@ -1,4 +1,4 @@
-From 3bc47502ab011ea8d7c9cd724b25174ecd9506bc Mon Sep 17 00:00:00 2001
+From d87a7feb5ea75da7061afdd473faba044ec8eb0f Mon Sep 17 00:00:00 2001
From: Andre McCurdy <armccurdy@gmail.com>
Date: Mon, 18 Jan 2016 13:33:50 -0800
Subject: [PATCH] strace: remove need for scripts
@@ -16,7 +16,7 @@ Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 949b058..4ba989c 100644
+index dd4f13f..65f000b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,12 +12,12 @@
diff --git a/meta/recipes-devtools/strace/strace/mips-SIGEMT.patch b/meta/recipes-devtools/strace/strace/mips-SIGEMT.patch
index 0d3192b345..e86da9707c 100644
--- a/meta/recipes-devtools/strace/strace/mips-SIGEMT.patch
+++ b/meta/recipes-devtools/strace/strace/mips-SIGEMT.patch
@@ -1,4 +1,4 @@
-From 20c184a7ab3fb7be67fb7626c411e756ea61d2f5 Mon Sep 17 00:00:00 2001
+From 794648d84672bbda30a920a05540b56cd155ed9d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 7 Aug 2016 23:47:57 -0700
Subject: [PATCH] strace: Fix build with mips/mips64 on musl
diff --git a/meta/recipes-devtools/strace/strace/more-robust-test-for-m32-mx32-compile-support.patch b/meta/recipes-devtools/strace/strace/more-robust-test-for-m32-mx32-compile-support.patch
deleted file mode 100644
index a9bd900da8..0000000000
--- a/meta/recipes-devtools/strace/strace/more-robust-test-for-m32-mx32-compile-support.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From cc97307e8e39a81999c6a365d057487a02e6128e Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Mon, 18 Jan 2016 11:00:00 -0800
-Subject: [PATCH] mpers.m4: more robust test for -m32/-mx32 compile support
-
-When using the default OE toolchain for x86-64, the basic checks for
--m32 and -mx32 compile support in mpers.m4 pass but later attempts to
-actually use the toolchain with -m32 fail, e.g.
-
- | In file included from /home/andre/build/tmp/sysroots/qemux86-64/usr/include/sys/syscall.h:31:0,
- | from ../strace-4.11/defs.h:55,
- | from mpers-m32/kernel_dirent.c:32:
- | /home/andre/build/tmp/sysroots/qemux86-64/usr/include/bits/syscall.h:41:29: fatal error: bits/syscall-32.h: No such file or directory
-
-Make the mpers.m4 tests more robust so that configure correctly
-detects the limitations of the OE toolchain.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-
----
- m4/mpers.m4 | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/m4/mpers.m4 b/m4/mpers.m4
-index 13725d7..d8578ea 100644
---- a/m4/mpers.m4
-+++ b/m4/mpers.m4
-@@ -88,6 +88,7 @@ case "$arch" in
- CFLAGS="$CFLAGS MPERS_CFLAGS $IFLAG"
- AC_CACHE_CHECK([for mpers_name personality compile support], [st_cv_cc],
- [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <stdint.h>
-+ #include <sys/syscall.h>
- int main(){return 0;}]])],
- [st_cv_cc=yes],
- [st_cv_cc=no])])
-@@ -95,6 +96,7 @@ case "$arch" in
- AC_CACHE_CHECK([for mpers_name personality runtime support],
- [st_cv_runtime],
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdint.h>
-+ #include <sys/syscall.h>
- int main(){return 0;}]])],
- [st_cv_runtime=yes],
- [st_cv_runtime=no],
diff --git a/meta/recipes-devtools/strace/strace/ptest-spacesave.patch b/meta/recipes-devtools/strace/strace/ptest-spacesave.patch
index 3e32cc388c..c5d8ff9207 100644
--- a/meta/recipes-devtools/strace/strace/ptest-spacesave.patch
+++ b/meta/recipes-devtools/strace/strace/ptest-spacesave.patch
@@ -1,3 +1,8 @@
+From 3fad4821d90cd264d1b94253b9cf4fdf5d4034b8 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Wed, 29 May 2019 00:10:32 +0100
+Subject: [PATCH] strace: Tweak ptest disk space management
+
If the test is successful, remove the log and exp files. This stops strace
using around 600MB of disk space and running our ptest images out of space.
@@ -5,10 +10,14 @@ RP 2019/5/29
Upstream-Status: Inappropriate [specific to OE image space issues]
-Index: strace-4.26/tests/gen_tests.sh
-===================================================================
---- strace-4.26.orig/tests/gen_tests.sh
-+++ strace-4.26/tests/gen_tests.sh
+---
+ tests/gen_tests.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/gen_tests.sh b/tests/gen_tests.sh
+index 3540204..5e1e7c9 100755
+--- a/tests/gen_tests.sh
++++ b/tests/gen_tests.sh
@@ -62,6 +62,7 @@ while read -r name arg0 args; do {
$hdr
. "\${srcdir=.}/init.sh"
diff --git a/meta/recipes-devtools/strace/strace/run-ptest b/meta/recipes-devtools/strace/strace/run-ptest
index 2fed984e90..4660207220 100755
--- a/meta/recipes-devtools/strace/strace/run-ptest
+++ b/meta/recipes-devtools/strace/strace/run-ptest
@@ -1,3 +1,6 @@
#!/bin/sh
-export TIMEOUT_DURATION=30
-make -B -C tests -k test-suite.log
+export TIMEOUT_DURATION=120
+chown nobody tests
+chown nobody tests/*
+chown nobody ../ptest
+su nobody -c "make -B -C tests -k test-suite.log"
diff --git a/meta/recipes-devtools/strace/strace/uintptr_t.patch b/meta/recipes-devtools/strace/strace/uintptr_t.patch
new file mode 100644
index 0000000000..088d685af0
--- /dev/null
+++ b/meta/recipes-devtools/strace/strace/uintptr_t.patch
@@ -0,0 +1,27 @@
+From a6c9366bfbcef6f3f4bb068b1f1a5623935b5013 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 5 Nov 2019 20:05:08 -0800
+Subject: [PATCH] include stdint.h for getting uintptr_t definition
+
+fixes do_compile_ptest_base
+tests/fanotify_mark.c:191:23: error: 'uintptr_t' undeclared (first use in this function); did you mean 'intptr_t'?
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ tests/fanotify_mark.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/fanotify_mark.c b/tests/fanotify_mark.c
+index aade643..de579f3 100644
+--- a/tests/fanotify_mark.c
++++ b/tests/fanotify_mark.c
+@@ -18,6 +18,7 @@
+
+ # include <limits.h>
+ # include <stdio.h>
++# include <stdint.h>
+ # include <unistd.h>
+ # include <sys/fanotify.h>
+
diff --git a/meta/recipes-devtools/strace/strace/update-gawk-paths.patch b/meta/recipes-devtools/strace/strace/update-gawk-paths.patch
index 7077048c75..d46b147de5 100644
--- a/meta/recipes-devtools/strace/strace/update-gawk-paths.patch
+++ b/meta/recipes-devtools/strace/strace/update-gawk-paths.patch
@@ -1,4 +1,4 @@
-From f0d7ebf48441e0b090c3e6053b8c845d0a4a3b18 Mon Sep 17 00:00:00 2001
+From 12a726b280eca94883edcb4da1eaaf8e93d41739 Mon Sep 17 00:00:00 2001
From: Andre McCurdy <armccurdy@gmail.com>
Date: Mon, 18 Jan 2016 11:01:00 -0800
Subject: [PATCH] update gawk paths, /bin/gawk -> /usr/bin/gawk
diff --git a/meta/recipes-devtools/strace/strace_5.3.bb b/meta/recipes-devtools/strace/strace_5.8.bb
index 775a22fc62..0415588b97 100644
--- a/meta/recipes-devtools/strace/strace_5.3.bb
+++ b/meta/recipes-devtools/strace/strace_5.8.bb
@@ -2,21 +2,21 @@ SUMMARY = "System call tracing tool"
HOMEPAGE = "http://strace.io"
SECTION = "console/utils"
LICENSE = "LGPL-2.1+ & GPL-2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0169a04810830e94f4b1cfb823c9f592"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c756d9d5dabc27663df64f0bf492166c"
SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
file://disable-git-version-gen.patch \
- file://more-robust-test-for-m32-mx32-compile-support.patch \
file://update-gawk-paths.patch \
file://Makefile-ptest.patch \
file://run-ptest \
file://mips-SIGEMT.patch \
file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
- file://0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.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] = "84f5e72de813c9b1bb6057ee8ab428d8"
-SRC_URI[sha256sum] = "6c131198749656401fe3efd6b4b16a07ea867e8f530867ceae8930bbc937a047"
+SRC_URI[sha256sum] = "df4a669f7fff9cc302784085bd4b72fab216a426a3f72c892b28a537b71e7aa9"
inherit autotools ptest
@@ -27,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.12.2.bb b/meta/recipes-devtools/subversion/subversion_1.14.0.bb
index 4ffa1c584e..452a025fcc 100644
--- a/meta/recipes-devtools/subversion/subversion_1.12.2.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] = "1ff249f848f834ded88536543e031975"
-SRC_URI[sha256sum] = "3bd0b5c8e4c5175263dc9a92fd9aef94ce917e80af034f26fe5c45fde7e0f771"
+SRC_URI[sha256sum] = "6ba8e218f9f97a83a799e58a3c6da1221d034b18d9d8cbbcb6ec52ab11722102"
-inherit autotools pkgconfig gettext
+inherit autotools pkgconfig gettext python3native
CVE_PRODUCT = "apache:subversion"
@@ -37,6 +36,8 @@ EXTRA_OECONF = " \
ac_cv_path_RUBY=none \
"
+EXTRA_OEMAKE += "pkgconfig_dir=${libdir}/pkgconfig"
+
acpaths = "-I build/ -I build/ac-macros/"
CPPFLAGS += "-P"
@@ -58,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/systemd-bootchart/systemd-bootchart/0001-architecture-Recognise-RISCV-32-RISCV-64.patch b/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-architecture-Recognise-RISCV-32-RISCV-64.patch
new file mode 100644
index 0000000000..fc03812bb9
--- /dev/null
+++ b/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-architecture-Recognise-RISCV-32-RISCV-64.patch
@@ -0,0 +1,45 @@
+From 4a6ace0a965965ea15e88c3418c7158ca5cc9f8f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Nov 2019 10:12:05 -0800
+Subject: [PATCH] architecture: Recognise RISCV-32/RISCV-64
+
+Upstream-Status: Backport [https://github.com/systemd/systemd/commit/171b53380085b1288b03b19a2b978f36a5c003d0]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/architecture.h | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/src/architecture.h b/src/architecture.h
+index 26679e2..89c7d32 100644
+--- a/src/architecture.h
++++ b/src/architecture.h
+@@ -57,6 +57,8 @@ enum {
+ ARCHITECTURE_M68K,
+ ARCHITECTURE_TILEGX,
+ ARCHITECTURE_CRIS,
++ ARCHITECTURE_RISCV32,
++ ARCHITECTURE_RISCV64,
+ _ARCHITECTURE_MAX,
+ _ARCHITECTURE_INVALID = -1
+ };
+@@ -194,6 +196,17 @@ int uname_architecture(void);
+ #elif defined(__cris__)
+ # define native_architecture() ARCHITECTURE_CRIS
+ # error "Missing LIB_ARCH_TUPLE for CRIS"
++#elif defined(__riscv)
++# if __SIZEOF_POINTER__ == 4
++# define native_architecture() ARCHITECTURE_RISCV32
++# define LIB_ARCH_TUPLE "riscv32-linux-gnu"
++# elif __SIZEOF_POINTER__ == 8
++# define native_architecture() ARCHITECTURE_RISCV64
++# define LIB_ARCH_TUPLE "riscv64-linux-gnu"
++# else
++# error "Unrecognized riscv architecture variant"
++# endif
++# define PROC_CPUINFO_MODEL "cpu model"
+ #else
+ # error "Please register your architecture here!"
+ #endif
+--
+2.24.0
+
diff --git a/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/mips64.patch b/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/mips64.patch
new file mode 100644
index 0000000000..6206bc4b44
--- /dev/null
+++ b/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/mips64.patch
@@ -0,0 +1,35 @@
+Recognise mips64 n32/n64
+
+These are supported in systemd now a days
+
+Upstream-Status: Backport [https://github.com/systemd/systemd/commit/caf49b95b3a6efe9455078098c729d83b08e5206]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/architecture.h
++++ b/src/architecture.h
+@@ -127,13 +127,22 @@ int uname_architecture(void);
+ # define native_architecture() ARCHITECTURE_SPARC
+ # define LIB_ARCH_TUPLE "sparc-linux-gnu"
+ # define PROC_CPUINFO_MODEL "cpu"
+-#elif defined(__mips64__)
++#elif defined(__mips64) && defined(__LP64__)
+ # if __BYTE_ORDER == __BIG_ENDIAN
+ # define native_architecture() ARCHITECTURE_MIPS64
+-# error "Missing LIB_ARCH_TUPLE for MIPS64"
++# define LIB_ARCH_TUPLE "mips64-linux-gnuabi64"
+ # else
+ # define native_architecture() ARCHITECTURE_MIPS64_LE
+-# error "Missing LIB_ARCH_TUPLE for MIPS64_LE"
++# define LIB_ARCH_TUPLE "mips64el-linux-gnuabi64"
++# endif
++# define PROC_CPUINFO_MODEL "cpu model"
++#elif defined(__mips64)
++# if __BYTE_ORDER == __BIG_ENDIAN
++# define native_architecture() ARCHITECTURE_MIPS64
++# define LIB_ARCH_TUPLE "mips64-linux-gnuabin32"
++# else
++# define native_architecture() ARCHITECTURE_MIPS64_LE
++# define LIB_ARCH_TUPLE "mips64el-linux-gnuabin32"
+ # endif
+ # define PROC_CPUINFO_MODEL "cpu model"
+ #elif defined(__mips__)
diff --git a/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb b/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb
index b0433e0e99..a7a1f0ff1a 100644
--- a/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb
+++ b/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb
@@ -3,6 +3,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c
file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe"
SRC_URI = "git://github.com/systemd/systemd-bootchart.git;protocol=https \
+ file://0001-architecture-Recognise-RISCV-32-RISCV-64.patch \
+ file://mips64.patch \
"
SRC_URI_append_libc-musl = " \
@@ -20,7 +22,7 @@ S = "${WORKDIR}/git"
DEPENDS = "systemd libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native intltool"
-inherit pkgconfig autotools systemd distro_features_check
+inherit pkgconfig autotools systemd features_check
REQUIRED_DISTRO_FEATURES = "systemd"
diff --git a/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb b/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
index b4bd4ca63c..ed14fe66b1 100644
--- a/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
+++ b/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
@@ -29,7 +29,7 @@ INITSCRIPT_NAME = "tcf-agent"
INITSCRIPT_PARAMS = "start 99 3 5 . stop 20 0 1 2 6 ."
# mangling needed for make
-MAKE_ARCH = "`echo ${TARGET_ARCH} | sed s,i.86,i686, | sed s,aarch64.*,a64,`"
+MAKE_ARCH = "`echo ${TARGET_ARCH} | sed s,i.86,i686, | sed s,aarch64.*,a64, | sed s,armeb,arm,`"
MAKE_OS = "`echo ${TARGET_OS} | sed s,^linux.*,GNU/Linux,`"
EXTRA_OEMAKE = "MACHINE=${MAKE_ARCH} OPSYS=${MAKE_OS} 'CC=${CC}' 'AR=${AR}'"
@@ -46,6 +46,7 @@ CFLAGS_append_mips = " ${LCL_STOP_SERVICES}"
CFLAGS_append_mips64 = " ${LCL_STOP_SERVICES}"
CFLAGS_append_libc-musl = " ${LCL_STOP_SERVICES}"
CFLAGS_append_powerpc64 = " ${LCL_STOP_SERVICES}"
+CFLAGS_append_powerpc64le = " ${LCL_STOP_SERVICES}"
CFLAGS_append_riscv64 = " ${LCL_STOP_SERVICES}"
do_install() {
diff --git a/meta/recipes-devtools/tcltk/tcl/0001-Fix-abd4abedd2-Failed-to-build-tk-8.6.10-with-cross-.patch b/meta/recipes-devtools/tcltk/tcl/0001-Fix-abd4abedd2-Failed-to-build-tk-8.6.10-with-cross-.patch
new file mode 100644
index 0000000000..3cd34155ee
--- /dev/null
+++ b/meta/recipes-devtools/tcltk/tcl/0001-Fix-abd4abedd2-Failed-to-build-tk-8.6.10-with-cross-.patch
@@ -0,0 +1,44 @@
+From f7fa48c4c75a1e748dc5071e709c0b62ff739eaa Mon Sep 17 00:00:00 2001
+From: "jan.nijtmans" <nijtmans@users.sourceforge.net>
+Date: Mon, 9 Dec 2019 10:02:20 +0000
+Subject: [PATCH] Fix [abd4abedd2]: Failed to build tk 8.6.10 with cross
+ compile
+
+Upstream-Status: Backport
+[https://github.com/tcltk/tcl/commit/f7fa48c4c75a1e748dc5071e709c0b62ff739eaa]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ compat/strtol.c | 2 +-
+ compat/strtoul.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/compat/strtol.c b/compat/strtol.c
+index b7f69196c..811006a64 100644
+--- a/compat/strtol.c
++++ b/compat/strtol.c
+@@ -53,7 +53,7 @@ strtol(
+ */
+
+ p = string;
+- while (TclIsSpaceProc(*p)) {
++ while (isspace(UCHAR(*p))) {
+ p += 1;
+ }
+
+diff --git a/compat/strtoul.c b/compat/strtoul.c
+index e37eb05f8..15587f1da 100644
+--- a/compat/strtoul.c
++++ b/compat/strtoul.c
+@@ -74,7 +74,7 @@ strtoul(
+ */
+
+ p = string;
+- while (TclIsSpaceProc(*p)) {
++ while (isspace(UCHAR(*p))) {
+ p += 1;
+ }
+ if (*p == '-') {
+--
+2.17.1
+
diff --git a/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch b/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch
index c8530e1f58..86632d9144 100644
--- a/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch
+++ b/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch
@@ -8,6 +8,7 @@ Signed-off-by: Khem Raj <raj.khem@gmai.com>
Fixed the TCL_INCLUDE_SPEC
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
Makefile.in | 2 +-
configure | 4 ++--
@@ -34,7 +35,7 @@ index 3e78b49..24b3f92 100755
@@ -19134,7 +19134,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}"
eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
- TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+ test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
-PRIVATE_INCLUDE_DIR='$(includedir)'
+PRIVATE_INCLUDE_DIR='$(includedir)/tcl$(VERSION)'
HTML_DIR='$(DISTDIR)/html'
@@ -56,7 +57,7 @@ index 0e28b14..62d9b41 100755
@@ -791,7 +791,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}"
eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
- TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+ test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
-PRIVATE_INCLUDE_DIR='$(includedir)'
+PRIVATE_INCLUDE_DIR='$(includedir)/tcl$(VERSION)'
HTML_DIR='$(DISTDIR)/html'
diff --git a/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch b/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch
index 16f7c80516..17d251d554 100644
--- a/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch
+++ b/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch
@@ -14,10 +14,11 @@ Upstream-Status: Inappropriate [configuration]
Signed-off-by: Song.Li <Song.Li@windriver.com>
Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ configure | 2 +-
+ configure.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
Index: unix/configure
===================================================================
@@ -27,8 +28,8 @@ Index: unix/configure
eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
--TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
-+TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+-test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
++test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
PRIVATE_INCLUDE_DIR='$(includedir)'
HTML_DIR='$(DISTDIR)/html'
@@ -40,8 +41,8 @@ Index: unix/configure.in
eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
--TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
-+TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+-test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
++test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
PRIVATE_INCLUDE_DIR='$(includedir)'
HTML_DIR='$(DISTDIR)/html'
diff --git a/meta/recipes-devtools/tcltk/tcl_8.6.9.bb b/meta/recipes-devtools/tcltk/tcl_8.6.10.bb
index 7f3778153a..aedd96b021 100644
--- a/meta/recipes-devtools/tcltk/tcl_8.6.9.bb
+++ b/meta/recipes-devtools/tcltk/tcl_8.6.10.bb
@@ -22,10 +22,11 @@ SRC_URI = "${BASE_SRC_URI} \
file://no_packages.patch \
file://tcl-remove-hardcoded-install-path.patch \
file://alter-includedir.patch \
+ file://0001-Fix-abd4abedd2-Failed-to-build-tk-8.6.10-with-cross-.patch;patchdir=.. \
file://run-ptest \
"
-SRC_URI[md5sum] = "aa0a121d95a0e7b73a036f26028538d4"
-SRC_URI[sha256sum] = "ad0cd2de2c87b9ba8086b43957a0de3eb2eb565c7159d5f53ccbba3feb915f4e"
+SRC_URI[md5sum] = "97c55573f8520bcab74e21bfd8d0aadc"
+SRC_URI[sha256sum] = "5196dbf6638e3df8d5c87b5815c8c2b758496eb6f0e41446596c9a4e638d87ed"
SRC_URI_class-native = "${BASE_SRC_URI}"
@@ -33,7 +34,7 @@ S = "${WORKDIR}/${BPN}${PV}/unix"
VER = "${PV}"
-inherit autotools ptest binconfig
+inherit autotools ptest binconfig update-alternatives
EXTRA_OECONF = "--enable-threads --disable-rpath --libdir=${libdir}"
@@ -64,6 +65,9 @@ FILES_tcl-lib = "${libdir}/libtcl8.6.so.*"
FILES_${PN} += "${libdir}/tcl${VER} ${libdir}/tcl8.6 ${libdir}/tcl8"
FILES_${PN}-dev += "${libdir}/tclConfig.sh ${libdir}/tclooConfig.sh"
+ALTERNATIVE_${PN}-doc = "Thread.3"
+ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3"
+
# isn't getting picked up by shlibs code
RDEPENDS_${PN} += "tcl-lib"
RDEPENDS_${PN}_class-native = ""
diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch b/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
new file mode 100644
index 0000000000..e9b9d3df46
--- /dev/null
+++ b/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
@@ -0,0 +1,54 @@
+From b42ab8e1aca951dd06c113159491b3fd5cf06f2e Mon Sep 17 00:00:00 2001
+From: Haiqing Bai <Haiqing.Bai@windriver.com>
+Date: Thu, 24 Oct 2019 09:39:04 +0800
+Subject: [PATCH] Add "listen" action for a tcp socket which does not call
+ 'listen' after 'bind'
+
+It is found that /usr/bin/unfsd customus 100% cpu after starting qemu with 'nfs'
+option, and below lots of error messages shows when strace the process:
+
+poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},
+{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=6, events =POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}],
+4, 2000) = 2 ([{fd=4, revents=POLLHUP},{fd=6, revents=POLLHUP}])
+accept(4, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
+accept(6, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
+
+% time seconds usecs/call calls errors syscall
+------ ----------- ----------- --------- --------- ----------------
+ 70.87 0.005392 0 513886 513886 accept
+ 29.13 0.002216 0 256943 poll
+ 0.00 0.000000 0 4 read
+
+The root cause is that 'listen' is not called for the binded
+socket. The depended libtipc does not call 'listen' if found
+the incomming socket is binded, so 'accept' reports the error
+in the 'for' loop and cpu consumed.
+
+Upstream-Status: Pending
+
+Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
+---
+ daemon.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/daemon.c b/daemon.c
+index 028a181..4c85903 100644
+--- a/daemon.c
++++ b/daemon.c
+@@ -814,6 +814,13 @@ static SVCXPRT *create_tcp_transport(unsigned int port)
+ fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
+ exit(1);
+ }
++
++ if (listen(sock, SOMAXCONN) < 0) {
++ perror("listen");
++ fprintf(stderr, "Couldn't listen on the address \n");
++ close(sock);
++ exit(1);
++ }
+ }
+
+ transp = svctcp_create(sock, 0, 0);
+--
+1.9.1
+
diff --git a/meta/recipes-devtools/unfs3/unfs3_git.bb b/meta/recipes-devtools/unfs3/unfs3_git.bb
index 79d09788d3..d60cee87c9 100644
--- a/meta/recipes-devtools/unfs3/unfs3_git.bb
+++ b/meta/recipes-devtools/unfs3/unfs3_git.bb
@@ -23,6 +23,7 @@ SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https \
file://tcp_no_delay.patch \
file://0001-daemon.c-Libtirpc-porting-fixes.patch \
file://0001-attr-fix-utime-for-symlink.patch \
+ file://0001-Add-listen-action-for-a-tcp-socket.patch \
"
SRCREV = "c12a5c69a8d59be6916cbd0e0f41c159f1962425"
UPSTREAM_CHECK_GITTAGREGEX = "unfs3\-(?P<pver>.+)"
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.44.7.bb b/meta/recipes-devtools/vala/vala_0.44.7.bb
deleted file mode 100644
index 807ca7a213..0000000000
--- a/meta/recipes-devtools/vala/vala_0.44.7.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] = "27fd30535c51af5b87b0e7ffdbd906ef"
-SRC_URI[sha256sum] = "bf1ff4f59d5de2d626e98e98ef81cb75dc1e6a27610a7de4133597c430f1bd7c"
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-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch b/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch
new file mode 100644
index 0000000000..d641998d72
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch
@@ -0,0 +1,34 @@
+From f405297d3382cd98391d02f397e2387da1f42879 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 24 Jan 2020 17:55:39 +0100
+Subject: [PATCH] none/tests/fdleak_cmsg.stderr.exp: adjust /tmp paths
+
+In oe-core, /tmp is linked to /var/volatile/tmp and
+valgrind output changes accordingly
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ none/tests/fdleak_cmsg.stderr.exp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/none/tests/fdleak_cmsg.stderr.exp b/none/tests/fdleak_cmsg.stderr.exp
+index 6e5a797b9..0ede1ab18 100644
+--- a/none/tests/fdleak_cmsg.stderr.exp
++++ b/none/tests/fdleak_cmsg.stderr.exp
+@@ -25,10 +25,10 @@ Open file descriptor ...: /dev/null
+
+
+ FILE DESCRIPTORS: 6 open at exit.
+-Open file descriptor ...: /tmp/data2
++Open file descriptor ...: ...
+ ...
+
+-Open file descriptor ...: /tmp/data1
++Open file descriptor ...: ...
+ ...
+
+ Open AF_UNIX socket ...: <unknown>
+--
+2.17.1
+
diff --git a/meta/recipes-devtools/valgrind/valgrind/0002-valgrind-adjust-std_list-expected-output.patch b/meta/recipes-devtools/valgrind/valgrind/0002-valgrind-adjust-std_list-expected-output.patch
deleted file mode 100644
index a82972ec1b..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/0002-valgrind-adjust-std_list-expected-output.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6e1e9265b03cf51d09c028d657fe826d7156a783 Mon Sep 17 00:00:00 2001
-From: Randy MacLeod <Randy.MacLeod@windriver.com>
-Date: Mon, 13 May 2019 17:26:26 -0400
-Subject: [PATCH 2/2] valgrind: adjust std_list expected output
-
-The run-ptest script uses a custom --yocto-ptest option
-to change the summary statistics that valgrind issues
-to a format that matches what ptest-runner expects.
-
-Only this std_list test which checks that strcpy() works
-properly on Ubuntu-12.04 and later is affected by this change.
-It's normal output when called with --yocto-ptest is a blank
-line so adjust the expected output.
-
-Upstream-Status: Inappropriate [Yocto specific]
-
-Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
----
- drd/tests/std_list.stderr.exp | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/drd/tests/std_list.stderr.exp b/drd/tests/std_list.stderr.exp
-index d18786f80..8b1378917 100644
---- a/drd/tests/std_list.stderr.exp
-+++ b/drd/tests/std_list.stderr.exp
-@@ -1,3 +1 @@
-
--
--ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
---
-2.17.0
-
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/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch b/meta/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch
deleted file mode 100644
index 05886c743d..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From a6547fc17c120dbd95b852f50b0c4bdee4fedb9a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 01:20:32 -0700
-Subject: [PATCH 6/6] pth_detached3.c: Dereference pthread_t before adding
- offset to it
-
-Fixes
-error: invalid use of undefined type 'struct __pthread'
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- drd/tests/pth_detached3.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drd/tests/pth_detached3.c b/drd/tests/pth_detached3.c
-index c02eef1..35d43a6 100644
---- a/drd/tests/pth_detached3.c
-+++ b/drd/tests/pth_detached3.c
-@@ -21,7 +21,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*)(&thread + 8));
-
- fprintf(stderr, "Finished.\n");
-
---
-2.13.1
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
index acf4fd1bc1..a3a0c6e50f 100644
--- a/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
+++ b/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -1,3 +1,4 @@
+gdbserver_tests/hgtls
cachegrind/tests/ann1
callgrind/tests/simwork1
callgrind/tests/simwork2
diff --git a/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch b/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch
new file mode 100644
index 0000000000..eea671da0a
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch
@@ -0,0 +1,19 @@
+s390x_vec_op_t is not needed anywhere, only elements of enum are accessed
+removing it ensures that valgrind can be built with -fno-common option
+
+Fixes
+ld: ../../VEX/libvex-amd64-linux.a(libvex_amd64_linux_a-guest_s390_helpers.o):/usr/src/debug/valgrind/3.15.0-r0/build/VEX/../../valgrind-3.15.0/VEX/priv/guest_s390_defs.h:289: multiple definition of `s390x_vec_op_t'; ../../VEX/libvexmultiarch-amd64-linux.a(libvexmultiarch_amd64_linux_a-multiarch_main_main.o):/usr/src/debug/valgrind/3.15.0-r0/build/VEX/../../valgrind-3.15.0/VEX/priv/guest_s390_defs.h:289: first defined here
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/VEX/priv/guest_s390_defs.h
++++ b/VEX/priv/guest_s390_defs.h
+@@ -286,7 +286,7 @@ enum {
+ S390_VEC_OP_VFCHE = 18,
+ S390_VEC_OP_VFTCI = 19,
+ S390_VEC_OP_LAST = 20 // supposed to be the last element in enum
+-} s390x_vec_op_t;
++};
+
+ /* Arguments of s390x_dirtyhelper_vec_op(...) which are packed into one
+ ULong variable.
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
index 63f972945d..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,9 +27,7 @@ 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://0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch \
file://0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch \
file://0002-memcheck-x86-Define-__THROW-if-not-defined.patch \
file://0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch \
@@ -38,20 +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://0002-valgrind-adjust-std_list-expected-output.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-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'
@@ -63,7 +77,8 @@ COMPATIBLE_HOST_linux-gnun32 = 'null'
# Disable for powerpc64 with musl
COMPATIBLE_HOST_libc-musl_powerpc64 = 'null'
-inherit autotools ptest multilib_header
+# brokenseip is unfortunately required by ptests to pass
+inherit autotools-brokensep ptest multilib_header
EXTRA_OECONF = "--enable-tls --without-mpicc"
EXTRA_OECONF += "${@['--enable-only32bit','--enable-only64bit'][d.getVar('SITEINFO_BITS') != '32']}"
@@ -114,8 +129,9 @@ 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 \
- procps sed ${PN}-dbg"
+ 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"
# One of the tests contains a bogus interpreter path on purpose.
@@ -203,4 +219,24 @@ do_install_ptest() {
# handle multilib
sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
sed -i s:@bindir@:${bindir}:g ${D}${PTEST_PATH}/run-ptest
+
+ # This test fails on the host as well, using both 3.15 and git master (as of Jan 24 2020)
+ # https://bugs.kde.org/show_bug.cgi?id=402833
+ rm ${D}${PTEST_PATH}/memcheck/tests/overlap.vgtest
+
+ # As the binary isn't stripped or debug-splitted, the source file isn't fetched
+ # via dwarfsrcfiles either, so it needs to be installed manually.
+ mkdir -p ${D}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/${BP}/none/tests/
+ install ${S}/none/tests/tls.c ${D}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/${BP}/none/tests/
}
+
+# avoid stripping some generated binaries otherwise some of the tests will fail
+# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail
+INHIBIT_PACKAGE_STRIP_FILES = "\
+ ${PKGD}${PTEST_PATH}/none/tests/tls \
+ ${PKGD}${PTEST_PATH}/none/tests/tls.so \
+ ${PKGD}${PTEST_PATH}/none/tests/tls2.so \
+ ${PKGD}${PTEST_PATH}/helgrind/tests/tc09_bad_unlock \
+ ${PKGD}${PTEST_PATH}/memcheck/tests/manuel1 \
+ ${PKGD}${PTEST_PATH}/drd/tests/pth_detached3 \
+"
diff --git a/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb b/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb
index df798dfcdd..7d27c43c83 100644
--- a/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb
+++ b/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb
@@ -13,6 +13,8 @@ SRC_URI[sha256sum] = "2f986b7c9a0e9ac6728147668e776d405465284e13c74d4146c9cbc51f
inherit autotools
+CLEANBROKEN = "1"
+
DEPENDS = "libxml2-native"
RDEPENDS_${PN} = "docbook-xml-dtd4 \
diff --git a/meta/recipes-extended/acpica/acpica_20190816.bb b/meta/recipes-extended/acpica/acpica_20200717.bb
index 8f79974775..d1d06c0c24 100644
--- a/meta/recipes-extended/acpica/acpica_20190816.bb
+++ b/meta/recipes-extended/acpica/acpica_20200717.bb
@@ -9,19 +9,19 @@ ACPI tables."
HOMEPAGE = "http://www.acpica.org/"
SECTION = "console/tools"
-LICENSE = "BSD | GPLv2"
-LIC_FILES_CHKSUM = "file://generate/unix/readme.txt;md5=204407e197c1a01154a48f6c6280c3aa"
+LICENSE = "Intel | BSD | GPLv2"
+LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=6adbcb81e9ee6ae50c569b94fe12f7c5"
COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
-DEPENDS = "bison flex bison-native"
+DEPENDS = "m4-native flex-native bison-native"
+
+SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
+SRC_URI[sha256sum] = "cb99903ef240732f395af40c23b9b19c7899033f48840743544eebb6da72a828"
-SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix2-${PV}.tar.gz"
-SRC_URI[md5sum] = "6a73b1e34715916fa31132dbe11008b0"
-SRC_URI[sha256sum] = "888e80f3bb77381620a5ead208e1a1be06f3ea66ddc8cfdfa62811cae5f03752"
UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
-S = "${WORKDIR}/acpica-unix2-${PV}"
+S = "${WORKDIR}/acpica-unix-${PV}"
inherit update-alternatives
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.inc b/meta/recipes-extended/bash/bash.inc
index 039b8687a2..1ebb33bdcd 100644
--- a/meta/recipes-extended/bash/bash.inc
+++ b/meta/recipes-extended/bash/bash.inc
@@ -25,7 +25,6 @@ RDEPENDS_${PN} += "base-files"
RDEPENDS_${PN}_class-nativesdk = ""
RDEPENDS_${PN}-ptest += "make coreutils perl sed shadow util-linux-setpriv"
-DEPENDS_append_libc-glibc = " virtual/libc-locale"
RDEPENDS_${PN}-ptest_append_libc-glibc = " \
glibc-gconv-big5hkscs \
glibc-gconv-iso8859-1 \
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 eadc82279d..257a03bd8b 100644
--- a/meta/recipes-extended/bash/bash_5.0.bb
+++ b/meta/recipes-extended/bash/bash_5.0.bb
@@ -12,6 +12,17 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-005;apply=yes;striplevel=0;name=patch005 \
${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-006;apply=yes;striplevel=0;name=patch006 \
${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-007;apply=yes;striplevel=0;name=patch007 \
+ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-008;apply=yes;striplevel=0;name=patch008 \
+ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-009;apply=yes;striplevel=0;name=patch009 \
+ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-010;apply=yes;striplevel=0;name=patch010 \
+ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-011;apply=yes;striplevel=0;name=patch011 \
+ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-012;apply=yes;striplevel=0;name=patch012 \
+ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-013;apply=yes;striplevel=0;name=patch013 \
+ ${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 \
@@ -19,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"
@@ -38,6 +50,29 @@ SRC_URI[patch006.md5sum] = "4a8ee95adb72c3aba03d9e8c9f96ece6"
SRC_URI[patch006.sha256sum] = "d68529a6ff201b6ff5915318ab12fc16b8a0ebb77fda3308303fcc1e13398420"
SRC_URI[patch007.md5sum] = "411560d81fde2dc5b17b83c3f3b58c6f"
SRC_URI[patch007.sha256sum] = "17b41e7ee3673d8887dd25992417a398677533ab8827938aa41fad70df19af9b"
+SRC_URI[patch008.md5sum] = "dd7cf7a784d1838822cad8d419315991"
+SRC_URI[patch008.sha256sum] = "eec64588622a82a5029b2776e218a75a3640bef4953f09d6ee1f4199670ad7e3"
+SRC_URI[patch009.md5sum] = "c1b3e937cd6dccbb7fd772f32812a0da"
+SRC_URI[patch009.sha256sum] = "ed3ca21767303fc3de93934aa524c2e920787c506b601cc40a4897d4b094d903"
+SRC_URI[patch010.md5sum] = "19b41e73b03602d0e261c471b53e670c"
+SRC_URI[patch010.sha256sum] = "d6fbc325f0b5dc54ddbe8ee43020bced8bd589ddffea59d128db14b2e52a8a11"
+SRC_URI[patch011.md5sum] = "414339330a3634137081a97f2c8615a8"
+SRC_URI[patch011.sha256sum] = "2c4de332b91eaf797abbbd6c79709690b5cbd48b12e8dfe748096dbd7bf474ea"
+SRC_URI[patch012.md5sum] = "1870268f62b907221b078ad109e1fa94"
+SRC_URI[patch012.sha256sum] = "2943ee19688018296f2a04dbfe30b7138b889700efa8ff1c0524af271e0ee233"
+SRC_URI[patch013.md5sum] = "40d923af4b952b01983ed4c889ae2653"
+SRC_URI[patch013.sha256sum] = "f5d7178d8da30799e01b83a0802018d913d6aa972dd2ddad3b927f3f3eb7099a"
+SRC_URI[patch014.md5sum] = "57857b22053c8167677e5e5ac5c6669b"
+SRC_URI[patch014.sha256sum] = "5d6eee6514ee6e22a87bba8d22be0a8621a0ae119246f1c5a9a35db1f72af589"
+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/chkconfig/chkconfig-alternatives-native_1.3.59.bb b/meta/recipes-extended/chkconfig/chkconfig-alternatives-native_1.3.59.bb
deleted file mode 100644
index 87fa8eb605..0000000000
--- a/meta/recipes-extended/chkconfig/chkconfig-alternatives-native_1.3.59.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-require recipes-extended/chkconfig/chkconfig_1.3.58.bb
-
-SUMMARY = "${SUMMARY_chkconfig-alternatives}"
-DESCRIPTION = "${DESCRIPTION_chkconfig-alternatives}"
-DEPENDS = ""
-PROVIDES += "virtual/update-alternatives-native"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-# The sysroot branch is 1.3.59 + some git commits from master + --sysroot
-# support for alternatives.
-SRC_URI = "git://github.com/kergoth/chkconfig;branch=sysroot"
-S = "${WORKDIR}/git"
-UPSTREAM_CHECK_GITTAGREGEX = "chkconfig-(?P<pver>(\d+(\.\d+)+))"
-
-SRCREV = "cd437ecbd8986c894442f8fce1e0061e20f04dee"
-PV = "1.3.59+${SRCPV}"
-
-inherit native
-
-# We want our native recipes to build using the target paths rather than paths
-# into the sysroot, as we may use them to construct the rootfs. As such, we
-# only adjust the paths to match the metadata for the target, not native.
-obey_variables () {
- sed -i 's,ALTERNATIVES_ROOT,OPKG_OFFLINE_ROOT,' ${S}/alternatives.c
-}
-
-do_compile () {
- oe_runmake alternatives
-}
-
-do_install () {
- install -d ${D}${sysconfdir}/alternatives \
- ${D}${localstatedir}/lib/alternatives
-
- install -D -m 0755 alternatives ${D}${bindir}/alternatives
- install -D -m 0644 alternatives.8 ${D}${mandir}/man8/alternatives.8
-
- ln -s alternatives ${D}${bindir}/update-alternatives
- ln -s alternatives.8 ${D}${mandir}/man8/update-alternatives.8
-}
-
-do_install_append_linuxstdbase() {
- rm -rf ${D}${libdir}/lsb
-}
diff --git a/meta/recipes-extended/chkconfig/chkconfig/replace_caddr_t.patch b/meta/recipes-extended/chkconfig/chkconfig/replace_caddr_t.patch
deleted file mode 100644
index 96d1938791..0000000000
--- a/meta/recipes-extended/chkconfig/chkconfig/replace_caddr_t.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-caddr_t is a legacy BSD type which was rejected by the POSIX standard.
-Use void * instead.
-
-sys/unitstd.h is not needed and moreover its not available on all C library
-implementations e.g. musl
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: chkconfig-1.3.58/alternatives.c
-===================================================================
---- chkconfig-1.3.58.orig/alternatives.c
-+++ chkconfig-1.3.58/alternatives.c
-@@ -22,7 +22,6 @@
- #include <stdio.h>
- #include <string.h>
- #include <sys/stat.h>
--#include <sys/unistd.h>
- #include <unistd.h>
-
- #define FLAGS_TEST (1 << 0)
-Index: chkconfig-1.3.58/leveldb.c
-===================================================================
---- chkconfig-1.3.58.orig/leveldb.c
-+++ chkconfig-1.3.58/leveldb.c
-@@ -442,7 +442,7 @@ int parseServiceInfo(int fd, char * name
- fstat(fd, &sb);
-
- bufstart = mmap(NULL, sb.st_size, PROT_READ, MAP_SHARED, fd, 0);
-- if (bufstart == ((caddr_t) -1)) {
-+ if (bufstart == ((void*) -1)) {
- close(fd);
- return -1;
- }
diff --git a/meta/recipes-extended/chkconfig/chkconfig_1.3.58.bb b/meta/recipes-extended/chkconfig/chkconfig_1.3.58.bb
deleted file mode 100644
index d21dd69704..0000000000
--- a/meta/recipes-extended/chkconfig/chkconfig_1.3.58.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "A system tool for maintaining the /etc/rc*.d hierarchy"
-DESCRIPTION = "Chkconfig is a basic system utility. It updates and queries runlevel \
-information for system services. Chkconfig manipulates the numerous \
-symbolic links in /etc/rc.d, to relieve system administrators of some \
-of the drudgery of manually editing the symbolic links."
-
-RECIPE_NO_UPDATE_REASON = "Version 1.5 requires selinux"
-
-HOMEPAGE = "https://github.com/fedora-sysv"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
-
-DEPENDS = "libnewt popt"
-PROVIDES += "virtual/update-alternatives"
-
-PR = "r7"
-
-S = "${WORKDIR}/${BPN}-${BPN}-${PV}"
-
-SRC_URI = "git://github.com/fedora-sysv/chkconfig.git \
- file://replace_caddr_t.patch \
- "
-
-SRCREV = "3e0b3909ff6328d232b27b9c32f1a9309c6cd0a4"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit gettext
-
-# Makefile uses RPM_OPT_FLAGS to construct CFLAGS
-#
-EXTRA_OEMAKE = "\
- 'RPM_OPT_FLAGS=${CFLAGS}' \
- 'LDFLAGS=${LDFLAGS}' \
- 'BINDIR=${base_sbindir}' \
- 'SBINDIR=${sbindir}' \
- 'MANDIR=${mandir}' \
- 'ALTDIR=${localstatedir}/lib/alternatives' \
- 'ALTDATADIR=${sysconfdir}/alternatives' \
-"
-
-do_unpack[postfuncs] += "obey_variables"
-do_unpack[vardeps] += "obey_variables"
-obey_variables () {
- sed -i -e 's,/etc,${sysconfdir},; s,/lib/systemd,${base_libdir}/systemd,' ${S}/leveldb.h
- sed -i -e 's,/etc/alternatives,${sysconfdir}/alternatives,' \
- -e 's,/var/lib/alternatives,${localstatedir}/lib/alternatives,' \
- -e 's,/usr/share/locale,${datadir}/locale,' ${S}/alternatives.c
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' 'INSTALLNLSDIR=${D}${datadir}/locale' \
- 'BINDIR=${sbindir}' install
- install -d ${D}${sysconfdir}/chkconfig.d
-}
-
-PACKAGES =+ "${PN}-alternatives ${PN}-alternatives-doc"
-SUMMARY_${PN}-alternatives = "Maintain symbolic links determining default commands"
-DESCRIPTION_${PN}-alternatives = "alternatives creates, removes, maintains and displays \
-information about the symbolic links comprising the alternatives system."
-SUMMARY_${PN}-alternatives-doc = "${SUMMARY_${PN}-alternatives} - Documentation files"
-DESCRIPTION_${PN}-alternatives-doc = "${DESCRIPTION_${PN}-alternatives} \
-This package contains documentation."
-RPROVIDES_${PN}-alternatives += "update-alternatives"
-RCONFLICTS_${PN}-alternatives = "update-alternatives-opkg update-alternatives-dpkg"
-FILES_${PN}-alternatives = "${sbindir}/alternatives ${sbindir}/update-alternatives \
- ${sysconfdir}/alternatives ${localstatedir}/lib/alternatives"
-FILES_${PN}-alternatives-doc = "${mandir}/man8/alternatives.8 \
- ${mandir}/man8/update-alternatives.8"
diff --git a/meta/recipes-extended/cpio/cpio-2.12/0001-CVE-2016-2037-1-byte-out-of-bounds-write.patch b/meta/recipes-extended/cpio/cpio-2.12/0001-CVE-2016-2037-1-byte-out-of-bounds-write.patch
deleted file mode 100644
index 0a3054483c..0000000000
--- a/meta/recipes-extended/cpio/cpio-2.12/0001-CVE-2016-2037-1-byte-out-of-bounds-write.patch
+++ /dev/null
@@ -1,346 +0,0 @@
-From ebf9a2d776474181936a720ce811d72bbd1da3b6 Mon Sep 17 00:00:00 2001
-From: Pavel Raiskup <praiskup@redhat.com>
-Date: Tue, 26 Jan 2016 23:17:54 +0100
-Subject: [PATCH] CVE-2016-2037 - 1 byte out-of-bounds write
-
-Ensure that cpio_safer_name_suffix always works with dynamically
-allocated buffer, and that it has size of at least 32 bytes.
-Then, any call to cpio_safer_name_suffix is safe (it requires at
-least 2 bytes in the buffer).
-
-Also ensure that c_namesize is always correctly initialized (by
-cpio_set_c_name) to avoid undefined behavior when reading
-file_hdr.c_namesize (previously happened for tar archives).
-
-References:
-http://www.mail-archive.com/bug-cpio@gnu.org/msg00545.html
-
-* src/copyin.c (query_rename): Drop the hack, as we now work with
-dynamically allocated buffer. Use cpio_set_c_name.
-(create_defered_links_to_skipped): Use cpio_set_c_name rather than
-manual assignment.
-(read_name_from_file): New function to avoid C&P.
-(read_in_old_ascii, read_in_new_ascii, read_in_binary): Use
-read_name_from_file.
-(process_copy_in): Initialize file_hdr.c_namesize.
-* src/copyout.c (process_copy_out): Use cpio_set_c_name.
-* src/cpiohdr.h (cpio_set_c_name): New prototype.
-* src/tar.c (read_in_tar_header): Use cpio_set_c_name.
-* src/util.c (cpio_set_c_name): New function to set
-file_hdr->c_name and c_namesize from arbitrary string.
-(cpio_safer_name_suffix): Some docs fixes.
-* tests/inout.at: Also test copy-in, and try various formats.
-
-CVE: CVE-2016-2037
-
-Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/cpio.git/commit/?id=d36ec5f4e93130efb24fb9678aafd88e8070095b]
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- src/copyin.c | 68 +++++++++++++++++++---------------------------------------
- src/copyout.c | 13 +++++------
- src/cpiohdr.h | 1 +
- src/tar.c | 10 +++++----
- src/util.c | 32 ++++++++++++++++++++++++++-
- tests/inout.at | 19 ++++++++++++++--
- 6 files changed, 82 insertions(+), 61 deletions(-)
-
-diff --git a/src/copyin.c b/src/copyin.c
-index cde911e..972f8a6 100644
---- a/src/copyin.c
-+++ b/src/copyin.c
-@@ -76,28 +76,7 @@ query_rename(struct cpio_file_stat* file_hdr, FILE *tty_in, FILE *tty_out,
- return -1;
- }
- else
-- /* Debian hack: file_hrd.c_name is sometimes set to
-- point to static memory by code in tar.c. This
-- causes a segfault. This has been fixed and an
-- additional check to ensure that the file name
-- is not too long has been added. (Reported by
-- Horst Knobloch.) This bug has been reported to
-- "bug-gnu-utils@prep.ai.mit.edu". (99/1/6) -BEM */
-- {
-- if (archive_format != arf_tar && archive_format != arf_ustar)
-- {
-- free (file_hdr->c_name);
-- file_hdr->c_name = xstrdup (new_name.ds_string);
-- }
-- else
-- {
-- if (is_tar_filename_too_long (new_name.ds_string))
-- error (0, 0, _("%s: file name too long"),
-- new_name.ds_string);
-- else
-- strcpy (file_hdr->c_name, new_name.ds_string);
-- }
-- }
-+ cpio_set_c_name (file_hdr, new_name.ds_string);
- return 0;
- }
-
-@@ -344,8 +323,7 @@ create_defered_links_to_skipped (struct cpio_file_stat *file_hdr,
- d_prev->next = d->next;
- else
- deferments = d->next;
-- free (file_hdr->c_name);
-- file_hdr->c_name = xstrdup(d->header.c_name);
-+ cpio_set_c_name (file_hdr, d->header.c_name);
- free_deferment (d);
- copyin_regular_file(file_hdr, in_file_des);
- return 0;
-@@ -1064,6 +1042,22 @@ read_in_header (struct cpio_file_stat *file_hdr, int in_des)
- }
- }
-
-+static void
-+read_name_from_file (struct cpio_file_stat *file_hdr, int fd, uintmax_t len)
-+{
-+ static char *tmp_filename;
-+ static size_t buflen;
-+
-+ if (buflen < len)
-+ {
-+ buflen = len;
-+ tmp_filename = xrealloc (tmp_filename, buflen);
-+ }
-+
-+ tape_buffered_read (tmp_filename, fd, len);
-+ cpio_set_c_name (file_hdr, tmp_filename);
-+}
-+
- /* Fill in FILE_HDR by reading an old-format ASCII format cpio header from
- file descriptor IN_DES, except for the magic number, which is
- already filled in. */
-@@ -1090,14 +1084,8 @@ read_in_old_ascii (struct cpio_file_stat *file_hdr, int in_des)
- file_hdr->c_rdev_min = minor (dev);
-
- file_hdr->c_mtime = FROM_OCTAL (ascii_header.c_mtime);
-- file_hdr->c_namesize = FROM_OCTAL (ascii_header.c_namesize);
- file_hdr->c_filesize = FROM_OCTAL (ascii_header.c_filesize);
--
-- /* Read file name from input. */
-- if (file_hdr->c_name != NULL)
-- free (file_hdr->c_name);
-- file_hdr->c_name = (char *) xmalloc (file_hdr->c_namesize + 1);
-- tape_buffered_read (file_hdr->c_name, in_des, (long) file_hdr->c_namesize);
-+ read_name_from_file (file_hdr, in_des, FROM_OCTAL (ascii_header.c_namesize));
-
- /* HP/UX cpio creates archives that look just like ordinary archives,
- but for devices it sets major = 0, minor = 1, and puts the
-@@ -1152,14 +1140,8 @@ read_in_new_ascii (struct cpio_file_stat *file_hdr, int in_des)
- file_hdr->c_dev_min = FROM_HEX (ascii_header.c_dev_min);
- file_hdr->c_rdev_maj = FROM_HEX (ascii_header.c_rdev_maj);
- file_hdr->c_rdev_min = FROM_HEX (ascii_header.c_rdev_min);
-- file_hdr->c_namesize = FROM_HEX (ascii_header.c_namesize);
- file_hdr->c_chksum = FROM_HEX (ascii_header.c_chksum);
--
-- /* Read file name from input. */
-- if (file_hdr->c_name != NULL)
-- free (file_hdr->c_name);
-- file_hdr->c_name = (char *) xmalloc (file_hdr->c_namesize);
-- tape_buffered_read (file_hdr->c_name, in_des, (long) file_hdr->c_namesize);
-+ read_name_from_file (file_hdr, in_des, FROM_HEX (ascii_header.c_namesize));
-
- /* In SVR4 ASCII format, the amount of space allocated for the header
- is rounded up to the next long-word, so we might need to drop
-@@ -1207,16 +1189,9 @@ read_in_binary (struct cpio_file_stat *file_hdr,
- file_hdr->c_rdev_min = minor (short_hdr->c_rdev);
- file_hdr->c_mtime = (unsigned long) short_hdr->c_mtimes[0] << 16
- | short_hdr->c_mtimes[1];
--
-- file_hdr->c_namesize = short_hdr->c_namesize;
- file_hdr->c_filesize = (unsigned long) short_hdr->c_filesizes[0] << 16
- | short_hdr->c_filesizes[1];
--
-- /* Read file name from input. */
-- if (file_hdr->c_name != NULL)
-- free (file_hdr->c_name);
-- file_hdr->c_name = (char *) xmalloc (file_hdr->c_namesize);
-- tape_buffered_read (file_hdr->c_name, in_des, (long) file_hdr->c_namesize);
-+ read_name_from_file (file_hdr, in_des, short_hdr->c_namesize);
-
- /* In binary mode, the amount of space allocated in the header for
- the filename is `c_namesize' rounded up to the next short-word,
-@@ -1297,6 +1272,7 @@ process_copy_in ()
- read_pattern_file ();
- }
- file_hdr.c_name = NULL;
-+ file_hdr.c_namesize = 0;
-
- if (rename_batch_file)
- {
-diff --git a/src/copyout.c b/src/copyout.c
-index 1f0987a..bb39559 100644
---- a/src/copyout.c
-+++ b/src/copyout.c
-@@ -660,8 +660,7 @@ process_copy_out ()
- cpio_safer_name_suffix (input_name.ds_string, false,
- !no_abs_paths_flag, true);
- #ifndef HPUX_CDF
-- file_hdr.c_name = input_name.ds_string;
-- file_hdr.c_namesize = strlen (input_name.ds_string) + 1;
-+ cpio_set_c_name (&file_hdr, input_name.ds_string);
- #else
- if ( (archive_format != arf_tar) && (archive_format != arf_ustar) )
- {
-@@ -670,16 +669,15 @@ process_copy_out ()
- properly recreate the directory as hidden (in case the
- files of a directory go into the archive before the
- directory itself (e.g from "find ... -depth ... | cpio")). */
-- file_hdr.c_name = add_cdf_double_slashes (input_name.ds_string);
-- file_hdr.c_namesize = strlen (file_hdr.c_name) + 1;
-+ cpio_set_c_name (&file_hdr,
-+ add_cdf_double_slashes (input_name.ds_string));
- }
- else
- {
- /* We don't mark CDF's in tar files. We assume the "hidden"
- directory will always go into the archive before any of
- its files. */
-- file_hdr.c_name = input_name.ds_string;
-- file_hdr.c_namesize = strlen (input_name.ds_string) + 1;
-+ cpio_set_c_name (&file_hdr, input_name.ds_string);
- }
- #endif
-
-@@ -866,8 +864,7 @@ process_copy_out ()
- file_hdr.c_chksum = 0;
-
- file_hdr.c_filesize = 0;
-- file_hdr.c_namesize = 11;
-- file_hdr.c_name = CPIO_TRAILER_NAME;
-+ cpio_set_c_name (&file_hdr, CPIO_TRAILER_NAME);
- if (archive_format != arf_tar && archive_format != arf_ustar)
- write_out_header (&file_hdr, out_file_des);
- else
-diff --git a/src/cpiohdr.h b/src/cpiohdr.h
-index b29e6fb..f4c63be 100644
---- a/src/cpiohdr.h
-+++ b/src/cpiohdr.h
-@@ -129,5 +129,6 @@ struct cpio_file_stat /* Internal representation of a CPIO header */
- char *c_tar_linkname;
- };
-
-+void cpio_set_c_name(struct cpio_file_stat *file_hdr, char *name);
-
- #endif /* cpiohdr.h */
-diff --git a/src/tar.c b/src/tar.c
-index a2ce171..e41f89d 100644
---- a/src/tar.c
-+++ b/src/tar.c
-@@ -282,7 +282,7 @@ read_in_tar_header (struct cpio_file_stat *file_hdr, int in_des)
- if (null_block ((long *) &tar_rec, TARRECORDSIZE))
- #endif
- {
-- file_hdr->c_name = CPIO_TRAILER_NAME;
-+ cpio_set_c_name (file_hdr, CPIO_TRAILER_NAME);
- return;
- }
- #if 0
-@@ -316,9 +316,11 @@ read_in_tar_header (struct cpio_file_stat *file_hdr, int in_des)
- }
-
- if (archive_format != arf_ustar)
-- file_hdr->c_name = stash_tar_filename (NULL, tar_hdr->name);
-+ cpio_set_c_name (file_hdr, stash_tar_filename (NULL, tar_hdr->name));
- else
-- file_hdr->c_name = stash_tar_filename (tar_hdr->prefix, tar_hdr->name);
-+ cpio_set_c_name (file_hdr, stash_tar_filename (tar_hdr->prefix,
-+ tar_hdr->name));
-+
- file_hdr->c_nlink = 1;
- file_hdr->c_mode = FROM_OCTAL (tar_hdr->mode);
- file_hdr->c_mode = file_hdr->c_mode & 07777;
-@@ -398,7 +400,7 @@ read_in_tar_header (struct cpio_file_stat *file_hdr, int in_des)
- case AREGTYPE:
- /* Old tar format; if the last char in filename is '/' then it is
- a directory, otherwise it's a regular file. */
-- if (file_hdr->c_name[strlen (file_hdr->c_name) - 1] == '/')
-+ if (file_hdr->c_name[file_hdr->c_namesize - 1] == '/')
- file_hdr->c_mode |= CP_IFDIR;
- else
- file_hdr->c_mode |= CP_IFREG;
-diff --git a/src/util.c b/src/util.c
-index 6ff6032..4f3c073 100644
---- a/src/util.c
-+++ b/src/util.c
-@@ -1410,8 +1410,34 @@ set_file_times (int fd,
- utime_error (name);
- }
-
-+
-+void
-+cpio_set_c_name (struct cpio_file_stat *file_hdr, char *name)
-+{
-+ static size_t buflen = 0;
-+ size_t len = strlen (name) + 1;
-+
-+ if (buflen == 0)
-+ {
-+ buflen = len;
-+ if (buflen < 32)
-+ buflen = 32;
-+ file_hdr->c_name = xmalloc (buflen);
-+ }
-+ else if (buflen < len)
-+ {
-+ buflen = len;
-+ file_hdr->c_name = xrealloc (file_hdr->c_name, buflen);
-+ }
-+
-+ file_hdr->c_namesize = len;
-+ memmove (file_hdr->c_name, name, len);
-+}
-+
- /* Do we have to ignore absolute paths, and if so, does the filename
-- have an absolute path? */
-+ have an absolute path? Before calling this function make sure that the
-+ allocated NAME buffer has capacity at least 2 bytes. */
-+
- void
- cpio_safer_name_suffix (char *name, bool link_target, bool absolute_names,
- bool strip_leading_dots)
-@@ -1426,6 +1452,10 @@ cpio_safer_name_suffix (char *name, bool link_target, bool absolute_names,
- ++p;
- }
- if (p != name)
-+ /* The 'p' string is shortened version of 'name' with one exception; when
-+ the 'name' points to an empty string (buffer where name[0] == '\0') the
-+ 'p' then points to static string ".". So caller needs to ensure there
-+ are at least two bytes available in 'name' buffer so memmove succeeds. */
- memmove (name, p, (size_t)(strlen (p) + 1));
- }
-
-diff --git a/tests/inout.at b/tests/inout.at
-index 60c3716..730cbd2 100644
---- a/tests/inout.at
-+++ b/tests/inout.at
-@@ -35,7 +35,22 @@ while read NAME LENGTH
- do
- genfile --length $LENGTH > $NAME
- echo $NAME
--done < filelist |
-- cpio --quiet -o > archive])
-+done < filelist > filelist_raw
-+
-+for format in bin odc newc crc tar ustar hpbin hpodc
-+do
-+ cpio --format=$format --quiet -o < filelist_raw > archive.$format
-+ rm -rf output
-+ mkdir output && cd output
-+ cpio -i --quiet < ../archive.$format
-+
-+ while read file
-+ do
-+ test -f $file || echo "$file not found"
-+ done < ../filelist_raw
-+
-+ cd ..
-+done
-+])
-
- AT_CLEANUP
---
-1.9.1
-
diff --git a/meta/recipes-extended/cpio/cpio-2.12/0001-Fix-CVE-2015-1197.patch b/meta/recipes-extended/cpio/cpio-2.12/0001-Fix-CVE-2015-1197.patch
deleted file mode 100644
index 5c999197ff..0000000000
--- a/meta/recipes-extended/cpio/cpio-2.12/0001-Fix-CVE-2015-1197.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From dcee489f821c1260a0136fcdfdb6ff4dd11086ac Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 9 Dec 2015 17:58:03 +0200
-Subject: [PATCH] Fix CVE-2015-1197
-
-Apply patch by Vitezslav Cizek of SuSE to fix CVE-2015-1197.
-Upstream is dormant or no longer existing. To restore the old
-behaviour use --extract-over-symlinks (Closes: #774669)
-This issue has been discovered by Alexander Cherepanov.
-Author: Vitezslav Cizek <vcizek@suse.cz>
-Bug-Debian: https://bugs.debian.org/774669
-
-Upstream-Status: Pending
-CVE: CVE-2015-1197
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- doc/cpio.1 | 1 +
- src/copyin.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/extern.h | 1 +
- src/global.c | 3 +++
- src/main.c | 7 +++++++
- 5 files changed, 74 insertions(+)
-
-diff --git a/doc/cpio.1 b/doc/cpio.1
-index 2a68241..dc4676c 100644
---- a/doc/cpio.1
-+++ b/doc/cpio.1
-@@ -49,6 +49,7 @@ cpio \- copy files to and from archives
- [\fB\-\-no\-preserve\-owner\fR] [\fB\-\-message=\fIMESSAGE\fR]
- [\fB\-\-force\-local\fR] [\fB\-\-no\-absolute\-filenames\fR] [\fB\-\-sparse\fR]
- [\fB\-\-only\-verify\-crc\fR] [\fB\-\-to\-stdout\fR] [\fB\-\-quiet\fR]
-+[\fB\-\-extract\-over\-symlinks\fR]
- [\fB\-\-rsh\-command=\fICOMMAND\fR]
- [\fIpattern\fR...] [\fB<\fR \fIarchive\fR]
-
-diff --git a/src/copyin.c b/src/copyin.c
-index cde911e..053afe7 100644
---- a/src/copyin.c
-+++ b/src/copyin.c
-@@ -695,6 +695,51 @@ copyin_link (struct cpio_file_stat *file_hdr, int in_file_des)
- free (link_name);
- }
-
-+
-+static int
-+path_contains_symlink(char *path)
-+{
-+ struct stat st;
-+ char *slash;
-+ char *nextslash;
-+
-+ /* we got NULL pointer or empty string */
-+ if (!path || !*path) {
-+ return false;
-+ }
-+
-+ slash = path;
-+
-+ while ((nextslash = strchr(slash + 1, '/')) != NULL) {
-+ slash = nextslash;
-+ *slash = '\0';
-+
-+ if (lstat(path, &st) != 0) {
-+ if (errno == ELOOP) {
-+ /* ELOOP - too many symlinks */
-+ *slash = '/';
-+ return true;
-+ } else if (errno == ENOMEM) {
-+ /* No memory for lstat - terminate */
-+ xalloc_die();
-+ } else {
-+ /* cannot lstat path - give up */
-+ *slash = '/';
-+ return false;
-+ }
-+ }
-+
-+ if (S_ISLNK(st.st_mode)) {
-+ *slash = '/';
-+ return true;
-+ }
-+
-+ *slash = '/';
-+ }
-+
-+ return false;
-+}
-+
- static void
- copyin_file (struct cpio_file_stat *file_hdr, int in_file_des)
- {
-@@ -1468,6 +1513,23 @@ process_copy_in ()
- {
- /* Copy the input file into the directory structure. */
-
-+ /* Can we write files over symlinks? */
-+ if (!extract_over_symlinks)
-+ {
-+ if (path_contains_symlink(file_hdr.c_name))
-+ {
-+ /* skip the file */
-+ /*
-+ fprintf(stderr, "Can't write over symlinks. Skipping %s\n", file_hdr.c_name);
-+ tape_toss_input (in_file_des, file_hdr.c_filesize);
-+ tape_skip_padding (in_file_des, file_hdr.c_filesize);
-+ continue;
-+ */
-+ /* terminate */
-+ error (1, 0, _("Can't write over symlinks: %s\n"), file_hdr.c_name);
-+ }
-+ }
-+
- /* Do we need to rename the file? */
- if (rename_flag || rename_batch_file)
- {
-diff --git a/src/extern.h b/src/extern.h
-index e27d662..d864bde 100644
---- a/src/extern.h
-+++ b/src/extern.h
-@@ -96,6 +96,7 @@ extern char input_is_special;
- extern char output_is_special;
- extern char input_is_seekable;
- extern char output_is_seekable;
-+extern bool extract_over_symlinks;
- extern int (*xstat) ();
- extern void (*copy_function) ();
- extern char *change_directory_option;
-diff --git a/src/global.c b/src/global.c
-index 57e505a..336fce4 100644
---- a/src/global.c
-+++ b/src/global.c
-@@ -187,6 +187,9 @@ bool to_stdout_option = false;
- /* The name this program was run with. */
- char *program_name;
-
-+/* Extract files over symbolic links */
-+bool extract_over_symlinks;
-+
- /* A pointer to either lstat or stat, depending on whether
- dereferencing of symlinks is done for input files. */
- int (*xstat) ();
-diff --git a/src/main.c b/src/main.c
-index a13861f..87cb309 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -59,6 +59,7 @@ enum cpio_options {
- DEBUG_OPTION,
- BLOCK_SIZE_OPTION,
- TO_STDOUT_OPTION,
-+ EXTRACT_OVER_SYMLINKS,
- RENUMBER_INODES_OPTION,
- IGNORE_DEVNO_OPTION,
- DEVICE_INDEPENDENT_OPTION
-@@ -243,6 +244,8 @@ static struct argp_option options[] = {
- N_("Create leading directories where needed"), GRID+1 },
- {"no-preserve-owner", NO_PRESERVE_OWNER_OPTION, 0, 0,
- N_("Do not change the ownership of the files"), GRID+1 },
-+ {"extract-over-symlinks", EXTRACT_OVER_SYMLINKS, 0, 0,
-+ N_("Force writing over symbolic links"), GRID+1 },
- {"unconditional", 'u', NULL, 0,
- N_("Replace all files unconditionally"), GRID+1 },
- {"sparse", SPARSE_OPTION, NULL, 0,
-@@ -432,6 +435,10 @@ crc newc odc bin ustar tar (all-caps also recognized)"), arg));
- no_chown_flag = true;
- break;
-
-+ case EXTRACT_OVER_SYMLINKS: /* --extract-over-symlinks */
-+ extract_over_symlinks = true;
-+ break;
-+
- case 'o': /* Copy-out mode. */
- if (copy_function != 0)
- USAGE_ERROR ((0, 0, _("Mode already defined")));
---
-2.6.2
-
diff --git a/meta/recipes-extended/cpio/cpio-2.12/0001-Fix-segfault-with-append.patch b/meta/recipes-extended/cpio/cpio-2.12/0001-Fix-segfault-with-append.patch
deleted file mode 100644
index ec8b303c43..0000000000
--- a/meta/recipes-extended/cpio/cpio-2.12/0001-Fix-segfault-with-append.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 32d95fe0c90c59352a0ce3102fc9866cbfb0f629 Mon Sep 17 00:00:00 2001
-From: Sergey Poznyakoff <gray@gnu.org>
-Date: Sat, 1 Dec 2018 11:40:02 +0200
-Subject: [PATCH] Fix sigfault when appending to archive
-
-Bug reported by Ross Burton. See
-<http://lists.gnu.org/archive/html/bug-cpio/2018-11/msg00000.html>
-
-* src/util.c: Keep static copy of the buffer pointer; always
-assign it to file_hdr->c_name. Use x2realloc for memory management.
----
- src/util.c | 17 ++++-------------
- 1 file changed, 4 insertions(+), 13 deletions(-)
-
-diff --git a/src/util.c b/src/util.c
-index 10486dc..4e49124 100644
---- a/src/util.c
-+++ b/src/util.c
-@@ -1413,22 +1413,13 @@ set_file_times (int fd,
- void
- cpio_set_c_name (struct cpio_file_stat *file_hdr, char *name)
- {
-+ static char *buf = NULL;
- static size_t buflen = 0;
- size_t len = strlen (name) + 1;
-
-- if (buflen == 0)
-- {
-- buflen = len;
-- if (buflen < 32)
-- buflen = 32;
-- file_hdr->c_name = xmalloc (buflen);
-- }
-- else if (buflen < len)
-- {
-- buflen = len;
-- file_hdr->c_name = xrealloc (file_hdr->c_name, buflen);
-- }
--
-+ while (buflen < len)
-+ buf = x2realloc (buf, &buflen);
-+ file_hdr->c_name = buf;
- file_hdr->c_namesize = len;
- memmove (file_hdr->c_name, name, len);
- }
---
-2.18.0
-
diff --git a/meta/recipes-extended/cpio/cpio-2.12/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta/recipes-extended/cpio/cpio-2.13/0001-Unset-need_charset_alias-when-building-for-musl.patch
index 6ae213942c..6ae213942c 100644
--- a/meta/recipes-extended/cpio/cpio-2.12/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ b/meta/recipes-extended/cpio/cpio-2.13/0001-Unset-need_charset_alias-when-building-for-musl.patch
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.12.bb b/meta/recipes-extended/cpio/cpio_2.13.bb
index 3713bf0b1f..94d86100c7 100644
--- a/meta/recipes-extended/cpio/cpio_2.12.bb
+++ b/meta/recipes-extended/cpio/cpio_2.13.bb
@@ -8,13 +8,11 @@ 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://0001-Fix-CVE-2015-1197.patch \
- file://0001-CVE-2016-2037-1-byte-out-of-bounds-write.patch \
- file://0001-Fix-segfault-with-append.patch \
+ file://0002-src-global.c-Remove-superfluous-declaration-of-progr.patch \
"
-SRC_URI[md5sum] = "fc207561a86b63862eea4b8300313e86"
-SRC_URI[sha256sum] = "08a35e92deb3c85d269a0059a27d4140a9667a6369459299d08c17f713a92e73"
+SRC_URI[md5sum] = "389c5452d667c23b5eceb206f5000810"
+SRC_URI[sha256sum] = "e87470d9c984317f658567c03bfefb6b0c829ff17dbf6b0de48d71a4c8f3db88"
inherit autotools gettext texinfo
@@ -25,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
@@ -48,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/cronie/cronie_1.5.4.bb b/meta/recipes-extended/cronie/cronie_1.5.5.bb
index d35c6672c4..0def4a187d 100644
--- a/meta/recipes-extended/cronie/cronie_1.5.4.bb
+++ b/meta/recipes-extended/cronie/cronie_1.5.5.bb
@@ -16,7 +16,7 @@ SECTION = "utils"
UPSTREAM_CHECK_URI = "https://github.com/cronie-crond/${BPN}/releases/"
-SRC_URI = "https://github.com/cronie-crond/cronie/releases/download/cronie-${PV}-final/cronie-${PV}.tar.gz \
+SRC_URI = "https://github.com/cronie-crond/cronie/releases/download/cronie-${PV}/cronie-${PV}.tar.gz \
file://crond.init \
file://crontab \
file://crond.service \
@@ -25,8 +25,8 @@ SRC_URI = "https://github.com/cronie-crond/cronie/releases/download/cronie-${PV}
PAM_SRC_URI = "file://crond_pam_config.patch"
PAM_DEPS = "libpam libpam-runtime pam-plugin-access pam-plugin-loginuid"
-SRC_URI[md5sum] = "20233b96997e17a142e1fbe0d7ce8223"
-SRC_URI[sha256sum] = "af8970559cad4262f8ffd7ec72abf682d2dcce04fdfb8f206a71d96566aba882"
+SRC_URI[md5sum] = "351a37d0b5bd0144816724b4482747ad"
+SRC_URI[sha256sum] = "be34c79505e5544323281854744b9955ff16b160ee569f9df7c0dddae5720eac"
inherit autotools update-rc.d useradd systemd
@@ -34,6 +34,7 @@ PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,${PAM_DEPS}"
+PACKAGECONFIG[anacron] = "--enable-anacron,--disable-anacron,anacron"
INITSCRIPT_NAME = "crond"
INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ."
diff --git a/meta/recipes-extended/cups/cups.inc b/meta/recipes-extended/cups/cups.inc
index e303f3424d..87870e4aba 100644
--- a/meta/recipes-extended/cups/cups.inc
+++ b/meta/recipes-extended/cups/cups.inc
@@ -1,14 +1,20 @@
SUMMARY = "An Internet printing system for Unix"
+DESCRIPTION = "The Common UNIX Printing System is a printing system and \
+general replacement for lpd and the like. It supports the Internet Printing \
+Protocol (IPP), and has its own filtering driver model for handling various \
+document types."
HOMEPAGE = "https://www.cups.org/"
SECTION = "console/utils"
-LICENSE = "GPLv2 & LGPLv2"
+LICENSE = "Apache-2.0"
DEPENDS = "gnutls libpng jpeg dbus zlib libusb1"
SRC_URI = "https://github.com/apple/cups/releases/download/v${PV}/${BP}-source.tar.gz \
- file://use_echo_only_in_init.patch \
- file://0001-don-t-try-to-run-generated-binaries.patch \
- file://cups_serverbin.patch \
- file://cups-avoid-install-file-conflicts.patch \
+ 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://volatiles.99_cups \
+ file://cups-volatiles.conf \
"
UPSTREAM_CHECK_URI = "https://github.com/apple/cups/releases"
@@ -18,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)}"
@@ -41,10 +47,7 @@ EXTRA_OECONF = " \
--enable-debug \
--disable-relro \
--enable-libusb \
- --without-php \
- --without-perl \
- --without-python \
- --without-java \
+ --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,18 +82,20 @@ 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
}
PACKAGES =+ "${PN}-lib ${PN}-libimage"
RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'procps', '', d)}"
-FILES_${PN} += "${libdir}/cups/backend \
- ${libdir}/cups/cgi-bin \
- ${libdir}/cups/filter \
- ${libdir}/cups/monitor \
- ${libdir}/cups/notifier \
- ${libdir}/cups/daemon \
+FILES_${PN} += "${libexecdir}/cups/ \
"
FILES_${PN}-lib = "${libdir}/libcups.so.*"
@@ -105,7 +111,9 @@ 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=${libdir}/cups:'
+ 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/0001-use-echo-only-in-init.patch b/meta/recipes-extended/cups/cups/0001-use-echo-only-in-init.patch
new file mode 100644
index 0000000000..80bbad0a44
--- /dev/null
+++ b/meta/recipes-extended/cups/cups/0001-use-echo-only-in-init.patch
@@ -0,0 +1,27 @@
+From a3f4d8ba97f4669a95943a7e65eb61aa44ce7999 Mon Sep 17 00:00:00 2001
+From: Saul Wold <sgw@linux.intel.com>
+Date: Thu, 13 Dec 2012 19:03:52 -0800
+Subject: [PATCH 1/4] use echo only in init
+
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ scheduler/cups.sh.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scheduler/cups.sh.in b/scheduler/cups.sh.in
+index 89ac36d..6618a0f 100644
+--- a/scheduler/cups.sh.in
++++ b/scheduler/cups.sh.in
+@@ -50,7 +50,7 @@ case "`uname`" in
+ ECHO_ERROR=:
+ ;;
+
+- Linux*)
++ DisableLinux*)
+ IS_ON=/bin/true
+ if test -f /etc/init.d/functions; then
+ . /etc/init.d/functions
+--
+2.17.1
+
diff --git a/meta/recipes-extended/cups/cups/0001-don-t-try-to-run-generated-binaries.patch b/meta/recipes-extended/cups/cups/0002-don-t-try-to-run-generated-binaries.patch
index d6a69f2833..ea248e4710 100644
--- a/meta/recipes-extended/cups/cups/0001-don-t-try-to-run-generated-binaries.patch
+++ b/meta/recipes-extended/cups/cups/0002-don-t-try-to-run-generated-binaries.patch
@@ -1,7 +1,7 @@
-From 1fb07162a9ed187cccf06e34c9bf841d15c6e64e Mon Sep 17 00:00:00 2001
+From 3e9a965dcd65ab2d40b753b6f792a1a4559182aa Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Sun, 30 Jan 2011 16:37:27 +0100
-Subject: [PATCH] don't try to run generated binaries
+Subject: [PATCH 2/4] don't try to run generated binaries
Upstream-Status: Inappropriate [embedded specific]
@@ -12,13 +12,13 @@ Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/ppdc/Makefile b/ppdc/Makefile
-index e563988..973dd3f 100644
+index 32e2e0b..f1478d4 100644
--- a/ppdc/Makefile
+++ b/ppdc/Makefile
-@@ -189,8 +189,8 @@ genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \
- $(LD_CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \
- libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) \
- $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
+@@ -186,8 +186,8 @@ genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \
+ $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o genstrings genstrings.o \
+ libcupsppdc.a $(LINKCUPSSTATIC)
+ $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
- echo Generating localization strings...
- ./genstrings >sample.c
+# echo Generating localization strings...
@@ -26,9 +26,9 @@ index e563988..973dd3f 100644
#
-@@ -209,9 +209,9 @@ ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po
- ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
- $(COMMONLIBS) $(LIBZ)
+@@ -205,9 +205,9 @@ ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po
+ $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
+ $(LINKCUPSSTATIC)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
- echo Testing PPD compiler...
- ./ppdc-static -l en,fr -I ../data foo.drv
@@ -39,9 +39,9 @@ index e563988..973dd3f 100644
#
-@@ -240,17 +240,17 @@ ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
- ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
- $(COMMONLIBS) $(LIBZ)
+@@ -235,17 +235,17 @@ ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
+ $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o ppdi-static ppdi.o libcupsppdc.a \
+ $(LINKCUPSSTATIC)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
- echo Testing PPD importer...
- $(RM) -r ppd ppd2 sample-import.drv
@@ -68,3 +68,6 @@ index e563988..973dd3f 100644
#
+--
+2.17.1
+
diff --git a/meta/recipes-extended/cups/cups/0003-cups_1.4.6.bb-Fix-build-on-ppc64.patch b/meta/recipes-extended/cups/cups/0003-cups_1.4.6.bb-Fix-build-on-ppc64.patch
new file mode 100644
index 0000000000..b48c7a9ad2
--- /dev/null
+++ b/meta/recipes-extended/cups/cups/0003-cups_1.4.6.bb-Fix-build-on-ppc64.patch
@@ -0,0 +1,51 @@
+From 66c2079ae91389ee0f9d704bf0d2cccd53b2c603 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 22 Jul 2012 16:54:17 -0700
+Subject: [PATCH 3/4] cups_1.4.6.bb: Fix build on ppc64
+
+Make CUPS_SERVERBIN relative to libdir otherwise on 64bit arches
+e.g. ppc64 where base libdir is lib64 this does not go well
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Inappropriate [OE config specific]
+
+Update on 20190904:
+Redefine CUPS_SERVERBIN to "$libexecdir/cups" which solves file confliction
+when multilib is enabled.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+---
+ config-scripts/cups-directories.m4 | 2 +-
+ configure | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/config-scripts/cups-directories.m4 b/config-scripts/cups-directories.m4
+index b74083a..9a5abb2 100644
+--- a/config-scripts/cups-directories.m4
++++ b/config-scripts/cups-directories.m4
+@@ -270,7 +270,7 @@ case "$host_os_name" in
+ *)
+ # All others
+ INSTALL_SYSV="install-sysv"
+- CUPS_SERVERBIN="$exec_prefix/lib/cups"
++ CUPS_SERVERBIN="$libexecdir/cups"
+ ;;
+ esac
+
+diff --git a/configure b/configure
+index d3df145..bc68a6c 100755
+--- a/configure
++++ b/configure
+@@ -6420,7 +6420,7 @@ case "$host_os_name" in
+ *)
+ # All others
+ INSTALL_SYSV="install-sysv"
+- CUPS_SERVERBIN="$exec_prefix/lib/cups"
++ CUPS_SERVERBIN="$libexecdir/cups"
+ ;;
+ esac
+
+--
+2.17.1
+
diff --git a/meta/recipes-extended/cups/cups/cups-avoid-install-file-conflicts.patch b/meta/recipes-extended/cups/cups/0004-cups-fix-multilib-install-file-conflicts.patch
index 68885fa4db..bc9260307c 100644
--- a/meta/recipes-extended/cups/cups/cups-avoid-install-file-conflicts.patch
+++ b/meta/recipes-extended/cups/cups/0004-cups-fix-multilib-install-file-conflicts.patch
@@ -1,3 +1,8 @@
+From 7dbda1887aa19ab720aff22312f4caff2d575f62 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Wed, 3 Oct 2018 00:27:11 +0800
+Subject: [PATCH 4/4] cups: fix multilib install file conflicts
+
@CUPS_SERVERBIN@ is ${libdir} related that causes multilib install file
conflict. Remove @CUPS_SERVERBIN@ from the comment line of cups-files.conf to
avoid the conflict.
@@ -6,6 +11,10 @@ Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ conf/cups-files.conf.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
diff --git a/conf/cups-files.conf.in b/conf/cups-files.conf.in
index 4a78ba6..03c6582 100644
--- a/conf/cups-files.conf.in
@@ -19,3 +28,6 @@ index 4a78ba6..03c6582 100644
# SSL/TLS keychain for the scheduler...
#ServerKeychain @CUPS_SERVERKEYCHAIN@
+--
+2.17.1
+
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/cups_serverbin.patch b/meta/recipes-extended/cups/cups/cups_serverbin.patch
deleted file mode 100644
index 85c6af1071..0000000000
--- a/meta/recipes-extended/cups/cups/cups_serverbin.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Make CUPS_SERVERBIN relative to libdir otherwise on 64bit arches
-e.g. ppc64 where base libdir is lib64 this does not go well
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Inappropriate [OE config specific]
-
-Update on 20190904:
-Redefine CUPS_SERVERBIN to "$libexecdir/cups" which solves file confliction
-when multilib is enabled.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-Index: cups-1.4.6/config-scripts/cups-directories.m4
-===================================================================
---- cups-1.4.6.orig/config-scripts/cups-directories.m4 2009-04-12 16:04:51.000000000 -0700
-+++ cups-1.4.6/config-scripts/cups-directories.m4 2012-07-21 12:12:05.896405923 -0700
-@@ -397,7 +397,7 @@
- *)
- # All others
- INSTALL_SYSV="install-sysv"
-- CUPS_SERVERBIN="$exec_prefix/lib/cups"
-+ CUPS_SERVERBIN="$libexecdir/cups"
- ;;
- esac
-
-Index: cups-1.4.6/configure
-===================================================================
---- cups-1.4.6.orig/configure 2012-07-21 12:13:34.512405950 -0700
-+++ cups-1.4.6/configure 2012-07-21 12:14:05.724406017 -0700
-@@ -11181,7 +11181,7 @@
- *)
- # All others
- INSTALL_SYSV="install-sysv"
-- CUPS_SERVERBIN="$exec_prefix/lib/cups"
-+ CUPS_SERVERBIN="$libexecdir/cups"
- ;;
- esac
-
diff --git a/meta/recipes-extended/cups/cups/use_echo_only_in_init.patch b/meta/recipes-extended/cups/cups/use_echo_only_in_init.patch
deleted file mode 100644
index 696f1374d9..0000000000
--- a/meta/recipes-extended/cups/cups/use_echo_only_in_init.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Index: cups-1.6.1/scheduler/cups.sh.in
-===================================================================
---- cups-1.6.1.orig/scheduler/cups.sh.in
-+++ cups-1.6.1/scheduler/cups.sh.in
-@@ -67,7 +67,7 @@ case "`uname`" in
- ECHO_ERROR=:
- ;;
-
-- Linux*)
-+ DisableLinux*)
- IS_ON=/bin/true
- if test -f /etc/init.d/functions; then
- . /etc/init.d/functions
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.2.12.bb b/meta/recipes-extended/cups/cups_2.2.12.bb
deleted file mode 100644
index 8e5534a979..0000000000
--- a/meta/recipes-extended/cups/cups_2.2.12.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require cups.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f212b4338db0da8cb892e94bf2949460"
-
-SRC_URI[md5sum] = "e763689f7735d3fe95a2943397189e40"
-SRC_URI[sha256sum] = "0f61ab449e4748a24c6ab355b481ff7691247a140d327b2b7526fce34b7f9aa8"
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 7c5d4f956b..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.2, 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.2.bb b/meta/recipes-extended/ethtool/ethtool_5.8.bb
index 67e7fadee0..0403f0e3a9 100644
--- a/meta/recipes-extended/ethtool/ethtool_5.2.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] = "79cff0d4af62b030ad28be90414b5c4a"
-SRC_URI[sha256sum] = "8ad6cb30f6e1767d9d23a5cb5f606f3b51f83e85ebf0153c1506194f6709e90b"
+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/findutils/findutils.inc b/meta/recipes-extended/findutils/findutils.inc
index ad3642923c..9aa7239825 100644
--- a/meta/recipes-extended/findutils/findutils.inc
+++ b/meta/recipes-extended/findutils/findutils.inc
@@ -6,9 +6,9 @@ HOMEPAGE = "http://www.gnu.org/software/findutils/"
BUGTRACKER = "http://savannah.gnu.org/bugs/?group=findutils"
SECTION = "console/utils"
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz"
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.xz"
-inherit autotools gettext texinfo update-alternatives upstream-version-is-even
+inherit autotools gettext texinfo update-alternatives
ALTERNATIVE_${PN} = "find xargs"
ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-extended/findutils/findutils/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta/recipes-extended/findutils/findutils/0001-Unset-need_charset_alias-when-building-for-musl.patch
deleted file mode 100644
index 6064d18854..0000000000
--- a/meta/recipes-extended/findutils/findutils/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 86db2a5f3b7ef8113e5384b4e02d2b299c87a047 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 13 Apr 2015 17:02:13 -0700
-Subject: [PATCH] Unset need_charset_alias when building for musl
-
-localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
-which actually shoudl be fixed in gnulib and then all downstream
-projects will get it eventually. For now we apply the fix to
-coreutils
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- gl/lib/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gl/lib/Makefile.am b/gl/lib/Makefile.am
-index a9e2fe4..1c6ea9c 100644
---- a/gl/lib/Makefile.am
-+++ b/gl/lib/Makefile.am
-@@ -1234,7 +1234,7 @@ install-exec-localcharset: all-local
- case '$(host_os)' in \
- darwin[56]*) \
- need_charset_alias=true ;; \
-- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
- need_charset_alias=false ;; \
- *) \
- need_charset_alias=true ;; \
diff --git a/meta/recipes-extended/findutils/findutils/0001-find-make-delete-honour-the-ignore_readdir_race-opti.patch b/meta/recipes-extended/findutils/findutils/0001-find-make-delete-honour-the-ignore_readdir_race-opti.patch
deleted file mode 100644
index a570473ccb..0000000000
--- a/meta/recipes-extended/findutils/findutils/0001-find-make-delete-honour-the-ignore_readdir_race-opti.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From a3f4821c4a3f723d21c9298d54bee8a656bfd7fb Mon Sep 17 00:00:00 2001
-From: Bernhard Voelker <mail@bernhard-voelker.de>
-Date: Tue, 30 Jan 2018 23:30:09 +0100
-Subject: [PATCH] find: make -delete honour the -ignore_readdir_race option
-
-* find/pred.c (pred_delete): Return true when the -ignore_readdir_race
-option is active and unlinkat() came back with ENOENT.
-* doc/find.texi (Option -ignore_readdir_race): Document the change.
-(Action -delete): Likewise.
-* find/find.1: Likewise.
-* NEWS (Bug Fixes): Mention the fix.
-
-For now, it seems a bit hard to add a proper test for this,
-so the following shell snippet demonstrates the race:
-
- $ seq 10 | xargs touch
- $ env time -f 'find exit status: %x\nfind time: %e' \
- find -ignore_readdir_race -type f \
- -delete \
- -exec sh -c 'sleep $(basename {})' \; \
- -printf 'find deleted: %p\n' \
- & \
- sleep 20; \
- seq 10 | xargs rm -fv; \
- wait $!
-
-Reported by Alexander Golubev in
-https://savannah.gnu.org/bugs/?52981
-
-Upstream-Status: Backport
-Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
-
----
- NEWS | 4 ++++
- doc/find.texi | 15 ++++++++++++++-
- find/find.1 | 22 ++++++++++++++++++++++
- find/pred.c | 6 ++++++
- 4 files changed, 46 insertions(+), 1 deletion(-)
-
-diff --git a/NEWS b/NEWS
-index 660c241..b86ec1e 100644
---- a/NEWS
-+++ b/NEWS
-@@ -42,6 +42,10 @@ Updated the Danish translation.
-
- ** Bug Fixes:
-
-+#52981: find: the '-delete' action no longer complains about disappeared files
-+ when the '-ignore_readdir_race' option is given, too. That action will
-+ also returns true in such a case now.
-+
- Applied patch #8688: Spelling fixes.
-
- * Major changes in release 4.5.18, 2015-12-27
-diff --git a/doc/find.texi b/doc/find.texi
-index fdeb841..247c19a 100644
---- a/doc/find.texi
-+++ b/doc/find.texi
-@@ -1418,7 +1418,15 @@ gives a significant increase in search speed.
- If a file disappears after its name has been read from a directory but
- before @code{find} gets around to examining the file with @code{stat},
- don't issue an error message. If you don't specify this option, an
--error message will be issued. This option can be useful in system
-+error message will be issued.
-+
-+Furthermore, @code{find} with the @samp{-ignore_readdir_race} option
-+will ignore errors of the @samp{-delete} action in the case the file
-+has disappeared since the parent directory was read: it will not output
-+an error diagnostic, and the return code of the @samp{-delete} action
-+will be true.
-+
-+This option can be useful in system
- scripts (cron scripts, for example) that examine areas of the
- filesystem that change frequently (mail queues, temporary directories,
- and so forth), because this scenario is common for those sorts of
-@@ -2779,6 +2787,11 @@ explicitly.
-
- If @samp{-delete} fails, @code{find}'s exit status will be nonzero
- (when it eventually exits).
-+
-+Together with the @samp{-ignore_readdir_race} option, @code{find} will
-+ignore errors of the @samp{-delete} action in the case the file has disappeared
-+since the parent directory was read: it will not output an error diagnostic, and
-+the return code of the @samp{-delete} action will be true.
- @end deffn
-
- @node Adding Tests
-diff --git a/find/find.1 b/find/find.1
-index 7b141b8..0eec41c 100644
---- a/find/find.1
-+++ b/find/find.1
-@@ -479,6 +479,17 @@ one part of the filesystem with this option on and part of it with this option
- off (if you need to do that, you will need to issue two \fBfind\fR commands
- instead, one with the option and one without it).
-
-+Furthermore,
-+.B find
-+with the
-+.B \-ignore_readdir_race
-+option will ignore errors of the
-+.B \-delete
-+action in the case the file has disappeared since the parent directory was read:
-+it will not output an error diagnostic, and the return code of the
-+.B \-delete
-+action will be true.
-+
- .IP "\-maxdepth \fIlevels\fR"
- Descend at most \fIlevels\fR (a non-negative integer) levels of
- directories below the starting-points.
-@@ -1030,6 +1041,17 @@ and
- .B \-delete
- together.
-
-+Together with the
-+.B \-ignore_readdir_race
-+option,
-+.B find
-+will ignore errors of the
-+.B \-delete
-+action in the case the file has disappeared since the parent directory was
-+read: it will not output an error diagnostic, and the return code of the
-+.B \-delete
-+action will be true.
-+
- .IP "\-exec \fIcommand\fR ;"
- Execute \fIcommand\fR; true if 0 status is returned. All following
- arguments to
-diff --git a/find/pred.c b/find/pred.c
-index 32938fb..431f065 100644
---- a/find/pred.c
-+++ b/find/pred.c
-@@ -324,6 +324,12 @@ pred_delete (const char *pathname, struct stat *stat_buf, struct predicate *pred
- }
- else
- {
-+ if (ENOENT == errno && options.ignore_readdir_race)
-+ {
-+ /* Ignore unlink() error for vanished files. */
-+ errno = 0;
-+ return true;
-+ }
- if (EISDIR == errno)
- {
- if ((flags & AT_REMOVEDIR) == 0)
diff --git a/meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-fflush.patch b/meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-fflush.patch
deleted file mode 100644
index d13e8ed3cf..0000000000
--- a/meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-fflush.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From 80cdfba079627e15129a926a133825b961d41e36 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Mon, 5 Mar 2018 10:56:29 -0800
-Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Problem reported by Daniel P. Berrangé in:
-https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
-* lib/fflush.c (clear_ungetc_buffer_preserving_position)
-(disable_seek_optimization, rpl_fflush):
-* lib/fpurge.c (fpurge):
-* lib/freadahead.c (freadahead):
-* lib/freading.c (freading):
-* lib/fseeko.c (fseeko):
-* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
-Define if not already defined.
-
-Upstream-commit: 4af4a4a71827c0bc5e0ec67af23edef4f15cee8e
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
-Upstream-Status: Backport [4af4a4a71827c0bc5e0ec67af23edef4f15cee8e]
----
- gl/lib/fflush.c | 6 +++---
- gl/lib/fpurge.c | 2 +-
- gl/lib/freadahead.c | 2 +-
- gl/lib/freading.c | 2 +-
- gl/lib/fseeko.c | 4 ++--
- gl/lib/stdio-impl.h | 6 ++++++
- 6 files changed, 14 insertions(+), 8 deletions(-)
-
-Index: findutils-4.6.0/gl/lib/fflush.c
-===================================================================
---- findutils-4.6.0.orig/gl/lib/fflush.c
-+++ findutils-4.6.0/gl/lib/fflush.c
-@@ -33,7 +33,7 @@
- #undef fflush
-
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-
- /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
- static void
-@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
-
- #endif
-
--#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-
- # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
-@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
- if (stream == NULL || ! freading (stream))
- return fflush (stream);
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-
- clear_ungetc_buffer_preserving_position (stream);
-
-Index: findutils-4.6.0/gl/lib/fpurge.c
-===================================================================
---- findutils-4.6.0.orig/gl/lib/fpurge.c
-+++ findutils-4.6.0/gl/lib/fpurge.c
-@@ -62,7 +62,7 @@ fpurge (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_IO_read_end = fp->_IO_read_ptr;
- fp->_IO_write_ptr = fp->_IO_write_base;
- /* Avoid memory leak when there is an active ungetc buffer. */
-Index: findutils-4.6.0/gl/lib/freadahead.c
-===================================================================
---- findutils-4.6.0.orig/gl/lib/freadahead.c
-+++ findutils-4.6.0/gl/lib/freadahead.c
-@@ -25,7 +25,7 @@
- size_t
- freadahead (FILE *fp)
- {
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- if (fp->_IO_write_ptr > fp->_IO_write_base)
- return 0;
- return (fp->_IO_read_end - fp->_IO_read_ptr)
-Index: findutils-4.6.0/gl/lib/freading.c
-===================================================================
---- findutils-4.6.0.orig/gl/lib/freading.c
-+++ findutils-4.6.0/gl/lib/freading.c
-@@ -31,7 +31,7 @@ freading (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- return ((fp->_flags & _IO_NO_WRITES) != 0
- || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
- && fp->_IO_read_base != NULL));
-Index: findutils-4.6.0/gl/lib/fseeko.c
-===================================================================
---- findutils-4.6.0.orig/gl/lib/fseeko.c
-+++ findutils-4.6.0/gl/lib/fseeko.c
-@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int when
- #endif
-
- /* These tests are based on fpurge.c. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- if (fp->_IO_read_end == fp->_IO_read_ptr
- && fp->_IO_write_ptr == fp->_IO_write_base
- && fp->_IO_save_base == NULL)
-@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int when
- return -1;
- }
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_flags &= ~_IO_EOF_SEEN;
- fp->_offset = pos;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
-Index: findutils-4.6.0/gl/lib/stdio-impl.h
-===================================================================
---- findutils-4.6.0.orig/gl/lib/stdio-impl.h
-+++ findutils-4.6.0/gl/lib/stdio-impl.h
-@@ -18,6 +18,12 @@
- the same implementation of stdio extension API, except that some fields
- have different naming conventions, or their access requires some casts. */
-
-+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
-+ problem by defining it ourselves. FIXME: Do not rely on glibc
-+ internals. */
-+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
-+# define _IO_IN_BACKUP 0x100
-+#endif
-
- /* BSD stdio derived implementations. */
-
diff --git a/meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-makedev.patch b/meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-makedev.patch
deleted file mode 100644
index 0fb3953cf3..0000000000
--- a/meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-makedev.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 80628047a6cc83f82e0c410a82b8f7facd9d50f2 Mon Sep 17 00:00:00 2001
-From: Eric Blake <eblake@redhat.com>
-Date: Wed, 14 Sep 2016 19:21:42 -0500
-Subject: [PATCH] mountlist: include sysmacros.h for glibc
-
-On Fedora rawhide (glibc 2.25), './gnulib-tool --test mountlist'
-reports:
-../../gllib/mountlist.c: In function 'read_file_system_list':
-../../gllib/mountlist.c:534:13: warning: '__makedev_from_sys_types' is deprecated:
- In the GNU C Library, `makedev' is defined by <sys/sysmacros.h>.
- For historical compatibility, it is currently defined by
- <sys/types.h> as well, but we plan to remove this soon.
- To use `makedev', include <sys/sysmacros.h> directly.
- If you did not intend to use a system-defined macro `makedev',
- you should #undef it after including <sys/types.h>.
- [-Wdeprecated-declarations]
- me->me_dev = makedev (devmaj, devmin);
- ^~
-In file included from /usr/include/features.h:397:0,
- from /usr/include/sys/types.h:25,
- from ./sys/types.h:28,
- from ../../gllib/mountlist.h:23,
- from ../../gllib/mountlist.c:20:
-/usr/include/sys/sysmacros.h:89:1: note: declared here
- __SYSMACROS_DEFINE_MAKEDEV (__SYSMACROS_FST_IMPL_TEMPL)
- ^
-
-Fix it by including the right headers. We also need a fix to
-autoconf's AC_HEADER_MAJOR, but that's a separate patch.
-
-* m4/mountlist.m4 (gl_PREREQ_MOUTLIST_EXTRA): Include
-AC_HEADER_MAJOR.
-* lib/mountlist.c (includes): Use correct headers.
-
-Signed-off-by: Eric Blake <eblake@redhat.com>
-
-Upstream-commit: 4da63c5881f60f71999a943612da9112232b9161
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
-Upstream-Status: Backport [4da63c5881f60f71999a943612da9112232b9161]
----
- gl/lib/mountlist.c | 6 ++++++
- gl/m4/mountlist.m4 | 3 ++-
- 2 files changed, 8 insertions(+), 1 deletion(-)
-
-Index: findutils-4.6.0/gl/lib/mountlist.c
-===================================================================
---- findutils-4.6.0.orig/gl/lib/mountlist.c
-+++ findutils-4.6.0/gl/lib/mountlist.c
-@@ -37,6 +37,12 @@
- # include <sys/param.h>
- #endif
-
-+#if MAJOR_IN_MKDEV
-+# include <sys/mkdev.h>
-+#elif MAJOR_IN_SYSMACROS
-+# include <sys/sysmacros.h>
-+#endif
-+
- #if defined MOUNTED_GETFSSTAT /* OSF_1 and Darwin1.3.x */
- # if HAVE_SYS_UCRED_H
- # include <grp.h> /* needed on OSF V4.0 for definition of NGROUPS,
-Index: findutils-4.6.0/gl/m4/mountlist.m4
-===================================================================
---- findutils-4.6.0.orig/gl/m4/mountlist.m4
-+++ findutils-4.6.0/gl/m4/mountlist.m4
-@@ -1,4 +1,4 @@
--# serial 11
-+# serial 12
- dnl Copyright (C) 2002-2006, 2009-2015 Free Software Foundation, Inc.
- dnl This file is free software; the Free Software Foundation
- dnl gives unlimited permission to copy and/or distribute it,
-@@ -15,5 +15,6 @@ AC_DEFUN([gl_PREREQ_MOUNTLIST_EXTRA],
- [
- dnl Note gl_LIST_MOUNTED_FILE_SYSTEMS checks for mntent.h, not sys/mntent.h.
- AC_CHECK_HEADERS([sys/mntent.h])
-+ AC_HEADER_MAJOR()dnl for use of makedev ()
- gl_FSTYPENAME
- ])
diff --git a/meta/recipes-extended/findutils/findutils_4.6.0.bb b/meta/recipes-extended/findutils/findutils_4.6.0.bb
deleted file mode 100644
index 3b62ed9962..0000000000
--- a/meta/recipes-extended/findutils/findutils_4.6.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require findutils.inc
-
-# GPLv2+ (<< 4.2.32), GPLv3+ (>= 4.2.32)
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-
-DEPENDS = "bison-native"
-
-SRC_URI += "file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
- file://0001-find-make-delete-honour-the-ignore_readdir_race-opti.patch \
- file://findutils-4.6.0-gnulib-fflush.patch \
- file://findutils-4.6.0-gnulib-makedev.patch \
-"
-
-SRC_URI[md5sum] = "9936aa8009438ce185bea2694a997fc1"
-SRC_URI[sha256sum] = "ded4c9f73731cd48fec3b6bdaccce896473b6d8e337e9612e16cf1431bb1169d"
-
-# http://savannah.gnu.org/bugs/?27299
-CACHED_CONFIGUREVARS += "gl_cv_func_wcwidth_works=yes"
-
-EXTRA_OECONF += "ac_cv_path_SORT=${bindir}/sort"
diff --git a/meta/recipes-extended/findutils/findutils_4.7.0.bb b/meta/recipes-extended/findutils/findutils_4.7.0.bb
new file mode 100644
index 0000000000..59688e528a
--- /dev/null
+++ b/meta/recipes-extended/findutils/findutils_4.7.0.bb
@@ -0,0 +1,15 @@
+require findutils.inc
+
+# GPLv2+ (<< 4.2.32), GPLv3+ (>= 4.2.32)
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+DEPENDS = "bison-native"
+
+SRC_URI[md5sum] = "731356dec4b1109b812fecfddfead6b2"
+SRC_URI[sha256sum] = "c5fefbdf9858f7e4feb86f036e1247a54c79fc2d8e4b7064d5aaa1f47dfa789a"
+
+# http://savannah.gnu.org/bugs/?27299
+CACHED_CONFIGUREVARS += "gl_cv_func_wcwidth_works=yes"
+
+EXTRA_OECONF += "ac_cv_path_SORT=${bindir}/sort"
diff --git a/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch b/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch
deleted file mode 100644
index aaedc88aa3..0000000000
--- a/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Upstream-Status: Backport
-
-
-http://bzr.linuxfoundation.org/loggerhead/openprinting/cups-filters/revision/7406
-
-Hand applied change to util.c. Fix was for cups-filters but also applied to foomatic-filters.
-
-CVE: CVE-2015-8327
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
-Index: util.c
-===================================================================
---- a/util.c
-+++ b/util.c
-@@ -31,7 +31,7 @@
- #include <assert.h>
-
-
--const char* shellescapes = "|;<>&!$\'\"#*?()[]{}";
-+const char* shellescapes = "|;<>&!$\'\"`#*?()[]{}";
-
- const char * temp_dir()
- {
diff --git a/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch b/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch
deleted file mode 100644
index dc973c4592..0000000000
--- a/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Upstream-Status: Backport
-
-
-http://bzr.linuxfoundation.org/loggerhead/openprinting/cups-filters/revision/7419
-
-Hand applied change to util.c. Fix was for cups-filters but also applied to foomatic-filters.
-
-CVE: CVE-2015-8560
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
-Index: util.c
-===================================================================
---- a/util.c
-+++ b/util.c
-@@ -31,7 +31,7 @@
- #include <assert.h>
-
-
--const char* shellescapes = "|<>&!$\'\"#*?()[]{}";
-+const char* shellescapes = "|;<>&!$\'\"#*?()[]{}";
-
- const char * temp_dir()
- {
diff --git a/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb b/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb
deleted file mode 100644
index 742c9a5cf2..0000000000
--- a/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "OpenPrinting printer support - filters"
-HOMEPAGE = "https://wiki.linuxfoundation.org/openprinting/start"
-DESCRIPTION = "Foomatic is a printer database designed to make it easier to set up \
-common printers for use with UNIX-like operating systems.\
-It provides the "glue" between a print spooler (like CUPS or lpr) and \
-the printer, by processing files sent to the printer. \
- \
-This package consists of filters used by the printer spoolers \
-to convert the incoming PostScript data into the printer's native \
-format using a printer-specific, but spooler-independent PPD file. \
-"
-
-DEPENDS += "cups perl libxml2"
-PR = "r1"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/foomatic-filters-${PV}/COPYING;md5=393a5ca445f6965873eca0259a17f833"
-
-SRC_URI = "http://www.openprinting.org/download/foomatic/foomatic-filters-${PV}.tar.gz"
-
-SRC_URI += "file://CVE-2015-8560.patch \
- file://CVE-2015-8327.patch \
- "
-
-SRC_URI[md5sum] = "b05f5dcbfe359f198eef3df5b283d896"
-SRC_URI[sha256sum] = "a2e2e53e502571e88eeb9010c45a0d54671f15707ee104f5c9c22b59ea7a33e3"
-
-UPSTREAM_CHECK_REGEX = "foomatic-filters-(?P<pver>((\d|\d\d)\.*)+)\.tar\.gz"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--disable-file-converter-check --with-file-converter=texttops"
-
-do_configure_prepend() {
- export PERL="${bindir}/env perl"
- export CUPS_SERVERBIN=${exec_prefix}/lib/cups # /usr/lib NOT libdir
-}
-
-do_install_append_linuxstdbase() {
- install -d ${D}${exec_prefix}/lib/cups/filter
- ln -sf ${bindir}/foomatic-rip ${D}${exec_prefix}/lib/cups/filter
-}
-
-FILES_${PN} += "${exec_prefix}/lib/cups/ ${exec_prefix}/lib/ppr/"
diff --git a/meta/recipes-extended/gawk/gawk_5.0.1.bb b/meta/recipes-extended/gawk/gawk_5.1.0.bb
index b3eb39e4ed..0d005cd43b 100644
--- a/meta/recipes-extended/gawk/gawk_5.0.1.bb
+++ b/meta/recipes-extended/gawk/gawk_5.1.0.bb
@@ -11,16 +11,16 @@ SECTION = "console/utils"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS += "readline"
-
+PACKAGECONFIG ??= "readline"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr"
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
@@ -46,6 +46,8 @@ do_install_ptest() {
done
sed -i -e 's|/usr/local/bin|${bindir}|g' \
-e 's|#!${base_bindir}/awk|#!${bindir}/awk|g' ${D}${PTEST_PATH}/test/*.awk
+
+ sed -i -e "s|GAWKLOCALE|LANG|g" ${D}${PTEST_PATH}/test/Maketests
}
RDEPENDS_${PN}-ptest += "make"
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-14811-0001.patch b/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14811-0001.patch
deleted file mode 100644
index 3f28555e8a..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14811-0001.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 885444fcbe10dc42787ecb76686c8ee4dd33bf33 Mon Sep 17 00:00:00 2001
-From: Ken Sharp <ken.sharp@artifex.com>
-Date: Tue, 20 Aug 2019 10:10:28 +0100
-Subject: [PATCH] make .forceput inaccessible
-
-Bug #701343, #701344, #701345
-
-More defensive programming. We don't want people to access .forecput
-even though it is no longer sufficient to bypass SAFER. The exploit
-in #701343 didn't work anyway because of earlier work to stop the error
-handler being used, but nevertheless, prevent access to .forceput from
-.setuserparams2.
-
-CVE: CVE-2019-14811
-Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git]
-
-Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
----
- Resource/Init/gs_lev2.ps | 6 +++---
- Resource/Init/gs_pdfwr.ps | 4 ++--
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/Resource/Init/gs_lev2.ps b/Resource/Init/gs_lev2.ps
-index 98d55fe..f1b771f 100644
---- a/Resource/Init/gs_lev2.ps
-+++ b/Resource/Init/gs_lev2.ps
-@@ -158,7 +158,7 @@ end
- {
- pop pop
- } ifelse
-- } forall
-+ } executeonly forall
- % A context switch might have occurred during the above loop,
- % causing the interpreter-level parameters to be reset.
- % Set them again to the new values. From here on, we are safe,
-@@ -229,9 +229,9 @@ end
- { pop pop
- }
- ifelse
-- }
-+ } executeonly
- forall pop
--} .bind odef
-+} .bind executeonly odef
-
- % Initialize the passwords.
- % NOTE: the names StartJobPassword and SystemParamsPassword are known to
-diff --git a/Resource/Init/gs_pdfwr.ps b/Resource/Init/gs_pdfwr.ps
-index 00c19fa..dfe504d 100644
---- a/Resource/Init/gs_pdfwr.ps
-+++ b/Resource/Init/gs_pdfwr.ps
-@@ -652,11 +652,11 @@ currentdict /.pdfmarkparams .undef
- systemdict /.pdf_hooked_DSC_Creator //true .forceput
- } executeonly if
- pop
-- } if
-+ } executeonly if
- } {
- pop
- } ifelse
-- }
-+ } executeonly
- {
- pop
- } ifelse
---
-2.20.1
-
diff --git a/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch b/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch
deleted file mode 100644
index c76e21caa6..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0001.patch
+++ /dev/null
@@ -1,270 +0,0 @@
-From 0bafbd9c1273fab0dc79fd20db0ffc4443683f96 Mon Sep 17 00:00:00 2001
-From: Ken Sharp <ken.sharp@artifex.com>
-Date: Mon, 29 Apr 2019 11:14:06 +0100
-Subject: [PATCH 1/2] PDF interpreter - Decode ToUnicode entries of the form
- /Identity-H/V
-
-Bug #701003 "Text searchability broken due to omission of /ToUnicode /Identity-H"
-
-The PDF references from 1.2 too 2.0 all state that the value associated
-with a ToUnicode key in a FontDescriptor must be a stream object. However
-this file (and one case seen previously, bug 687351) have FontDescriptor
-dictionaries where the value associated with a /ToUnicode key is a
-name object, in both cases /Identity-H.
-
-Although this is clearly not legal, Acrobat not only tolerates it, it
-actually uses it for search/copy/paste (see bug 701003 for details).
-Without the key Acrobat is unable to successfully search the output file.
-
-We can't simply preserve the name object as a ToUnicode value; when
-handling ToUnicode we actually decode the CMap and build a
-GlyphNames2Unicode map (an internal representation of the G2U data
-produced by the Microsoft PostScript printer driver). When writing the
-output file we use that information to get a Unicode value for each
-character we write, and build a new ToUnicode CMap using that.
-
-This commit tackles the problem by pre-scanning for a name object and
-then checking to see if its Identity-H or Identity-V (although we have
-not seen an Identity-V, there seems no reason why it wouldn't be
-equally valid). If we find either of these then we construct a
-GlyphNames2Unicode table for all possible values (0 - 65535) and store
-that with the font as normal. When we write the output file we only
-write the required entries for the subset font, so we write a now
-completely legal ToUnicode CMap, and Acrobat is equally happy with that
-as the original name.
-
-If the ToUnicode value isn't a name object, or isn't one of the
-identities then we proceed as before. This means we will print a
-warning for non conforming ToUnicode entries and ignore them.
-
-CVE: CVE-2019-14817
-Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git]
-
-Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
----
- Resource/Init/pdf_font.ps | 200 ++++++++++++++++++++++++--------------
- 1 file changed, 129 insertions(+), 71 deletions(-)
-
-diff --git a/Resource/Init/pdf_font.ps b/Resource/Init/pdf_font.ps
-index 9fb85f6..2df3303 100644
---- a/Resource/Init/pdf_font.ps
-+++ b/Resource/Init/pdf_font.ps
-@@ -621,86 +621,144 @@ currentdict end readonly def
- PDFDEBUG {
- (.processToUnicode beg) =
- } if
-- 2 index /ToUnicode knownoget {
-- dup type /dicttype eq { dup /File known not } { //true } ifelse {
-- % We undefine wrong /Length and define /File in stream dictionaries.
-- % Bug687351.pdf defines /ToUnicode /Identity-H, what is incorrect.
-- ( **** Warning: Ignoring bad ToUnicode CMap.\n) pdfformatwarning
-- pop
-+
-+ 2 index /ToUnicode knownoget
-+ {
-+ dup type /nametype eq {
-+ % This is contrary to the specification but it seems that Acrobat at least will accept
-+ % a ToUnicode with a value of Identity-H *and* will use that for search, copy/paste.
-+ % We can't pass through a name, so the best we can do is build a GlyphNames2Unicode
-+ % map matching that which would have been generated by a full 16-bit Identity CMap
-+ %
-+ % See bug numbers 701003 and 687351
-+ %
-+ dup /Identity-H eq 1 index /Identity-V eq or{
-+ pop
-+ 1 index /FontInfo .knownget not {
-+ currentglobal 2 index dup gcheck setglobal
-+ /FontInfo 5 dict dup 5 1 roll .forceput
-+ setglobal
-+ } if
-+ dup /GlyphNames2Unicode .knownget not {
-+ //true % No existing G2U, make one
-+ } {
-+ dup wcheck {
-+ //false % Existing, writeable G2U, don't make new one
-+ } {
-+ pop //true % Existing read only G2U, make new one
-+ } ifelse
-+ } ifelse
-+ {
-+ currentglobal exch dup gcheck setglobal
-+ dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput
-+ 3 2 roll setglobal
-+ } if % font-res font-dict encoding|null font-info g2u
-+
-+ 0 1 65535{
-+ % g2u index
-+ dup dup 256 mod exch 256 idiv % g2u index lo-byte hi-byte
-+ 2 string dup 0 4 -1 roll % g2u index lo-byte () () 0 hi-byte
-+ put % g2u index lo-byte (x)
-+ dup 1 % g2u index lo-byte (x) (x) 1
-+ 4 -1 roll put % g2u index (x) (x) 1 lo-byte -> dict index (xx)
-+ 2 index % g2u index (xx) dict
-+ 3 1 roll % g2u g2u index (xx)
-+ put % g2u
-+ } for
-+ pop % font-res font-dict encoding|null font-info
-+ pop % font-res font-dict encoding|null
-+ //false % We built a GlyphNames2Unicode table, don't need to process further
-+ }{
-+ //true % name is not Identity-V or H, fail by falling through
-+ }ifelse
- } {
-- /PDFScanRules .getuserparam dup //null eq {
-- pop //PDFScanRules_null
-- } {
-- 1 dict dup /PDFScanRules 4 -1 roll put
-- } ifelse
-- //PDFScanRules_true setuserparams
-- PDFfile fileposition
-- 3 -1 roll
-- count 1 sub
-- countdictstack
-- { //false resolvestream
-- % Following Acrobat we ignore everything outside
-- % begincodespacerange .. endcmap.
-- dup 0 (begincodespacerange) /SubFileDecode filter flushfile
-- /CIDInit /ProcSet findresource begin
-- //ToUnicodeCMapReader begin
-- 12 dict begin
-- /CMapType 2 def
-- mark exch % emulate 'begincodespacerange'
-- 0 (endcmap) /SubFileDecode filter cvx /begincmap cvx exch 2 .execn
-- endcmap
-- userdict /.lastToUnicode currentdict put
-- end end end
-- }
-+ //true
-+ } ifelse % not a name, try as a dictionary (as specified)
-
-- PDFSTOPONERROR {
-- { exec } 0 get
-- //false
-- 5 -2 roll
-- 5
-+ % If the ToUnicode isn't a name, or the name isn't Identity-V or -H then follow the specification
-+ % If its not a dictionary type throw an error, otherwise decode it and build a GlyphNames2Unicode
-+ %
-+ {
-+ dup type /dicttype eq { dup /File known not } { //true } ifelse {
-+ % We undefine wrong /Length and define /File in stream dictionaries.
-+ % Bug687351.pdf defines /ToUnicode /Identity-H, what is incorrect.
-+ ( **** Warning: Ignoring bad ToUnicode CMap.\n) pdfformatwarning
-+ pop
- } {
-- { stopped } 0 get
-- 4 2 roll
-- 4
-- } ifelse
-- array astore cvx exec
-+ /PDFScanRules .getuserparam dup //null eq {
-+ pop //PDFScanRules_null
-+ } {
-+ 1 dict dup /PDFScanRules 4 -1 roll put
-+ } ifelse
-+ //PDFScanRules_true setuserparams
-+ PDFfile fileposition
-+ 3 -1 roll
-+ count 1 sub
-+ countdictstack
-+ { //false resolvestream
-+ % Following Acrobat we ignore everything outside
-+ % begincodespacerange .. endcmap.
-+ dup 0 (begincodespacerange) /SubFileDecode filter flushfile
-+ /CIDInit /ProcSet findresource begin
-+ //ToUnicodeCMapReader begin
-+ 12 dict begin
-+ /CMapType 2 def
-+ mark exch % emulate 'begincodespacerange'
-+ 0 (endcmap) /SubFileDecode filter cvx /begincmap cvx exch 2 .execn
-+ endcmap
-+ userdict /.lastToUnicode currentdict put
-+ end end end
-+ }
-
-- countdictstack exch sub 0 .max { end } repeat
-- count exch sub 2 sub 0 .max { exch pop } repeat
-- 3 1 roll % Stach the stop flag.
-- PDFfile exch setfileposition
-- setuserparams
-- {
-- ( **** Warning: Failed to read ToUnicode CMap.\n) pdfformatwarning
-- } {
-- 1 index /FontInfo .knownget not {
-- currentglobal 2 index dup gcheck setglobal
-- /FontInfo 5 dict dup 5 1 roll .forceput
-- setglobal
-- } if
-- dup /GlyphNames2Unicode .knownget not {
-- //true % No existing G2U, make one
-+ PDFSTOPONERROR {
-+ { exec } 0 get
-+ //false
-+ 5 -2 roll
-+ 5
-+ } {
-+ { stopped } 0 get
-+ 4 2 roll
-+ 4
-+ } ifelse
-+ array astore cvx exec
-+
-+ countdictstack exch sub 0 .max { end } repeat
-+ count exch sub 2 sub 0 .max { exch pop } repeat
-+ 3 1 roll % Stach the stop flag.
-+ PDFfile exch setfileposition
-+ setuserparams
-+ {
-+ ( **** Warning: Failed to read ToUnicode CMap.\n) pdfformatwarning
- } {
-- dup wcheck {
-- //false % Existing, writeable G2U, don't make new one
-+ 1 index /FontInfo .knownget not {
-+ currentglobal 2 index dup gcheck setglobal
-+ /FontInfo 5 dict dup 5 1 roll .forceput
-+ setglobal
-+ } if
-+ dup /GlyphNames2Unicode .knownget not {
-+ //true % No existing G2U, make one
- } {
-- pop //true % Existing read only G2U, make new one
-+ dup wcheck {
-+ //false % Existing, writeable G2U, don't make new one
-+ } {
-+ pop //true % Existing read only G2U, make new one
-+ } ifelse
- } ifelse
-+ {
-+ currentglobal exch dup gcheck setglobal
-+ dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput
-+ 3 2 roll setglobal
-+ } if % font-res font-dict encoding|null font-info g2u
-+ exch pop exch % font-res font-dict g2u encoding|null
-+ userdict /.lastToUnicode get % font-res font-dict g2u Encoding|null CMap
-+ .convert_ToUnicode-into-g2u % font-res font-dict
-+ //null % font-res font-dict //null
- } ifelse
-- {
-- currentglobal exch dup gcheck setglobal
-- dup /GlyphNames2Unicode 100 dict dup 4 1 roll .forceput
-- 3 2 roll setglobal
-- } if % font-res font-dict encoding|null font-info g2u
-- exch pop exch % font-res font-dict g2u encoding|null
-- userdict /.lastToUnicode get % font-res font-dict g2u Encoding|null CMap
-- .convert_ToUnicode-into-g2u % font-res font-dict
-- //null % font-res font-dict //null
- } ifelse
-- } ifelse
-- } if
-- PDFDEBUG {
-- (.processToUnicode end) =
-+ } if
-+ PDFDEBUG {
-+ (.processToUnicode end) =
-+ } if
- } if
- } if
- } stopped
---
-2.20.1
-
diff --git a/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch b/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch
deleted file mode 100644
index 6348fff2d1..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14817-0002.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-From cd1b1cacadac2479e291efe611979bdc1b3bdb19 Mon Sep 17 00:00:00 2001
-From: Ken Sharp <ken.sharp@artifex.com>
-Date: Wed, 21 Aug 2019 10:10:51 +0100
-Subject: [PATCH 2/2] PDF interpreter - review .forceput security
-
-Bug #701450 "Safer Mode Bypass by .forceput Exposure in .pdfexectoken"
-
-By abusing the error handler it was possible to get the PDFDEBUG portion
-of .pdfexectoken, which uses .forceput left readable.
-
-Add an executeonly appropriately to make sure that clause isn't readable
-no mstter what.
-
-Review all the uses of .forceput searching for similar cases, add
-executeonly as required to secure those. All cases in the PostScript
-support files seem to be covered already.
-
-CVE: CVE-2019-14817
-Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git]
-
-Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
----
- Resource/Init/pdf_base.ps | 2 +-
- Resource/Init/pdf_draw.ps | 14 +++++++-------
- Resource/Init/pdf_font.ps | 29 ++++++++++++++++-------------
- Resource/Init/pdf_main.ps | 6 +++---
- Resource/Init/pdf_ops.ps | 11 ++++++-----
- 5 files changed, 33 insertions(+), 29 deletions(-)
-
-diff --git a/Resource/Init/pdf_base.ps b/Resource/Init/pdf_base.ps
-index 1a218f4..cffde5c 100644
---- a/Resource/Init/pdf_base.ps
-+++ b/Resource/Init/pdf_base.ps
-@@ -157,7 +157,7 @@ currentdict /num-chars-dict .undef
- {
- dup ==only () = flush
- } ifelse % PDFSTEP
-- } if % PDFDEBUG
-+ } executeonly if % PDFDEBUG
- 2 copy .knownget {
- exch pop exch pop exch pop exec
- } {
-diff --git a/Resource/Init/pdf_draw.ps b/Resource/Init/pdf_draw.ps
-index e18a7c2..0a3924c 100644
---- a/Resource/Init/pdf_draw.ps
-+++ b/Resource/Init/pdf_draw.ps
-@@ -501,8 +501,8 @@ end
- ( Output may be incorrect.\n) pdfformaterror
- //pdfdict /.gs_warning_issued //true .forceput
- PDFSTOPONERROR { /gs /undefined signalerror } if
-- } if
-- }
-+ } executeonly if
-+ } executeonly
- ifelse
- } bind executeonly def
-
-@@ -1142,7 +1142,7 @@ currentdict end readonly def
- .setglobal
- pdfformaterror
- } executeonly ifelse
-- }
-+ } executeonly
- {
- currentglobal //pdfdict gcheck .setglobal
- //pdfdict /.Qqwarning_issued //true .forceput
-@@ -1150,8 +1150,8 @@ currentdict end readonly def
- pdfformaterror
- } executeonly ifelse
- end
-- } ifelse
-- } loop
-+ } executeonly ifelse
-+ } executeonly loop
- {
- (\n **** Error: File has unbalanced q/Q operators \(too many q's\)\n Output may be incorrect.\n)
- //pdfdict /.Qqwarning_issued .knownget
-@@ -1165,14 +1165,14 @@ currentdict end readonly def
- .setglobal
- pdfformaterror
- } executeonly ifelse
-- }
-+ } executeonly
- {
- currentglobal //pdfdict gcheck .setglobal
- //pdfdict /.Qqwarning_issued //true .forceput
- .setglobal
- pdfformaterror
- } executeonly ifelse
-- } if
-+ } executeonly if
- pop
-
- % restore pdfemptycount
-diff --git a/Resource/Init/pdf_font.ps b/Resource/Init/pdf_font.ps
-index 2df3303..6a6a5fe 100644
---- a/Resource/Init/pdf_font.ps
-+++ b/Resource/Init/pdf_font.ps
-@@ -638,7 +638,7 @@ currentdict end readonly def
- currentglobal 2 index dup gcheck setglobal
- /FontInfo 5 dict dup 5 1 roll .forceput
- setglobal
-- } if
-+ } executeonly if
- dup /GlyphNames2Unicode .knownget not {
- //true % No existing G2U, make one
- } {
-@@ -668,10 +668,12 @@ currentdict end readonly def
- pop % font-res font-dict encoding|null font-info
- pop % font-res font-dict encoding|null
- //false % We built a GlyphNames2Unicode table, don't need to process further
-- }{
-+ } executeonly
-+ {
- //true % name is not Identity-V or H, fail by falling through
- }ifelse
-- } {
-+ } executeonly
-+ {
- //true
- } ifelse % not a name, try as a dictionary (as specified)
-
-@@ -759,9 +761,9 @@ currentdict end readonly def
- PDFDEBUG {
- (.processToUnicode end) =
- } if
-- } if
-- } if
-- } stopped
-+ } executeonly if
-+ } executeonly if
-+ } executeonly stopped
- {
- .dstackdepth 1 countdictstack 1 sub
- {pop end} for
-@@ -1291,19 +1293,20 @@ currentdict /eexec_pdf_param_dict .undef
- //pdfdict /.Qqwarning_issued //true .forceput
- } executeonly if
- Q
-- } repeat
-+ } executeonly repeat
- Q
-- } PDFfile fileposition 2 .execn % Keep pdfcount valid.
-+ } executeonly PDFfile fileposition 2 .execn % Keep pdfcount valid.
- PDFfile exch setfileposition
-- } ifelse
-- } {
-+ } executeonly ifelse
-+ } executeonly
-+ {
- % PDF Type 3 fonts don't use .notdef
- % d1 implementation adjusts the width as needed
- 0 0 0 0 0 0
- pdfopdict /d1 get exec
- } ifelse
- end end
-- } bdef
-+ } executeonly bdef
- dup currentdict Encoding .processToUnicode
- currentdict end .completefont exch pop
- } bind executeonly odef
-@@ -2103,9 +2106,9 @@ currentdict /CMap_read_dict undef
- (Will continue, but content may be missing.) = flush
- } ifelse
- } if
-- } if
-+ } executeonly if
- /findresource cvx /undefined signalerror
-- } loop
-+ } executeonly loop
- } bind executeonly odef
-
- /buildCIDType0 { % <CIDFontType0-font-resource> buildCIDType0 <font>
-diff --git a/Resource/Init/pdf_main.ps b/Resource/Init/pdf_main.ps
-index 5305ea6..a59e63c 100644
---- a/Resource/Init/pdf_main.ps
-+++ b/Resource/Init/pdf_main.ps
-@@ -2749,15 +2749,15 @@ currentdict /PDF2PS_matrix_key undef
- .setglobal
- pdfformaterror
- } executeonly ifelse
-- }
-+ } executeonly
- {
- currentglobal //pdfdict gcheck .setglobal
- //pdfdict /.Qqwarning_issued //true .forceput
- .setglobal
- pdfformaterror
- } executeonly ifelse
-- } if
-- } if
-+ } executeonly if
-+ } executeonly if
- pop
- count PDFexecstackcount sub { pop } repeat
- (after exec) VMDEBUG
-diff --git a/Resource/Init/pdf_ops.ps b/Resource/Init/pdf_ops.ps
-index 285e582..6c1f100 100644
---- a/Resource/Init/pdf_ops.ps
-+++ b/Resource/Init/pdf_ops.ps
-@@ -186,14 +186,14 @@ currentdict /gput_always_allow .undef
- .setglobal
- pdfformaterror
- } executeonly ifelse
-- }
-+ } executeonly
- {
- currentglobal //pdfdict gcheck .setglobal
- //pdfdict /.Qqwarning_issued //true .forceput
- .setglobal
- pdfformaterror
- } executeonly ifelse
-- } if
-+ } executeonly if
- } bind executeonly odef
-
- % Save PDF gstate
-@@ -440,11 +440,12 @@ currentdict /gput_always_allow .undef
- dup type /booleantype eq {
- .currentSMask type /dicttype eq {
- .currentSMask /Processed 2 index .forceput
-+ } executeonly
-+ {
-+ .setSMask
-+ }ifelse
- } executeonly
- {
-- .setSMask
-- }ifelse
-- }{
- .setSMask
- }ifelse
-
---
-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/microblazeeb/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/microblazeeb/objarch.h
deleted file mode 100644
index 63232fdfa6..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/microblazeeb/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/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.27.bb b/meta/recipes-extended/ghostscript/ghostscript_9.52.bb
index 9e1f3e2f49..65135f5821 100644
--- a/meta/recipes-extended/ghostscript/ghostscript_9.27.bb
+++ b/meta/recipes-extended/ghostscript/ghostscript_9.52.bb
@@ -19,22 +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/gs927/${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-14811-0001.patch \
- file://CVE-2019-14817-0001.patch \
- file://CVE-2019-14817-0002.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} \
@@ -42,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] = "c3990a504a3a23b9babe9de00ed6597d"
-SRC_URI[sha256sum] = "9760e8bdd07a08dbd445188a6557cb70e60ccb6a5601f7dbfba0d225e28ce285"
+SRC_URI[md5sum] = "0f6964ab9b83a63b7e373f136243f901"
+SRC_URI[sha256sum] = "c2501d8e8e0814c4a5aa7e443e230e73d7af7f70287546f7b697e5ef49e32176"
# Put something like
#
@@ -74,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
@@ -82,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/grep/grep_3.3.bb b/meta/recipes-extended/grep/grep_3.4.bb
index 704a3ecd06..e176dd727b 100644
--- a/meta/recipes-extended/grep/grep_3.3.bb
+++ b/meta/recipes-extended/grep/grep_3.4.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
SRC_URI = "${GNU_MIRROR}/grep/grep-${PV}.tar.xz"
-SRC_URI[md5sum] = "05d0718a1b7cc706a4bdf8115363f1ed"
-SRC_URI[sha256sum] = "b960541c499619efd6afe1fa795402e4733c8e11ebf9fafccc0bb4bccdc5b514"
+SRC_URI[md5sum] = "111b117d22d6a7d049d6ae7505e9c4d2"
+SRC_URI[sha256sum] = "58e6751c41a7c25bfc6e9363a41786cff3ba5709cf11d5ad903cf7cce31cc3fb"
inherit autotools gettext texinfo pkgconfig
@@ -16,6 +16,7 @@ inherit autotools gettext texinfo pkgconfig
acpaths = "-I ./m4"
do_configure_prepend () {
+ sed -i -e '1s,#!@SHELL@,#!/bin/sh,' ${S}/src/egrep.sh
rm -f ${S}/m4/init.m4
}
@@ -41,5 +42,3 @@ ALTERNATIVE_${PN} = "grep egrep fgrep"
ALTERNATIVE_LINK_NAME[grep] = "${base_bindir}/grep"
ALTERNATIVE_LINK_NAME[egrep] = "${base_bindir}/egrep"
ALTERNATIVE_LINK_NAME[fgrep] = "${base_bindir}/fgrep"
-
-export CONFIG_SHELL="/bin/sh"
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/gzip/gzip_1.10.bb b/meta/recipes-extended/gzip/gzip_1.10.bb
index 50dad7bf58..9778e687e1 100644
--- a/meta/recipes-extended/gzip/gzip_1.10.bb
+++ b/meta/recipes-extended/gzip/gzip_1.10.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
PROVIDES_append_class-native = " gzip-replacement-native"
-RDEPENDS_${PN}-ptest += "make perl perl-ptest grep diffutils"
+RDEPENDS_${PN}-ptest += "make perl grep diffutils"
BBCLASSEXTEND = "native nativesdk"
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/images/core-image-testmaster.bb b/meta/recipes-extended/images/core-image-testmaster.bb
index 78295c5f0a..0faf18f5a4 100644
--- a/meta/recipes-extended/images/core-image-testmaster.bb
+++ b/meta/recipes-extended/images/core-image-testmaster.bb
@@ -8,7 +8,7 @@ inherit core-image
# normal linux utilities not busybox ones
IMAGE_INSTALL += "\
bash coreutils util-linux tar gzip bzip2 kmod \
- python-modules python-misc \
+ python3-modules python3-misc \
e2fsprogs e2fsprogs-mke2fs parted \
"
# we need a particular initramfs for live images
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/ip6tables.rules b/meta/recipes-extended/iptables/iptables/ip6tables.rules
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/meta/recipes-extended/iptables/iptables/ip6tables.rules
diff --git a/meta/recipes-extended/iptables/iptables/ip6tables.service b/meta/recipes-extended/iptables/iptables/ip6tables.service
new file mode 100644
index 0000000000..6c059fca49
--- /dev/null
+++ b/meta/recipes-extended/iptables/iptables/ip6tables.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=IPv6 Packet Filtering Framework
+Before=network-pre.target
+Wants=network-pre.target
+
+[Service]
+Type=oneshot
+ExecStart=@SBINDIR@/ip6tables-restore -w -- @RULESDIR@/ip6tables.rules
+ExecReload=@SBINDIR@/ip6tables-restore -w -- @RULESDIR@/ip6tables.rules
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta/recipes-extended/iptables/iptables/iptables.service b/meta/recipes-extended/iptables/iptables/iptables.service
index 041316e457..0eb3c343de 100644
--- a/meta/recipes-extended/iptables/iptables/iptables.service
+++ b/meta/recipes-extended/iptables/iptables/iptables.service
@@ -1,12 +1,12 @@
[Unit]
-Description=Packet Filtering Framework
+Description=IPv4 Packet Filtering Framework
Before=network-pre.target
Wants=network-pre.target
[Service]
Type=oneshot
-ExecStart=@SBINDIR@/iptables-restore /etc/iptables/iptables.rules
-ExecReload=@SBINDIR@/iptables-restore /etc/iptables/iptables.rules
+ExecStart=@SBINDIR@/iptables-restore -w -- @RULESDIR@/iptables.rules
+ExecReload=@SBINDIR@/iptables-restore -w -- @RULESDIR@/iptables.rules
RemainAfterExit=yes
[Install]
diff --git a/meta/recipes-extended/iptables/iptables_1.8.3.bb b/meta/recipes-extended/iptables/iptables_1.8.5.bb
index ff9fcb1b53..5976128807 100644
--- a/meta/recipes-extended/iptables/iptables_1.8.3.bb
+++ b/meta/recipes-extended/iptables/iptables_1.8.5.bb
@@ -4,25 +4,31 @@ filtering code in Linux."
HOMEPAGE = "http://www.netfilter.org/"
BUGTRACKER = "http://bugzilla.netfilter.org/"
LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263\
- file://iptables/iptables.c;beginline=13;endline=25;md5=c5cffd09974558cf27d0f763df2a12dc"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://iptables/iptables.c;beginline=13;endline=25;md5=c5cffd09974558cf27d0f763df2a12dc \
+"
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[sha256sum] = "d457d74512e63aa3f50336e0597d4023c0e3c6845594d38532efb6ebcb294309"
-SRC_URI[md5sum] = "29de711d15c040c402cf3038c69ff513"
-SRC_URI[sha256sum] = "a23cac034181206b4545f4e7e730e76e08b5f3dd78771ba9645a6756de9cdd80"
+SYSTEMD_SERVICE_${PN} = "\
+ iptables.service \
+ ${@bb.utils.contains('PACKAGECONFIG', 'ipv6', 'ip6tables.service', '', d)} \
+"
inherit autotools pkgconfig systemd
EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR}"
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
# libnfnetlink recipe is in meta-networking layer
@@ -32,12 +38,37 @@ PACKAGECONFIG[libnfnetlink] = "--enable-libnfnetlink,--disable-libnfnetlink,libn
PACKAGECONFIG[libnftnl] = "--enable-nftables,--disable-nftables,libnftnl"
do_configure_prepend() {
- # Remove some libtool m4 files
- # Keep ax_check_linker_flags.m4 which belongs to autoconf-archive.
- rm -f libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4
+ # Remove some libtool m4 files
+ # Keep ax_check_linker_flags.m4 which belongs to autoconf-archive.
+ rm -f libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4
+}
+
+IPTABLES_RULES_DIR ?= "${sysconfdir}/${BPN}"
+
+do_install_append() {
+ install -d ${D}${IPTABLES_RULES_DIR}
+ install -m 0644 ${WORKDIR}/iptables.rules ${D}${IPTABLES_RULES_DIR}
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/iptables.service ${D}${systemd_system_unitdir}
+
+ sed -i \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@RULESDIR@,${IPTABLES_RULES_DIR},g' \
+ ${D}${systemd_system_unitdir}/iptables.service
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'ipv6', 'true', 'false', d)} ; then
+ install -m 0644 ${WORKDIR}/ip6tables.rules ${D}${IPTABLES_RULES_DIR}
+ install -m 0644 ${WORKDIR}/ip6tables.service ${D}${systemd_system_unitdir}
+
+ sed -i \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@RULESDIR@,${IPTABLES_RULES_DIR},g' \
+ ${D}${systemd_system_unitdir}/ip6tables.service
+ fi
}
-PACKAGES += "${PN}-modules"
+PACKAGES =+ "${PN}-modules ${PN}-apply"
PACKAGES_DYNAMIC += "^${PN}-module-.*"
python populate_packages_prepend() {
@@ -47,30 +78,6 @@ python populate_packages_prepend() {
d.appendVar('RDEPENDS_' + metapkg, ' ' + ' '.join(modules))
}
-FILES_${PN} += "${datadir}/xtables"
-
-# 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"
-
-INSANE_SKIP_${PN}-module-xt-conntrack = "dev-so"
-INSANE_SKIP_${PN}-module-xt-ct = "dev-so"
-
-ALLOW_EMPTY_${PN}-modules = "1"
-
-do_install_append() {
-
- install -d ${D}${sysconfdir}/iptables
- install -m 0644 ${WORKDIR}/iptables.rules ${D}${sysconfdir}/iptables
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/iptables.service ${D}${systemd_system_unitdir}
-
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/iptables.service
-}
-
-SYSTEMD_SERVICE_${PN} = "iptables.service"
-
RDEPENDS_${PN} = "${PN}-module-xt-standard"
RRECOMMENDS_${PN} = " \
${PN}-modules \
@@ -83,4 +90,22 @@ RRECOMMENDS_${PN} = " \
kernel-module-nf-conntrack-ipv4 \
kernel-module-nf-nat \
kernel-module-ipt-masquerade \
+ ${@bb.utils.contains('PACKAGECONFIG', 'ipv6', '\
+ kernel-module-ip6table-filter \
+ kernel-module-ip6-tables \
+ ', '', d)} \
"
+
+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"
+
+ALLOW_EMPTY_${PN}-modules = "1"
+
+INSANE_SKIP_${PN}-module-xt-conntrack = "dev-so"
+INSANE_SKIP_${PN}-module-xt-ct = "dev-so"
diff --git a/meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch b/meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch
new file mode 100644
index 0000000000..d7367caf78
--- /dev/null
+++ b/meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch
@@ -0,0 +1,46 @@
+From 6e51d529988cfc0bb357751fd767e9f1478e2b81 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Thu, 13 Feb 2020 06:08:45 +0000
+Subject: [PATCH] rarpd: rdisc: Drop PrivateUsers
+
+Neither rarpd nor rdisc can gain the necessary capabilities with
+PrivateUsers enabled.
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ systemd/rarpd.service.in | 1 -
+ systemd/rdisc.service.in | 3 ++-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/systemd/rarpd.service.in b/systemd/rarpd.service.in
+index e600c10c93e6..f5d7621a7ce8 100644
+--- a/systemd/rarpd.service.in
++++ b/systemd/rarpd.service.in
+@@ -12,7 +12,6 @@ AmbientCapabilities=CAP_NET_RAW
+ DynamicUser=yes
+ PrivateTmp=yes
+ PrivateDevices=yes
+-PrivateUsers=yes
+ ProtectSystem=strict
+ ProtectHome=yes
+ ProtectControlGroups=yes
+diff --git a/systemd/rdisc.service.in b/systemd/rdisc.service.in
+index 4e2a1ec9d0e5..a71b87d36b37 100644
+--- a/systemd/rdisc.service.in
++++ b/systemd/rdisc.service.in
+@@ -8,9 +8,10 @@ After=network.target
+ EnvironmentFile=-/etc/sysconfig/rdisc
+ ExecStart=@sbindir@/rdisc -f -t $OPTIONS $SEND_ADDRESS $RECEIVE_ADDRESS
+
++CapabilityBoundingSet=CAP_NET_RAW
+ AmbientCapabilities=CAP_NET_RAW
+ PrivateTmp=yes
+-PrivateUsers=yes
++DynamicUser=yes
+ ProtectSystem=strict
+ ProtectHome=yes
+ ProtectControlGroups=yes
+--
+2.17.1
+
diff --git a/meta/recipes-extended/iputils/iputils_s20190709.bb b/meta/recipes-extended/iputils/iputils_s20190709.bb
deleted file mode 100644
index d8f2470d0c..0000000000
--- a/meta/recipes-extended/iputils/iputils_s20190709.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "Network monitoring tools"
-DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \
-tracepath, tracepath6, ping, ping6 and arping."
-HOMEPAGE = "https://github.com/iputils/iputils"
-SECTION = "console/network"
-
-LICENSE = "BSD & GPLv2+"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=55aa8c9fcad0691cef0ecd420361e390"
-
-DEPENDS = "gnutls"
-
-SRC_URI = "git://github.com/iputils/iputils"
-SRCREV = "13e00847176aa23683d68fce1d17ffb523510946"
-
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>s\d+)"
-
-PACKAGECONFIG ??= "libcap libgcrypt rarpd traceroute6"
-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[rarpd] = "-DBUILD_RARPD=true,-DBUILD_RARPD=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"
-
-inherit meson update-alternatives
-
-EXTRA_OEMESON += "--prefix=${root_prefix}/"
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE_${PN}-ping = "ping"
-ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
-
-SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-traceroute6 ${PN}-clockdiff ${PN}-tftpd ${PN}-rarpd ${PN}-rdisc ${PN}-ninfod"
-PACKAGES += "${SPLITPKGS}"
-
-ALLOW_EMPTY_${PN} = "1"
-ALLOW_EMPTY_${PN}-rarpd = "1"
-ALLOW_EMPTY_${PN}-traceroute6 = "1"
-RDEPENDS_${PN} += "${SPLITPKGS}"
-
-FILES_${PN} = ""
-FILES_${PN}-ping = "${base_bindir}/ping.${BPN}"
-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}-rarpd = "${base_sbindir}/rarpd"
-FILES_${PN}-rdisc = "${base_sbindir}/rdisc"
-FILES_${PN}-ninfod = "${base_sbindir}/ninfod ${sysconfdir}/init.d/ninfod.sh"
diff --git a/meta/recipes-extended/iputils/iputils_s20200821.bb b/meta/recipes-extended/iputils/iputils_s20200821.bb
new file mode 100644
index 0000000000..28dd194a12
--- /dev/null
+++ b/meta/recipes-extended/iputils/iputils_s20200821.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Network monitoring tools"
+DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \
+tracepath, tracepath6, ping, ping6 and arping."
+HOMEPAGE = "https://github.com/iputils/iputils"
+SECTION = "console/network"
+
+LICENSE = "BSD & GPLv2+"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=55aa8c9fcad0691cef0ecd420361e390"
+
+DEPENDS = "gnutls"
+
+SRC_URI = "git://github.com/iputils/iputils \
+ file://0001-rarpd-rdisc-Drop-PrivateUsers.patch \
+ "
+SRCREV = "23c3782ae0c7f9c6ae59dbed8ad9204f8758542b"
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>s\d+)"
+
+# Fixed in 2000-10-10, but the versioning of iputils
+# breaks the version order.
+CVE_CHECK_WHITELIST += "CVE-2000-1213 CVE-2000-1214"
+
+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[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"
+
+inherit meson systemd update-alternatives
+
+# Have to disable setcap/suid as its not deterministic
+EXTRA_OEMESON += "--prefix=${root_prefix}/ -DNO_SETCAP_OR_SUID=true"
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE_${PN}-ping = "ping"
+ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
+
+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}"
+
+ALLOW_EMPTY_${PN} = "1"
+RDEPENDS_${PN} += "${SPLITPKGS}"
+
+FILES_${PN} = ""
+FILES_${PN}-ping = "${base_bindir}/ping.${BPN}"
+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 ${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"
+
+SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '${PN}-ninfod', '', d)} \
+ ${PN}-rdisc"
+SYSTEMD_SERVICE_${PN}-ninfod = "ninfod.service"
+SYSTEMD_SERVICE_${PN}-rdisc = "rdisc.service"
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.0.bb b/meta/recipes-extended/libarchive/libarchive_3.4.3.bb
index c789cd44d2..dbfc067b93 100644
--- a/meta/recipes-extended/libarchive/libarchive_3.4.0.bb
+++ b/meta/recipes-extended/libarchive/libarchive_3.4.3.bb
@@ -2,7 +2,7 @@ SUMMARY = "Support for reading various archive formats"
DESCRIPTION = "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats"
HOMEPAGE = "http://www.libarchive.org/"
SECTION = "devel"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=fe01f5e02b1f0cc934d593a7b0ddceb6"
DEPENDS = "e2fsprogs-native"
@@ -28,14 +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 = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz"
-SRC_URI[md5sum] = "6046396255bd7cf6d0f6603a9bda39ac"
-SRC_URI[sha256sum] = "8643d50ed40c759f5412a3af4e353cffbce4fdf3b5cf321cb72cacf06b2d825e"
+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/libidn2_2.2.0.bb b/meta/recipes-extended/libidn/libidn2_2.3.0.bb
index bcbfdd85b9..7adf924aeb 100644
--- a/meta/recipes-extended/libidn/libidn2_2.2.0.bb
+++ b/meta/recipes-extended/libidn/libidn2_2.3.0.bb
@@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2d834ea7d480438ada04e5d846152395 \
file://lib/idn2.h.in;endline=27;md5=c2cd28d3f87260f157f022eabb83714f"
SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "b846d4d20e22b99d6f7387bb66e00a1f"
-SRC_URI[sha256sum] = "fc734732b506d878753ec6606982bf7b936e868c25c30ddb0d83f7d7056381fe"
+SRC_URI[md5sum] = "01c5084995295e519f95978ae9785ee0"
+SRC_URI[sha256sum] = "e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5"
DEPENDS = "virtual/libiconv libunistring"
@@ -22,7 +22,8 @@ EXTRA_OECONF += "--disable-rpath \
"
do_install_append() {
- sed -i -e 's|-L${STAGING_LIBDIR}||' ${D}${libdir}/pkgconfig/libidn2.pc
+ # Need to remove any duplicate whitespace too for reproducibility
+ sed -i -e 's|-L${STAGING_LIBDIR}||' -e 's/ */ /g' ${D}${libdir}/pkgconfig/libidn2.pc
}
LICENSE_${PN} = "(GPLv2+ | LGPLv3)"
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/libmnl/libmnl_1.0.4.bb b/meta/recipes-extended/libmnl/libmnl_1.0.4.bb
index 23262e8c6f..b55bb311f6 100644
--- a/meta/recipes-extended/libmnl/libmnl_1.0.4.bb
+++ b/meta/recipes-extended/libmnl/libmnl_1.0.4.bb
@@ -1,12 +1,12 @@
SUMMARY = "Minimalistic user-space Netlink utility library"
DESCRIPTION = "Minimalistic user-space library oriented to Netlink developers, providing \
functions for common tasks in parsing, validating, and constructing both the Netlink header and TLVs."
-HOMEPAGE = "http://www.netfilter.org/projects/libmnl/index.html"
+HOMEPAGE = "https://www.netfilter.org/projects/libmnl/index.html"
SECTION = "libs"
LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SRC_URI = "http://www.netfilter.org/projects/libmnl/files/libmnl-${PV}.tar.bz2;name=tar"
+SRC_URI = "https://netfilter.org/projects/libmnl/files/libmnl-${PV}.tar.bz2;name=tar"
SRC_URI[tar.md5sum] = "be9b4b5328c6da1bda565ac5dffadb2d"
SRC_URI[tar.sha256sum] = "171f89699f286a5854b72b91d06e8f8e3683064c5901fb09d954a9ab6f551f81"
diff --git a/meta/recipes-extended/libnsl/libnsl2_git.bb b/meta/recipes-extended/libnsl/libnsl2_git.bb
index c3a24face1..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 = "37c5ffe3038d42e9fa9ed232ad2cbca4d8f14681"
+SRCREV = "fbad7b36acaa89a54023930af70805649f962999"
SRC_URI = "git://github.com/thkukuk/libnsl \
"
diff --git a/meta/recipes-extended/libpipeline/libpipeline_1.5.1.bb b/meta/recipes-extended/libpipeline/libpipeline_1.5.3.bb
index a5802074b1..ee15fd0644 100644
--- a/meta/recipes-extended/libpipeline/libpipeline_1.5.1.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] = "4c8fe6cd85422baafd6e060f896c61bc"
-SRC_URI[sha256sum] = "d633706b7d845f08b42bc66ddbe845d57e726bf89298e2cee29f09577e2f902f"
+SRC_URI[sha256sum] = "5dbf08faf50fad853754293e57fd4e6c69bb8e486f176596d682c67e02a0adb0"
inherit pkgconfig autotools
diff --git a/meta/recipes-extended/libsolv/libsolv_0.7.6.bb b/meta/recipes-extended/libsolv/libsolv_0.7.14.bb
index 3df8993089..5179d4565a 100644
--- a/meta/recipes-extended/libsolv/libsolv_0.7.6.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 = "17ce4bc4fb52a0b32964f3b7d491c18177980be1"
+SRCREV = "b264537ea43ce39d93d8d97fcca16e97825beaa0"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -18,8 +18,8 @@ S = "${WORKDIR}/git"
inherit cmake
-PACKAGECONFIG ??= "rpm"
-PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON,,rpm"
+PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGE_CLASSES','package_rpm','rpm','',d)}"
+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/musl.patch b/meta/recipes-extended/libtirpc/libtirpc/musl.patch
deleted file mode 100644
index 0c3ce603ea..0000000000
--- a/meta/recipes-extended/libtirpc/libtirpc/musl.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Consider musl provided built-in defines
-
-Helps compile libtirpc with musl
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- ./tirpc/rpc/types.h.orig 2018-03-17 10:23:10.022055255 +0100
-+++ ./tirpc/rpc/types.h 2018-03-17 10:23:30.877751656 +0100
-@@ -66,7 +66,7 @@
- #define mem_free(ptr, bsize) free(ptr)
-
-
--#if defined __APPLE_CC__ || defined __FreeBSD__
-+#if defined __APPLE_CC__ || defined __FreeBSD__ || !defined(__GLIBC__)
- # define __u_char_defined
- # define __daddr_t_defined
- #endif
diff --git a/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb b/meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb
index 9c480b825f..10a324c3b6 100644
--- a/meta/recipes-extended/libtirpc/libtirpc_1.1.4.bb
+++ b/meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb
@@ -3,26 +3,24 @@ DESCRIPTION = "Libtirpc is a port of Suns Transport-Independent RPC library to L
SECTION = "libs/network"
HOMEPAGE = "http://sourceforge.net/projects/libtirpc/"
BUGTRACKER = "http://sourceforge.net/tracker/?group_id=183075&atid=903784"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3 \
file://src/netname.c;beginline=1;endline=27;md5=f8a8cd2cb25ac5aa16767364fb0e3c24"
PROVIDES = "virtual/librpc"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
- file://musl.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] = "f5d2a623e9dfbd818d2f3f3a4a878e3a"
-SRC_URI[sha256sum] = "2ca529f02292e10c158562295a1ffd95d2ce8af97820e3534fe1b0e3aec7561d"
+SRC_URI[md5sum] = "b25f9cc18bfad50f7c446c77f4ae00bb"
+SRC_URI[sha256sum] = "4278e9a5181d5af9cd7885322fdecebc444f9a3da87c526e7d47f7a12a37d1cc"
inherit autotools pkgconfig
EXTRA_OECONF = "--disable-gssapi"
do_install_append() {
- chown root:root ${D}${sysconfdir}/netconfig
+ chown root:root ${D}${sysconfdir}/netconfig
}
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb b/meta/recipes-extended/lighttpd/lighttpd_1.4.55.bb
index 2e83c821a6..7a255ce2f2 100644
--- a/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb
+++ b/meta/recipes-extended/lighttpd/lighttpd_1.4.55.bb
@@ -2,7 +2,7 @@ SUMMARY = "Lightweight high-performance web server"
HOMEPAGE = "http://www.lighttpd.net/"
BUGTRACKER = "http://redmine.lighttpd.net/projects/lighttpd/issues"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
SECTION = "net"
@@ -19,8 +19,8 @@ SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.t
file://0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch \
"
-SRC_URI[md5sum] = "7abc776243c811e9872f73ab38b7f8b5"
-SRC_URI[sha256sum] = "cf14cce2254a96d8fcb6d3181e1a3c29a8f832531c3e86ff6f2524ecda9a8721"
+SRC_URI[md5sum] = "be4bda2c28bcbdac6eb941528f6edf03"
+SRC_URI[sha256sum] = "6a0b50e9c9d5cc3d9e48592315c25a2d645858f863e1ccd120507a30ce21e927"
PACKAGECONFIG ??= "openssl pcre zlib \
${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
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-configure-time-check-for-getdents-getdents64-API.patch b/meta/recipes-extended/ltp/ltp/0001-Add-configure-time-check-for-getdents-getdents64-API.patch
deleted file mode 100644
index bfceadb190..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-Add-configure-time-check-for-getdents-getdents64-API.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 404dfeb4faef213b0450f173b60cd7080edec349 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 26 Jul 2019 10:32:29 -0700
-Subject: [PATCH 1/2] Add configure time check for getdents/getdents64 APIs
-
-glibc 2.30 has added wrapper for getdents64 this will help in detecting
-right condition to use fallback
-
-Check for getdents API as well while here
-
-Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-July/012954.html]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 ++
- testcases/kernel/syscalls/getdents/getdents.h | 8 ++++++--
- 2 files changed, 8 insertions(+), 2 deletions(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -65,6 +65,8 @@ AC_CHECK_FUNCS([ \
- fallocate \
- fchownat \
- fstatat \
-+ getdents \
-+ getdents64 \
- kcmp \
- mkdirat \
- mknodat \
---- a/testcases/kernel/syscalls/getdents/getdents.h
-+++ b/testcases/kernel/syscalls/getdents/getdents.h
-@@ -23,7 +23,7 @@
- #include <stdint.h>
- #include "test.h"
- #include "lapi/syscalls.h"
--
-+#include "config.h"
- /*
- * See fs/compat.c struct compat_linux_dirent
- */
-@@ -34,12 +34,17 @@ struct linux_dirent {
- char d_name[];
- };
-
-+#if HAVE_GETDENTS
-+#include <unistd.h>
-+#else
- static inline int
- getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int size)
- {
- return ltp_syscall(__NR_getdents, fd, dirp, size);
- }
-
-+#endif /* HAVE_GETDENTS */
-+
- struct linux_dirent64 {
- uint64_t d_ino;
- int64_t d_off;
-@@ -48,10 +53,13 @@ struct linux_dirent64 {
- char d_name[];
- };
-
-+#if HAVE_GETDENTS64
-+#include <unistd.h>
-+#else
- static inline int
- getdents64(unsigned int fd, struct linux_dirent64 *dirp64, unsigned int size)
- {
- return ltp_syscall(__NR_getdents64, fd, dirp64, size);
- }
--
-+#endif /* HAVE_GETDENTS64 */
- #endif /* GETDENTS_H */
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
new file mode 100644
index 0000000000..f2fc8ee958
--- /dev/null
+++ b/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
@@ -0,0 +1,32 @@
+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/timer_create/Makefile | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/testcases/kernel/syscalls/timer_create/Makefile b/testcases/kernel/syscalls/timer_create/Makefile
+index ada241fe1..d454b01e7 100644
+--- a/testcases/kernel/syscalls/timer_create/Makefile
++++ b/testcases/kernel/syscalls/timer_create/Makefile
+@@ -5,6 +5,10 @@ top_srcdir ?= ../../../..
+
+ include $(top_srcdir)/include/mk/testcases.mk
+
++ifeq ($(LIBC),musl)
++FILTER_OUT_MAKE_TARGETS := timer_create01 timer_create03
++endif
++
+ 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 b5c25c56a5..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,30 +1,39 @@
-From ec282980e6eee96f5b74aba464141f86049263e6 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)
+
+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 768ca46..e9d679a 100644
+index 768ca4606..e9d679a71 100644
--- a/Makefile
+++ b/Makefile
@@ -41,6 +41,11 @@ vpath %.mk $(top_srcdir)/mk:$(top_srcdir)/mk/include
@@ -39,29 +48,8 @@ index 768ca46..e9d679a 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 39d79c7..24a57d9 100644
---- a/testcases/kernel/Makefile
-+++ b/testcases/kernel/Makefile
-@@ -49,12 +49,15 @@ SUBDIRS += connectors \
- logging \
- mem \
- numa \
-- pty \
- sched \
- security \
- timers \
- tracing \
-
-+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 6a57d79..74bb933 100644
+index 6a57d79ee..74bb93370 100644
--- a/testcases/kernel/sched/Makefile
+++ b/testcases/kernel/sched/Makefile
@@ -23,5 +23,7 @@
@@ -74,76 +62,20 @@ index 6a57d79..74bb933 100644
+endif
include $(top_srcdir)/include/mk/generic_trunk_target.mk
diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile
-index 45a00cf..d1becd0 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 8c55a6b..f7cda62 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 66e9d56..ea8eb8a 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 68616a7..748754b 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
-+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 1881f75..266e0b8 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
++FILTER_OUT_DIRS += confstr fmtmsg getcontext rt_tgsigqueueinfo
+endif
+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
+ ifeq ($(UCLIBC),1)
+ FILTER_OUT_DIRS += profil
+ endif
--
-2.7.4
+2.26.2
diff --git a/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch b/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch
deleted file mode 100644
index cc40081300..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From e3a8502d0a4f8a44ddd02ca4b2efc097133fb9f7 Mon Sep 17 00:00:00 2001
-From: Mathias Fiedler <mathias.fiedler@aox-tech.de>
-Date: Fri, 23 Aug 2019 12:46:48 +0200
-Subject: [PATCH] cve-2017-17052: Avoid unsafe exits in threads
-
-According to manpage exit(3) calling exit is not thread-safe.
-And with glibc 2.28 (and probably also with glibc >=2.27) sometimes
-child processes created in fork_thread can get stuck on process exit in
-glibc's __run_exit_handlers trying to acquire some lock which was in
-locked state while the fork was created. This can happen when exit is
-called in mmap_thread concurrently to the fork.
-While the main process will still return with PASSED some of its
-children are left behind.
-
-Comparing the source code with the original program as described in the
-commit 2b7e8665b4ff51c034c55df3cff76518d1a9ee3a of linux kernel >=4.13
-the exits in mmap_thread and fork_thread should not be necessary to
-trigger the original bug.
-
-Therefore those exit calls are removed. The mmap_thread and fork_thread
-should still exit when their corresponding main thread in do_test_fork
-calls exit_group. The remaining exit in do_test_fork will be called in
-the main thread without any concurrent thread in the same process.
-
-Signed-off-by: Mathias Fiedler <mathias.fiedler@aox-tech.de>
-Acked-by: Cyril Hrubis <chrubis@suse.cz>
-Acked-by: Jan Stancek <jstancek@redhat.com>
-
-Upstream-Status: Backport
-[https://github.com/linux-test-project/ltp/commit/9f0b452c1af4bcb54da35711eb3fa77334a350b4]
-
-CVE: CVE-2017-17052
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
----
- testcases/cve/cve-2017-17052.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/testcases/cve/cve-2017-17052.c b/testcases/cve/cve-2017-17052.c
-index d7da7e919..18cd2a6d7 100644
---- a/testcases/cve/cve-2017-17052.c
-+++ b/testcases/cve/cve-2017-17052.c
-@@ -58,8 +58,6 @@ static void *mmap_thread(void *arg)
- for (;;) {
- SAFE_MMAP(NULL, 0x1000000, PROT_READ,
- MAP_POPULATE|MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
-- if (*do_exit)
-- exit(0);
- }
-
- return arg;
-@@ -67,9 +65,6 @@ static void *mmap_thread(void *arg)
-
- static void *fork_thread(void *arg)
- {
-- if (*do_exit)
-- exit(0);
--
- usleep(rand() % 10000);
- SAFE_FORK();
-
---
-2.17.1
-
diff --git a/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch b/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch
deleted file mode 100644
index 94f6f5a15a..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From fbeda82f440a0098be42dd668cbc47212a86ab48 Mon Sep 17 00:00:00 2001
-From: He Zhe <zhe.he@windriver.com>
-Date: Wed, 21 Aug 2019 16:27:24 +0800
-Subject: [PATCH] cve/meltdown.c: Fix kernel symbol finding
-
-meltdown case fails as below.
-safe_file_ops.c:219: BROK: Expected 3 conversions got 2 at meltdown.c:272
-
-find_kernel_symbol is defined to try twice with each of /proc/kallsyms and
-/boot/System.map-%s. Currently if the symbol is not found in /proc/kallsyms,
-when kernel option CONFIG_KALLSYMS_ALL is disabled, it would stop the case
-immediately due to SAFE_FILE_LINES_SCANF.
-
-This patch turns to use FILE_LINES_SCANF to give find_kernel_symbol second
-chance.
-
-[jstancek] Fix also condition introduced in 7709d2ae92ea, even if
- /proc/kallsyms is disabled, we still want to try System.map.
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
-Signed-off-by: Jan Stancek <jstancek@redhat.com>
-
-Upstream-Status: Backport
-[https://github.com/linux-test-project/ltp/commit/c2049b5c874bc071f8185bffb5fd7dcb042d9ec8]
-
-Remove the hunk for upstream 7709d2ae92ea ("cve/meltdown.c: abort the test if kallsyms was not enabled")
-that has been covered by this patch.
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
----
- testcases/cve/meltdown.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/testcases/cve/meltdown.c b/testcases/cve/meltdown.c
-index a53ea9b..22651a6 100644
---- a/testcases/cve/meltdown.c
-+++ b/testcases/cve/meltdown.c
-@@ -267,9 +267,15 @@ find_symbol_in_file(const char *filename, const char *symname)
- int ret, read;
- char fmt[strlen(symname) + 64];
-
-+ tst_res(TINFO, "Looking for %s in %s", symname, filename);
-+ if (access(filename, F_OK) == -1) {
-+ tst_res(TINFO, "%s not available", filename);
-+ return 0;
-+ }
-+
- sprintf(fmt, "%%lx %%c %s%%c", symname);
-
-- ret = SAFE_FILE_LINES_SCANF(filename, fmt, &addr, &type, &read);
-+ ret = FILE_LINES_SCANF(filename, fmt, &addr, &type, &read);
- if (ret)
- return 0;
-
-@@ -287,13 +293,11 @@ find_kernel_symbol(const char *name)
- if (addr)
- return addr;
-
-- tst_res(TINFO, "not found '%s' in /proc/kallsyms", name);
- if (uname(&utsname) < 0)
- tst_brk(TBROK | TERRNO, "uname");
-
- sprintf(systemmap, "/boot/System.map-%s", utsname.release);
-
-- tst_res(TINFO, "looking in '%s'\n", systemmap);
- addr = find_symbol_in_file(systemmap, name);
- return addr;
- }
-@@ -308,6 +312,9 @@ static void setup(void)
- saved_cmdline_addr = find_kernel_symbol("saved_command_line");
- tst_res(TINFO, "&saved_command_line == 0x%lx", saved_cmdline_addr);
-
-+ if (!saved_cmdline_addr)
-+ tst_brk(TCONF, "saved_command_line not found");
-+
- spec_fd = SAFE_OPEN("/proc/cmdline", O_RDONLY);
-
- memset(target_array, 1, sizeof(target_array));
---
-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-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch b/meta/recipes-extended/ltp/ltp/0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch
deleted file mode 100644
index 0e56c08255..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From a5046625eaeed2d3fba456c3ba84c6c141c2ad7c Mon Sep 17 00:00:00 2001
-From: He Zhe <zhe.he@windriver.com>
-Date: Thu, 29 Aug 2019 21:09:46 +0800
-Subject: [PATCH] syscall/rt_sigtimedwait01: Fix wrong sigset length for MIPS
-
-rt_sigtimedwait01 fails as follow on MIPS arches
-rt_sigtimedwait01 1 TFAIL : .../sigwaitinfo01.c:58: test_empty_set
-(.../sigwaitinfo01.c: 148): Unexpected failure:
-TEST_ERRNO=EINVAL(22): Invalid argument
-
-As this case purposely bypasses glibc, it should align with the size of kernel
-definition of sigset_t which is different from other arches.
-https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/mips/include/uapi/asm/signal.h#n15
-
-This patch turns to use _NSIG which is always right for all arches.
-
-Upstream-Status: Backport [a5046625eaeed2d3fba456c3ba84c6c141c2ad7c]
-
-Suggested-by: Jan Stancek <jstancek@redhat.com>
-Acked-by: Jan Stancek <jstancek@redhat.com>
-Acked-by: Cyril Hrubis <chrubis@suse.cz>
-Signed-off-by: He Zhe <zhe.he@windriver.com>
-Signed-off-by: Petr Vorel <pvorel@suse.cz>
----
- testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c
-index 5a32ce1..6a30c27 100644
---- a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c
-+++ b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c
-@@ -128,9 +128,8 @@ static int my_sigtimedwait(const sigset_t * set, siginfo_t * info,
- static int my_rt_sigtimedwait(const sigset_t * set, siginfo_t * info,
- struct timespec *timeout)
- {
--
-- /* The last argument is (number_of_signals)/(bits_per_byte), which are 64 and 8, resp. */
-- return ltp_syscall(__NR_rt_sigtimedwait, set, info, timeout, 8);
-+ /* _NSIG is always the right number of bits of signal map for all arches */
-+ return ltp_syscall(__NR_rt_sigtimedwait, set, info, timeout, _NSIG/8);
- }
- #endif
-
---
-2.7.4
-
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-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch b/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch
deleted file mode 100644
index 6ea26150fb..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From e747d0456adc080a1d31fb653bda9dc491795c80 Mon Sep 17 00:00:00 2001
-From: Jan Stancek <jstancek@redhat.com>
-Date: Sun, 16 Jun 2019 11:14:16 +0200
-Subject: [PATCH] syscalls/tgkill03: wait for defunct tid to get detached
-
-Case where defunct tid is used has been observed to sporadically fail:
- tgkill03.c:96: FAIL: Defunct tid should have failed with ESRCH: SUCCESS
-
-glibc __pthread_timedjoin_ex() waits for CLONE_CHILD_CLEARTID to clear tid,
-and then resumes. Kernel clears it (glibc pd->tid) at:
- do_exit
- exit_mm
- mm_release
- put_user(0, tsk->clear_child_tid);
-
-but kernel tid is still valid, presumably until:
- release_task
- __exit_signal
- __unhash_process
- detach_pid
-
-To avoid race wait until /proc/<pid>/task/<tid> disappears.
-
-Signed-off-by: Jan Stancek <jstancek@redhat.com>
-Reviewed-by: Li Wang <liwang@redhat.com>
-Acked-by: Sumit Garg <sumit.garg@linaro.org>
-
-Upstream-Status: Backport
-[https://github.com/linux-test-project/ltp/commit/e747d0456adc080a1d31fb653bda9dc491795c80]
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
----
- testcases/kernel/syscalls/tgkill/tgkill03.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/testcases/kernel/syscalls/tgkill/tgkill03.c b/testcases/kernel/syscalls/tgkill/tgkill03.c
-index f5bbdc5..593a217 100644
---- a/testcases/kernel/syscalls/tgkill/tgkill03.c
-+++ b/testcases/kernel/syscalls/tgkill/tgkill03.c
-@@ -7,6 +7,7 @@
-
- #include <pthread.h>
- #include <pwd.h>
-+#include <stdio.h>
- #include <sys/types.h>
-
- #include "tst_safe_pthread.h"
-@@ -42,6 +43,7 @@ static void setup(void)
- {
- sigset_t sigusr1;
- pthread_t defunct_thread;
-+ char defunct_tid_path[PATH_MAX];
-
- sigemptyset(&sigusr1);
- sigaddset(&sigusr1, SIGUSR1);
-@@ -55,8 +57,9 @@ static void setup(void)
- TST_CHECKPOINT_WAIT(0);
-
- SAFE_PTHREAD_CREATE(&defunct_thread, NULL, defunct_thread_func, NULL);
--
- SAFE_PTHREAD_JOIN(defunct_thread, NULL);
-+ sprintf(defunct_tid_path, "/proc/%d/task/%d", getpid(), defunct_tid);
-+ TST_RETRY_FN_EXP_BACKOFF(access(defunct_tid_path, R_OK), -1, 15);
- }
-
- static void cleanup(void)
-@@ -108,4 +111,5 @@ static struct tst_test test = {
- .setup = setup,
- .cleanup = cleanup,
- .test = run,
-+ .timeout = 20,
- };
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch b/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch
deleted file mode 100644
index f4f87f38ab..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-testcases-use-python3-everywhere-to-run-python-scrip.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 0463d793566772a606255957915f99d166d5740c Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 28 Aug 2019 18:30:23 +0200
-Subject: [PATCH] testcases: use python3 everywhere to run python scripts
-
-The scripts themselves have #!/usr/bin/python3 in them,
-so I trust they are already py3-compatible.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- testcases/kernel/power_management/runpwtests05.sh | 2 +-
- .../power_management/runpwtests_exclusive01.sh | 2 +-
- .../power_management/runpwtests_exclusive02.sh | 2 +-
- .../power_management/runpwtests_exclusive03.sh | 2 +-
- .../power_management/runpwtests_exclusive04.sh | 2 +-
- .../power_management/runpwtests_exclusive05.sh | 2 +-
- testcases/network/nfsv4/acl/runtest | 14 +++++++-------
- testcases/realtime/func/pi-tests/run_auto.sh | 6 +++---
- 8 files changed, 16 insertions(+), 16 deletions(-)
-
-diff --git a/testcases/kernel/power_management/runpwtests05.sh b/testcases/kernel/power_management/runpwtests05.sh
-index 8a7d0f6e0..43e234d01 100755
---- a/testcases/kernel/power_management/runpwtests05.sh
-+++ b/testcases/kernel/power_management/runpwtests05.sh
-@@ -35,7 +35,7 @@ else
- max_sched_smt=1
- fi
-
--tst_test_cmds python
-+tst_test_cmds python3
-
- if ! grep sched_debug -qw /proc/cmdline ; then
- tst_brkm TCONF "Kernel cmdline parameter 'sched_debug' needed," \
-diff --git a/testcases/kernel/power_management/runpwtests_exclusive01.sh b/testcases/kernel/power_management/runpwtests_exclusive01.sh
-index ec78319e2..9fefcbf6e 100755
---- a/testcases/kernel/power_management/runpwtests_exclusive01.sh
-+++ b/testcases/kernel/power_management/runpwtests_exclusive01.sh
-@@ -35,7 +35,7 @@ else
- max_sched_smt=1
- fi
-
--tst_test_cmds python
-+tst_test_cmds python3
-
- hyper_threaded=$(is_hyper_threaded)
- multi_socket=$(is_multi_socket)
-diff --git a/testcases/kernel/power_management/runpwtests_exclusive02.sh b/testcases/kernel/power_management/runpwtests_exclusive02.sh
-index e107fce35..2cd0ecb05 100755
---- a/testcases/kernel/power_management/runpwtests_exclusive02.sh
-+++ b/testcases/kernel/power_management/runpwtests_exclusive02.sh
-@@ -33,7 +33,7 @@ else
- max_sched_smt=1
- fi
-
--tst_test_cmds python
-+tst_test_cmds python3
-
- hyper_threaded=$(is_hyper_threaded)
- multi_socket=$(is_multi_socket)
-diff --git a/testcases/kernel/power_management/runpwtests_exclusive03.sh b/testcases/kernel/power_management/runpwtests_exclusive03.sh
-index 490344bb3..ab3a5d11d 100755
---- a/testcases/kernel/power_management/runpwtests_exclusive03.sh
-+++ b/testcases/kernel/power_management/runpwtests_exclusive03.sh
-@@ -35,7 +35,7 @@ else
- max_sched_smt=1
- fi
-
--tst_test_cmds python
-+tst_test_cmds python3
-
- hyper_threaded=$(is_hyper_threaded)
- multi_socket=$(is_multi_socket)
-diff --git a/testcases/kernel/power_management/runpwtests_exclusive04.sh b/testcases/kernel/power_management/runpwtests_exclusive04.sh
-index 978ca02ae..438ef603f 100755
---- a/testcases/kernel/power_management/runpwtests_exclusive04.sh
-+++ b/testcases/kernel/power_management/runpwtests_exclusive04.sh
-@@ -27,7 +27,7 @@ export TST_TOTAL=2
- # Checking test environment
- check_kervel_arch
-
--tst_test_cmds python
-+tst_test_cmds python3
-
- hyper_threaded=$(is_hyper_threaded)
- multi_socket=$(is_multi_socket)
-diff --git a/testcases/kernel/power_management/runpwtests_exclusive05.sh b/testcases/kernel/power_management/runpwtests_exclusive05.sh
-index a0dad5834..3a9afdbf2 100755
---- a/testcases/kernel/power_management/runpwtests_exclusive05.sh
-+++ b/testcases/kernel/power_management/runpwtests_exclusive05.sh
-@@ -35,7 +35,7 @@ else
- max_sched_smt=1
- fi
-
--tst_test_cmds python
-+tst_test_cmds python3
-
- hyper_threaded=$(is_hyper_threaded)
- multi_socket=$(is_multi_socket)
-diff --git a/testcases/network/nfsv4/acl/runtest b/testcases/network/nfsv4/acl/runtest
-index d2e1b4c49..a859e85bc 100755
---- a/testcases/network/nfsv4/acl/runtest
-+++ b/testcases/network/nfsv4/acl/runtest
-@@ -22,7 +22,7 @@ do
- done
-
- # creation of users on the remote machine (removed only at the end of the tests)
--rsh -n $REMOTEHOST python $PWD/create_users.py -u 50 -g 50
-+rsh -n $REMOTEHOST python3 $PWD/create_users.py -u 50 -g 50
-
- echo "Starting ACL testing"
-
-@@ -51,19 +51,19 @@ echo "Basic tests finished"
-
- echo "LONG ACL TEST"
- echo "creating necessary users and groups"
--python create_users.py -u 50 -g 50
-+python3 create_users.py -u 50 -g 50
- echo "creating necessary users and groups on the remote host"
- mkdir $NFSMNTDIR/lacl-testdir
--python test_long_acl.py -l $MAXLENGTH -p $NFSMNTDIR/lacl-testdir
-+python3 test_long_acl.py -l $MAXLENGTH -p $NFSMNTDIR/lacl-testdir
- rm -rf $NFSMNTDIR/lacl-testdir
- echo "Long ACL test OK with $MAXLENGTH entries"
- echo "ACL STRESSING TEST"
--python setacl_stress.py -n 100 -u $USER_NB -g $GRP_NB -f $FILE_NB -p $NFSMNTDIR
-+python3 setacl_stress.py -n 100 -u $USER_NB -g $GRP_NB -f $FILE_NB -p $NFSMNTDIR
-
- # remove local an remote users
--python cleanusers.py
--python cleangroups.py
--rsh -n $REMOTEHOST python $PWD/cleanusers.py
-+python3 cleanusers.py
-+python3 cleangroups.py
-+rsh -n $REMOTEHOST python3 $PWD/cleanusers.py
-
- echo "Test OK"
-
-diff --git a/testcases/realtime/func/pi-tests/run_auto.sh b/testcases/realtime/func/pi-tests/run_auto.sh
-index d13026049..277988568 100755
---- a/testcases/realtime/func/pi-tests/run_auto.sh
-+++ b/testcases/realtime/func/pi-tests/run_auto.sh
-@@ -15,15 +15,15 @@ $SCRIPTS_DIR/run_c_files.sh $profile testpi-0
-
- export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-1.log"
- $SCRIPTS_DIR/run_c_files.sh $profile testpi-1
--PYTHONPATH=../../ python parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE
-+PYTHONPATH=../../ python3 parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE
-
- export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-2.log"
- $SCRIPTS_DIR/run_c_files.sh $profile testpi-2
--PYTHONPATH=../../ python parse-testpi2.py $LOG_FILE 2>&1 | tee -a $LOG_FILE
-+PYTHONPATH=../../ python3 parse-testpi2.py $LOG_FILE 2>&1 | tee -a $LOG_FILE
-
- export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-4.log"
- $SCRIPTS_DIR/run_c_files.sh $profile testpi-4
--PYTHONPATH=../../ python parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE
-+PYTHONPATH=../../ python3 parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE
-
-
- export LOG_FILE=""
diff --git a/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch b/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch
deleted file mode 100644
index c936b788fe..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 156776a3e29491b363fdc9811912e1298655d060 Mon Sep 17 00:00:00 2001
-From: Steven Price <steven.price@arm.com>
-Date: Fri, 19 Jul 2019 13:48:17 +0100
-Subject: [PATCH] ustat02: Fix EFAULT in 32bit compatibility mode
-
-The size of dev_t is larger than 32 bits which causes the dev argument
-to be passed incorrectly. On Arm this means that the EFAULT test case
-actually returns EINVAL because the device number isn't recognised.
-
-Signed-off-by: Steven Price <steven.price@arm.com>
-Acked-by: Li Wang <liwang@redhat.com>
-
-Upstream-Status: Backport
-[https://github.com/linux-test-project/ltp/commit/156776a3e29491b363fdc9811912e1298655d060]
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
----
- testcases/kernel/syscalls/ustat/ustat02.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/testcases/kernel/syscalls/ustat/ustat02.c b/testcases/kernel/syscalls/ustat/ustat02.c
-index 9bbe4f3..1a0e9e0 100644
---- a/testcases/kernel/syscalls/ustat/ustat02.c
-+++ b/testcases/kernel/syscalls/ustat/ustat02.c
-@@ -36,7 +36,7 @@ int TST_TOTAL = ARRAY_SIZE(tc);
-
- void run(unsigned int test)
- {
-- TEST(tst_syscall(__NR_ustat, *tc[test].dev, tc[test].buf));
-+ TEST(tst_syscall(__NR_ustat, (unsigned int)*tc[test].dev, tc[test].buf));
-
- if ((TST_RET == -1) && (TST_ERR == tc[test].exp_errno))
- tst_res(TPASS | TTERRNO, "ustat(2) expected failure");
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch b/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch
deleted file mode 100644
index 12e47eb2b6..0000000000
--- a/meta/recipes-extended/ltp/ltp/0002-check-for-RES_USE_INET6-during-configure.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 7bc134545b7beb09717a60541530c20a1a5740d3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 26 Jul 2019 10:55:28 -0700
-Subject: [PATCH 2/2] check for RES_USE_INET6 during configure
-
-glibc 2.30 has remove RES_USE_INET6 define which has been on its way out
-since 2.26 release, this check ensures that we detect it before using it
-
-Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-July/012955.html]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 13 +++++++++++++
- testcases/network/multicast/mc_gethost/mc_gethost.c | 6 ++++++
- 2 files changed, 19 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 2255b5c181..ed7acccb01 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -91,6 +91,19 @@ AC_CHECK_FUNCS([ \
- vmsplice \
- ])
-
-+#check defines
-+AC_MSG_CHECKING([for RES_USE_INET6])
-+AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <resolv.h>]],
-+ [[char dummy[RES_USE_INET6];]])],
-+ [
-+ AC_MSG_RESULT([yes])
-+ AC_DEFINE_UNQUOTED([HAVE_RES_USE_INET6], 1, [Define to 1 if you have the RES_USE_INET6 macro.])
-+ ],
-+ [
-+ AC_MSG_RESULT([no])
-+ AC_DEFINE_UNQUOTED([HAVE_RES_USE_INET6], 0, [Define to 1 if you have the RES_USE_INET6 macro.])
-+ ]
-+)
- # Tools knobs
-
- # Expect
-diff --git a/testcases/network/multicast/mc_gethost/mc_gethost.c b/testcases/network/multicast/mc_gethost/mc_gethost.c
-index 9cc15d086b..d1cae5441a 100644
---- a/testcases/network/multicast/mc_gethost/mc_gethost.c
-+++ b/testcases/network/multicast/mc_gethost/mc_gethost.c
-@@ -17,6 +17,8 @@
- #include <string.h>
- #include <stdlib.h>
-
-+#include "config.h"
-+
- #ifndef LOG_PERROR
- #define LOG_PERROR 0
- #endif
-@@ -50,8 +52,12 @@ usage:
- argv++, argc--;
- }
- if (argc >= 1 && !strcmp(*argv, "-6")) {
-+#if HAVE_RES_USE_INET6
- af = AF_INET6, size = IN6ADDRSZ;
- _res.options |= RES_USE_INET6;
-+#else
-+ af = AF_INET, size = INADDRSZ;
-+#endif
- argv++, argc--;
- }
- if (argc >= 1 && !strcmp(*argv, "-f")) {
---
-2.22.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 c0f69ecf5f..0000000000
--- a/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 29ce9fdab3bd34e69d73b5b890795559c06553f7 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 dd289cf..76aa969 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;
- 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)
- {
-@@ -115,6 +117,7 @@ static void verify_accept4(unsigned int nr)
- SAFE_CONNECT(connfd, (struct sockaddr *)&conn_addr, sizeof(conn_addr));
- addrlen = sizeof(claddr);
-
-+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- #if !(__GLIBC_PREREQ(2, 10))
- TEST(accept4_01(listening_fd, (struct sockaddr *)&claddr, &addrlen,
- tcase->cloexec | tcase->nonblock));
-@@ -122,6 +125,10 @@ static void verify_accept4(unsigned int nr)
- TEST(accept4(listening_fd, (struct sockaddr *)&claddr, &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)
- tst_brk(TCONF, "syscall __NR_accept4 not supported");
---
-2.7.4
-
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/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch b/meta/recipes-extended/ltp/ltp/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch
deleted file mode 100644
index 8704e5ffe8..0000000000
--- a/meta/recipes-extended/ltp/ltp/0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 794933b38354a2612cf2c471f11798b306f35315 Mon Sep 17 00:00:00 2001
-From: Jan Stancek <jstancek@redhat.com>
-Date: Mon, 20 May 2019 20:47:20 +0200
-Subject: [PATCH] shmctl01: don't use hardcoded index == 0 for SHM_STAT test
-
-Test fails on SHM_STAT testcase:
- shmctl01 5 TFAIL : shmctl01.c:173: shmctl01 call failed
- errno = 22 : Invalid argument
- shmctl(0, SHM_STAT, 0x601060) = -EINVAL
-
-since following commit:
- commit 99db46ea292780cd978d56932d9445b1e8bdafe8
- Author: Manfred Spraul <manfred@colorfullife.com>
- Date: Tue May 14 15:46:36 2019 -0700
- ipc: do cyclic id allocation for the ipc object.
-
-Don't rely on index 0 being always available, but instead
-use (maximum) index returned by SHM_INFO.
-
-Signed-off-by: Jan Stancek <jstancek@redhat.com>
-Reviewed-by: Petr Vorel <pvorel@suse.cz>
-Acked-by: Cyril Hrubis <chrubis@suse.cz>
-
-Upstream-Status: Backport
-[https://github.com/linux-test-project/ltp/commit/db0a43d9388be2c347a8306751bbe6bec086d062]
-
-Signed-off-by: Hongzhi Song <hongzhi.song@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- testcases/kernel/syscalls/ipc/shmctl/shmctl01.c | 21 ++++++++++++++++++---
- 1 file changed, 18 insertions(+), 3 deletions(-)
-
-diff --git a/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c b/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c
-index 1b46977..52bf23a 100644
---- a/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c
-+++ b/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c
-@@ -79,6 +79,7 @@ static void func_info(int ret);
-
- /* Check routine for SHM_STAT */
- static void func_sstat(int ret);
-+static void func_sstat_setup(void);
-
- /* Check routine for SHM_LOCK */
- static void func_lock(int ret);
-@@ -110,7 +111,7 @@ static struct test_case_t {
- #endif
- {&shm_id_1, IPC_SET, &buf, func_set, set_setup},
- {&shm_id_1, IPC_INFO, (struct shmid_ds *) &info, func_info, NULL},
-- {&shm_index, SHM_STAT, &buf, func_sstat, NULL},
-+ {&shm_index, SHM_STAT, &buf, func_sstat, func_sstat_setup},
- {&shm_id_1, SHM_LOCK, NULL, func_lock, NULL},
- {&shm_id_1, SHM_UNLOCK, NULL, func_unlock, NULL},
- {&shm_id_1, IPC_RMID, NULL, func_rmid, NULL},
-@@ -407,9 +408,23 @@ static void func_info(int ret)
- static void func_sstat(int ret)
- {
- if (ret >= 0)
-- tst_resm(TPASS, "get correct shared memory id");
-+ tst_resm(TPASS, "get correct shared memory id for index: %d",
-+ shm_index);
- else
-- tst_resm(TFAIL, "shared memory id is incorrect");
-+ tst_resm(TFAIL, "shared memory id is incorrect, index: %d",
-+ shm_index);
-+}
-+
-+static void func_sstat_setup(void)
-+{
-+ struct shm_info tmp;
-+ int ret;
-+
-+ ret = shmctl(shm_id_1, SHM_INFO, (void *)&tmp);
-+ if (ret < 0)
-+ tst_resm(TFAIL|TERRNO, "shmctl(SHM_INFO)");
-+ else
-+ shm_index = ret;
- }
-
- static void func_lock(int ret)
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch b/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch
deleted file mode 100644
index 9cd188f656..0000000000
--- a/meta/recipes-extended/ltp/ltp/0011-direct_io-diotest4-drop-MAP_FIXED.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From f210d7e19b721041f31b7f258a169f89dc850303 Mon Sep 17 00:00:00 2001
-From: Jan Stancek <jstancek@redhat.com>
-Date: Thu, 4 Jul 2019 16:45:23 +0200
-Subject: [PATCH] direct_io/diotest4: drop MAP_FIXED
-
-Hongzhi reports that this test is failing on mips64 with 5.1+:
- diotest4 10 TBROK : diotest4.c:368: can't mmap file: Invalid argument
- diotest4 11 TBROK : diotest4.c:368: Remaining cases broken
-I could reproduce it on emulated 5kc-malta, running 5.2.0-rc7.
-
-Test is trying to map into area immediately following heap as MAP_SHARED,
-but it used wrong alignment (fixed by 'lapi/mmap.h: include config.h').
-
-Usage of MAP_FIXED seems unnecessary, so drop that too and let the kernel
-pick an address.
-
-Reported-by: Hongzhi.Song <hongzhi.song@windriver.com>
-Signed-off-by: Jan Stancek <jstancek@redhat.com>
-Acked-by: Cyril Hrubis <chrubis@suse.cz>
-
-Upstream-Status: Backport
-[https://github.com/linux-test-project/ltp/commit/f5444eeeabf252b8884b9465d277b6af853819e3]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- testcases/kernel/io/direct_io/diotest4.c | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/testcases/kernel/io/direct_io/diotest4.c b/testcases/kernel/io/direct_io/diotest4.c
-index e4616e4..bf200cd 100644
---- a/testcases/kernel/io/direct_io/diotest4.c
-+++ b/testcases/kernel/io/direct_io/diotest4.c
-@@ -352,18 +352,14 @@ int main(int argc, char *argv[])
- total++;
-
- /* Test-10: read, write to a mmaped file */
-- shm_base = (char *)(((long)sbrk(0) + (shmsz - 1)) & ~(shmsz - 1));
-- if (shm_base == NULL) {
-- tst_brkm(TBROK, cleanup, "sbrk failed: %s", strerror(errno));
-- }
- offset = 4096;
- count = bufsize;
- if ((fd = open(filename, O_DIRECT | O_RDWR)) < 0) {
- tst_brkm(TBROK, cleanup, "can't open %s: %s",
- filename, strerror(errno));
- }
-- shm_base = mmap(shm_base, 0x100000, PROT_READ | PROT_WRITE,
-- MAP_SHARED | MAP_FIXED, fd, 0);
-+ shm_base = mmap(0, 0x100000, PROT_READ | PROT_WRITE,
-+ MAP_SHARED, fd, 0);
- if (shm_base == (caddr_t) - 1) {
- tst_brkm(TBROK, cleanup, "can't mmap file: %s",
- strerror(errno));
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch b/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch
deleted file mode 100644
index aecbc80e9b..0000000000
--- a/meta/recipes-extended/ltp/ltp/0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 4ac747c1f7ff8e2ec2567d6672822e95a9b56e55 Mon Sep 17 00:00:00 2001
-From: "Hongzhi.Song" <hongzhi.song@windriver.com>
-Date: Mon, 15 Jul 2019 03:39:06 -0400
-Subject: [PATCH] getrlimit03: adjust a bit of code to compatiable with mips32
-
-Error info:
-getrlimit03.c:104: FAIL: __NR_prlimit64(0) had rlim_cur =
-ffffffffffffffff but __NR_getrlimit(0) had rlim_cur = 7fffffff
-
-According to kernel code: [arch/mips/include/uapi/asm/resource.h]
-RLIM_INFINITY is set to 0x7fffffffUL instead of ULONG_MAX on mips32.
-
- /*
- * SuS says limits have to be unsigned.
- * Which makes a ton more sense anyway,
- * but we keep the old value on MIPS32,
- * for compatibility:
- */
- #ifndef __mips64
- # define RLIM_INFINITY 0x7fffffffUL
- #endif
-
-Adding conditional statement about mips to fix this.
-
-Signed-off-by: Jan Stancek <jstancek@redhat.com>
-Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
-
-Upstream-Status: Backport
-[https://github.com/linux-test-project/ltp/commit/7a3bca63cd7f059d490b6274f0fdf3247be93fde]
-
-Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
----
- testcases/kernel/syscalls/getrlimit/getrlimit03.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/testcases/kernel/syscalls/getrlimit/getrlimit03.c b/testcases/kernel/syscalls/getrlimit/getrlimit03.c
-index e4d56c4..319bc49 100644
---- a/testcases/kernel/syscalls/getrlimit/getrlimit03.c
-+++ b/testcases/kernel/syscalls/getrlimit/getrlimit03.c
-@@ -26,6 +26,7 @@
-
- #include "tst_test.h"
- #include "lapi/syscalls.h"
-+#include "lapi/abisize.h"
-
- /**
- * Linux provides an "old" getrlimit syscall handler that uses signed long,
-@@ -61,7 +62,12 @@ struct rlimit_ulong {
- unsigned long rlim_cur;
- unsigned long rlim_max;
- };
--const unsigned long RLIM_INFINITY_UL = ULONG_MAX;
-+
-+#if defined(__mips__) && defined(TST_ABI32)
-+ const unsigned long RLIM_INFINITY_UL = 0x7fffffffUL;
-+#else
-+ const unsigned long RLIM_INFINITY_UL = ULONG_MAX;
-+#endif
-
- static int getrlimit_ulong(int resource, struct rlimit_ulong *rlim)
- {
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp_20190517.bb b/meta/recipes-extended/ltp/ltp_20200515.bb
index 4650715607..0c7044d044 100644
--- a/meta/recipes-extended/ltp/ltp_20190517.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,47 +27,36 @@ CFLAGS_append_x86-64 = " -fomit-frame-pointer"
CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__"
CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__"
-SRCREV = "ac33ef87f0b9dc56533026435be3ea8c67ce86d2"
+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://0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch \
- file://0011-direct_io-diotest4-drop-MAP_FIXED.patch \
- file://0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch \
- file://0001-Add-configure-time-check-for-getdents-getdents64-API.patch \
- file://0002-check-for-RES_USE_INET6-during-configure.patch \
- file://0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch \
- file://0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch \
- file://0001-cve-meltdown.c-Fix-kernel-symbol-finding.patch \
- file://0001-testcases-use-python3-everywhere-to-run-python-scrip.patch \
- file://0001-syscall-rt_sigtimedwait01-Fix-wrong-sigset-length-fo.patch \
- file://0001-cve-2017-17052-Avoid-unsafe-exits-in-threads.patch \
+ file://0001-Add-more-musl-exclusions.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
@@ -76,29 +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} = "\
- acl \
- at \
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 \
@@ -109,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.8.7.bb b/meta/recipes-extended/man-db/man-db_2.9.3.bb
index 083b2374aa..0e6016a73c 100644
--- a/meta/recipes-extended/man-db/man-db_2.8.7.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] = "ec0b23c8314a1654c4d059b2c18ce43d"
-SRC_URI[sha256sum] = "b9cd5bb996305d08bfe9e1114edc30b4c97be807093b88af8033ed1cf9beb326"
+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.01.bb b/meta/recipes-extended/man-pages/man-pages_5.08.bb
index 28525f4ba7..caf9320a67 100644
--- a/meta/recipes-extended/man-pages/man-pages_5.01.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"
-SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/Archive/${BP}.tar.gz"
+LIC_FILES_CHKSUM = "file://README;md5=207f70f56526417514ac46b6680e314f"
+SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "38abead776a506109e128ab96bcbbe58"
-SRC_URI[sha256sum] = "070bef794c6826b3fb3965d1a2efdb46c25cb37c06c715987f88a50906cd5b6f"
+SRC_URI[sha256sum] = "6e0b8ae23ee9467cee701f23dea908257a93e5fffa9e261b19a23efbd27e84a2"
inherit manpages
diff --git a/meta/recipes-extended/mc/files/nomandate.patch b/meta/recipes-extended/mc/files/nomandate.patch
new file mode 100644
index 0000000000..48bd73b110
--- /dev/null
+++ b/meta/recipes-extended/mc/files/nomandate.patch
@@ -0,0 +1,21 @@
+The man page date can vary depending upon the host perl, e.g. in Russian
+some versions print 'июнÑ', others 'Июнь' or Polish 'czerwca' or 'czerwiec'.
+Rather than depend upon perl-native to fix this, just remove the date from
+the manpages.
+
+RP 2020/2/4
+
+Upstream-Status: Inappropriate [OE specficic reproducibility workaround]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: mc-4.8.23/doc/man/date-of-man-include.am
+===================================================================
+--- mc-4.8.23.orig/doc/man/date-of-man-include.am
++++ mc-4.8.23/doc/man/date-of-man-include.am
+@@ -1,5 +1,5 @@
+ SED_PARAMETERS = \
+- -e "s/%DATE_OF_MAN_PAGE%/$${MAN_DATE}/g" \
++ -e "s/%DATE_OF_MAN_PAGE%//g" \
+ -e "s/%DISTR_VERSION%/@DISTR_VERSION@/g" \
+ -e "s{%prefix%{@prefix@{g" \
+ -e "s{%sysconfdir%{@sysconfdir@{g" \
diff --git a/meta/recipes-extended/mc/mc_4.8.23.bb b/meta/recipes-extended/mc/mc_4.8.25.bb
index 83de8dbb2c..83c8a6ecf6 100644
--- a/meta/recipes-extended/mc/mc_4.8.23.bb
+++ b/meta/recipes-extended/mc/mc_4.8.25.bb
@@ -4,13 +4,14 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=270bbafe360e73f9840bd7981621f9c2"
SECTION = "console/utils"
DEPENDS = "ncurses glib-2.0 util-linux"
-RDEPENDS_${PN} = "ncurses-terminfo"
+RDEPENDS_${PN} = "ncurses-terminfo-base"
+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://nomandate.patch \
"
-SRC_URI[md5sum] = "152927ac29cf0e61d7d019f261bb7d89"
-SRC_URI[sha256sum] = "238c4552545dcf3065359bd50753abbb150c1b22ec5a36eaa02c82808293267d"
+SRC_URI[sha256sum] = "407dc20f70082f26c7f5716406cb755cbb6cba3f2f13b841b79a991282d310c2"
inherit autotools gettext pkgconfig
@@ -21,9 +22,12 @@ PACKAGECONFIG ??= ""
PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba,"
PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2,"
-EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x"
+EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x --disable-configure-args"
CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
+CACHED_CONFIGUREVARS += "ac_cv_path_PYTHON='/usr/bin/env python'"
+CACHED_CONFIGUREVARS += "ac_cv_path_GREP='/usr/bin/env grep'"
+CACHED_CONFIGUREVARS += "mc_cv_have_zipinfo=yes"
do_install_append () {
sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${libexecdir}/mc/extfs.d/*
diff --git a/meta/recipes-extended/mdadm/files/run-ptest b/meta/recipes-extended/mdadm/files/run-ptest
index e4a9c2b08b..fae8071d43 100644
--- a/meta/recipes-extended/mdadm/files/run-ptest
+++ b/meta/recipes-extended/mdadm/files/run-ptest
@@ -1,4 +1,7 @@
#!/bin/sh
+mkdir -p /mdadm-testing-dir
# make the test continue to execute even one fail
-./test --keep-going
+dir=. ./test --keep-going --disable-integrity
+
+rm -rf /mdadm-testing-dir/*
diff --git a/meta/recipes-extended/mdadm/mdadm_4.1.bb b/meta/recipes-extended/mdadm/mdadm_4.1.bb
index 639382e137..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"
@@ -43,13 +43,12 @@ CFLAGS_append_powerpc64 = ' -D__SANE_USERSPACE_TYPES__'
CFLAGS_append_mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__'
CFLAGS_append_mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__'
-EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}"'
+EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${systemd_unitdir}/system \
+ BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev"'
DEBUG_OPTIMIZATION_append = " -Wno-error"
do_compile() {
- # Point to right sbindir
- sed -i -e "s;BINDIR = /sbin;BINDIR = $base_sbindir;" -e "s;UDEVDIR = /lib;UDEVDIR = $nonarch_base_libdir;" -e "s;SYSTEMD_DIR=/lib/systemd/system;SYSTEMD_DIR=${systemd_unitdir}/system;" ${S}/Makefile
oe_runmake SYSROOT="${STAGING_DIR_TARGET}"
}
@@ -76,7 +75,8 @@ do_compile_ptest() {
do_install_ptest() {
cp -R --no-dereference --preserve=mode,links -v ${S}/tests ${D}${PTEST_PATH}/tests
cp ${S}/test ${D}${PTEST_PATH}
- sed -e 's!sleep 0.*!sleep 1!g; s!/var/tmp!/!g' -i ${D}${PTEST_PATH}/test
+ sed -e 's!sleep 0.*!sleep 1!g; s!/var/tmp!/mdadm-testing-dir!g' -i ${D}${PTEST_PATH}/test
+ sed -e 's!/var/tmp!/mdadm-testing-dir!g' -i ${D}${PTEST_PATH}/tests/*
sed -i -e '/echo -ne "$_script... "/d' \
-e 's/echo "succeeded"/echo -e "PASS: $_script"/g' \
-e '/save_log fail/N; /_fail=1/i\\t\t\techo -ne "FAIL: $_script"' \
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.5.bb b/meta/recipes-extended/msmtp/msmtp_1.8.12.bb
index 4f6b66f226..54798f9e6f 100644
--- a/meta/recipes-extended/msmtp/msmtp_1.8.5.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] = "5d7bb10606fbceeb2e0687379c75234b"
-SRC_URI[sha256sum] = "1613daced9c47b8c028224fc076799c2a4d72923e242be4e9e5c984cbbbb9f39"
+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 2d96d1ba38..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)
@@ -81,6 +83,7 @@ RDEPENDS_packagegroup-core-full-cmdline-utils = "\
gawk \
gmp \
grep \
+ less \
makedevs \
mc \
mc-fish \
diff --git a/meta/recipes-extended/pam/libpam/fixsepbuild.patch b/meta/recipes-extended/pam/libpam/fixsepbuild.patch
deleted file mode 100644
index 8a9c3b2fa1..0000000000
--- a/meta/recipes-extended/pam/libpam/fixsepbuild.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Fix the build error when a separate build directory is used:
-
-Making install in xtestsmake[1]: Entering directory `/media/build1/poky/build1/tmp/work/i586-poky-linux/libpam/1.1.6-r2/build/xtests'/usr/bin/install -c -d /media/build1/poky/build1/tmp/work/i586-poky-linux/libpam/1.1.6-r2/image/usr/share/Linux-PAM/xtestsfor file in run-xtests.sh tst-pam_dispatch1.pamd tst-pam_dispatch2.pamd tst-pam_dispatch3.pamd tst-pam_dispatch4.pamd tst-pam_dispatch5.pamd tst-pam_cracklib1.pamd tst-pam_cracklib2.pamd tst-pam_unix1.pamd tst-pam_unix2.pamd tst-pam_unix3.pamd tst-pam_unix4.pamd tst-pam_unix1.sh tst-pam_unix2.sh tst-pam_unix3.sh tst-pam_unix4.sh access.conf tst-pam_access1.pamd tst-pam_access1.sh tst-pam_access2.pamd tst-pam_access2.sh tst-pam_access3.pamd tst-pam_access3.sh tst-pam_access4.pamd tst-pam_access4.sh limits.conf tst-pam_limits1.pamd tst-pam_limits1.sh tst-pam_succeed_if1.pamd tst-pam_succeed_if1.sh group.conf tst-pam_group1.pamd tst-pam_group1.sh tst-pam_authfail.pamd tst-pam_authsucceed.pamd tst-pam_substack1.pamd tst-pam_substack1a.pamd tst-pam_substack1.sh tst-pam_substack2.pamd tst-pam_substack2a.pamd tst-pam_substack2.sh tst-pam_substack3.pamd tst-pam_substack3a.pamd tst-pam_substack3.sh tst-pam_substack4.pamd tst-pam_substack4a.pamd tst-pam_substack4.sh tst-pam_substack5.pamd tst-pam_substack5a.pamd tst-pam_substack5.sh tst-pam_assemble_line1.pamd tst-pam_assemble_line1.sh tst-pam_pwhistory1.pamd tst-pam_pwhistory1.sh tst-pam_time1.pamd time.conf ; do \/usr/bin/install -c $file /media/build1/poky/build1/tmp/work/i586-poky-linux/libpam/1.1.6-r2/image/usr/share/Linux-PAM/xtests ; \ done
-/usr/bin/install: cannot stat `run-xtests.sh': No such file or directory
-/usr/bin/install: cannot stat `tst-pam_dispatch1.pamd': No such file or directory
-/usr/bin/install: cannot stat `tst-pam_dispatch2.pamd': No such file or directory
-
-Upstream-Status: Pending
-
-RP 2013/03/21
-
-Index: Linux-PAM-1.1.6/xtests/Makefile.am
-===================================================================
---- Linux-PAM-1.1.6.orig/xtests/Makefile.am 2013-03-08 12:26:30.360266000 +0000
-+++ Linux-PAM-1.1.6/xtests/Makefile.am 2013-03-21 11:39:58.557166650 +0000
-@@ -59,7 +59,7 @@
- install_xtests:
- $(INSTALL) -d $(DESTDIR)$(pkgdatadir)/xtests
- for file in $(EXTRA_DIST) ; do \
-- $(INSTALL) $$file $(DESTDIR)$(pkgdatadir)/xtests ; \
-+ $(INSTALL) $(srcdir)/$$file $(DESTDIR)$(pkgdatadir)/xtests ; \
- done
- for file in $(XTESTS); do \
- $(INSTALL) .libs/$$file $(DESTDIR)$(pkgdatadir)/xtests ; \
diff --git a/meta/recipes-extended/pam/libpam/libpam-xtests.patch b/meta/recipes-extended/pam/libpam/libpam-xtests.patch
index 7edf66f915..ea145899b4 100644
--- a/meta/recipes-extended/pam/libpam/libpam-xtests.patch
+++ b/meta/recipes-extended/pam/libpam/libpam-xtests.patch
@@ -28,7 +28,7 @@ Index: Linux-PAM-1.3.0/xtests/Makefile.am
+install_xtests:
+ $(INSTALL) -d $(DESTDIR)$(pkgdatadir)/xtests
+ for file in $(EXTRA_DIST) ; do \
-+ $(INSTALL) $$file $(DESTDIR)$(pkgdatadir)/xtests ; \
++ $(INSTALL) $(srcdir)/$$file $(DESTDIR)$(pkgdatadir)/xtests ; \
+ done
+ for file in $(XTESTS); do \
+ $(INSTALL) .libs/$$file $(DESTDIR)$(pkgdatadir)/xtests ; \
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 6b73f0a2fe..bc72afe6ad 100644
--- a/meta/recipes-extended/pam/libpam_1.3.1.bb
+++ b/meta/recipes-extended/pam/libpam_1.3.1.bb
@@ -1,3 +1,4 @@
+DISABLE_STATIC = ""
SUMMARY = "Linux-PAM (Pluggable Authentication Modules)"
DESCRIPTION = "Linux-PAM (Pluggable Authentication Modules for Linux), a flexible mechanism for authenticating users"
HOMEPAGE = "https://fedorahosted.org/linux-pam/"
@@ -20,7 +21,6 @@ SRC_URI = "https://github.com/linux-pam/linux-pam/releases/download/v${PV}/Linux
file://pam.d/common-session-noninteractive \
file://pam.d/other \
file://libpam-xtests.patch \
- file://fixsepbuild.patch \
file://pam-security-abstract-securetty-handling.patch \
file://pam-unix-nullok-secure.patch \
file://crypt_configure.patch \
@@ -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}"
@@ -150,7 +151,7 @@ do_install() {
fi
}
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
BBCLASSEXTEND = "nativesdk native"
@@ -163,3 +164,5 @@ CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-account"
CONFFILES_${PN}-runtime += "${sysconfdir}/security/limits.conf"
UPSTREAM_CHECK_URI = "https://github.com/linux-pam/linux-pam/releases"
+
+CVE_PRODUCT = "linux-pam"
diff --git a/meta/recipes-extended/parted/files/0001-Include-fcntl.h-in-platform_defs.h.patch b/meta/recipes-extended/parted/files/0001-Include-fcntl.h-in-platform_defs.h.patch
deleted file mode 100644
index 4070127d34..0000000000
--- a/meta/recipes-extended/parted/files/0001-Include-fcntl.h-in-platform_defs.h.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From a3877115f1956949096d77aca5a703a47ed68397 Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sun, 3 May 2015 10:33:31 +0200
-Subject: [PATCH] libparted/fs/xfs/platform_defs.h: Include <fcntl.h> for
- loff_t
-
-This is needed for compilation with musl libc
-
-Suggested-by: Travis Tilley <ttilley@gmail.com>
-
-Signed-off-by: Brian C. Lane <bcl@redhat.com>
----
- libparted/fs/xfs/platform_defs.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libparted/fs/xfs/platform_defs.h b/libparted/fs/xfs/platform_defs.h
-index 2b55752..a6ec8fb 100644
---- a/libparted/fs/xfs/platform_defs.h
-+++ b/libparted/fs/xfs/platform_defs.h
-@@ -38,6 +38,7 @@
- #include <stdarg.h>
- #include <assert.h>
- #include <endian.h>
-+#include <fcntl.h>
- #include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
---
-2.11.0
-
diff --git a/meta/recipes-extended/parted/files/0001-Move-python-helper-scripts-used-only-in-tests-to-Pyt.patch b/meta/recipes-extended/parted/files/0001-Move-python-helper-scripts-used-only-in-tests-to-Pyt.patch
index 428b14ed5e..829c0c8b78 100644
--- a/meta/recipes-extended/parted/files/0001-Move-python-helper-scripts-used-only-in-tests-to-Pyt.patch
+++ b/meta/recipes-extended/parted/files/0001-Move-python-helper-scripts-used-only-in-tests-to-Pyt.patch
@@ -1,17 +1,18 @@
-From 6e82af54714392dcdf74a8aedaae7de7d0af1080 Mon Sep 17 00:00:00 2001
+From ddbefd80d74c3baaae328332458db447e1666240 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 27 Apr 2017 16:37:24 +0300
Subject: [PATCH] Move python helper scripts (used only in tests) to Python 3
Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
tests/gpt-header-move | 2 +-
- tests/msdos-overlap | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
+ tests/msdos-overlap | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/gpt-header-move b/tests/gpt-header-move
-index 05cdc65..3cbcb7e 100755
+index 3dda5cb..a2b9508 100755
--- a/tests/gpt-header-move
+++ b/tests/gpt-header-move
@@ -1,4 +1,4 @@
@@ -21,7 +22,7 @@ index 05cdc65..3cbcb7e 100755
# open img file, subtract 33 from altlba address, and move the last 33 sectors
# back by 33 sectors
diff --git a/tests/msdos-overlap b/tests/msdos-overlap
-index 5bddfb0..3de7d2e 100755
+index d6ae8d6..2c6747b 100755
--- a/tests/msdos-overlap
+++ b/tests/msdos-overlap
@@ -1,4 +1,4 @@
@@ -30,15 +31,3 @@ index 5bddfb0..3de7d2e 100755
"""
Write an overlapping partition to a msdos disk
-@@ -14,7 +14,7 @@ BAD_ENTRY = (0x72, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- OFFSET = 0x1b8
-
- if len(sys.argv) < 2:
-- print "%s: <image or device>"
-+ print("%s: <image or device>")
- sys.exit(1)
-
- data = "".join(chr(c) for c in BAD_ENTRY)
---
-2.11.0
-
diff --git a/meta/recipes-extended/parted/files/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta/recipes-extended/parted/files/0001-Unset-need_charset_alias-when-building-for-musl.patch
deleted file mode 100644
index ba1a4bab4c..0000000000
--- a/meta/recipes-extended/parted/files/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 13 Apr 2015 17:02:13 -0700
-Subject: [PATCH] Unset need_charset_alias when building for musl
-
-localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
-which actually shoudl be fixed in gnulib and then all downstream
-projects will get it eventually. For now we apply the fix to
-coreutils
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/gnulib.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/gnulib.mk b/lib/gnulib.mk
-index e1d74db..c0e92dd 100644
---- a/lib/gnulib.mk
-+++ b/lib/gnulib.mk
-@@ -1882,7 +1882,7 @@ install-exec-localcharset: all-local
- case '$(host_os)' in \
- darwin[56]*) \
- need_charset_alias=true ;; \
-- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
- need_charset_alias=false ;; \
- *) \
- need_charset_alias=true ;; \
---
-2.1.4
-
diff --git a/meta/recipes-extended/parted/files/0001-libparted-Use-read-only-when-probing-devices-on-linu.patch b/meta/recipes-extended/parted/files/0001-libparted-Use-read-only-when-probing-devices-on-linu.patch
deleted file mode 100644
index 39107620d5..0000000000
--- a/meta/recipes-extended/parted/files/0001-libparted-Use-read-only-when-probing-devices-on-linu.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-From 843225aa9d5077bebdb08bbf9699c02aec0b83eb Mon Sep 17 00:00:00 2001
-From: "Brian C. Lane" <bcl@redhat.com>
-Date: Tue, 26 Sep 2017 08:04:58 +0000
-Subject: [PATCH] libparted: Use read only when probing devices on linux
-
- (#1245144)
-
-When a device is opened for RW closing it can trigger other actions,
-like udev scanning it for partition changes. Use read only for the
-init_* methods and RW for actual changes to the device.
-
-This adds _device_open which takes mode flags as an argument and turns
-linux_open into a wrapper for it with RW_MODE.
-
-_device_open_ro is added to open the device with RD_MODE and increment
-the open_counter. This is used in the init_* functions.
-
-_device_close is a wrapper around linux_close that decrements the
-open_counter and is used in the init_* functions.
-
-All of these changes are self-contained with no external API changes.
-The only visible change in behavior is that when a new PedDevice is
-created the device is opened in RO_MODE instead of RW_MODE.
-
-Resolves: rhbz#1245144
-
-Upstream-Status: Backport
-
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
-
----
- libparted/arch/linux.c | 62 +++++++++++++++++++++++++++++++++++---------------
- 1 file changed, 44 insertions(+), 18 deletions(-)
-
-diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
-index 7f12f58..4ddea58 100644
---- a/libparted/arch/linux.c
-+++ b/libparted/arch/linux.c
-@@ -292,7 +292,9 @@ struct blkdev_ioctl_param {
- static char* _device_get_part_path (PedDevice const *dev, int num);
- static int _partition_is_mounted_by_path (const char* path);
- static unsigned int _device_get_partition_range(PedDevice const* dev);
--
-+static int _device_open (PedDevice* dev, int flags);
-+static int _device_open_ro (PedDevice* dev);
-+static int _device_close (PedDevice* dev);
-
- static int
- _read_fd (int fd, char **buf)
-@@ -911,7 +913,7 @@ init_ide (PedDevice* dev)
- if (!_device_stat (dev, &dev_stat))
- goto error;
-
-- if (!ped_device_open (dev))
-+ if (!_device_open_ro (dev))
- goto error;
-
- if (ioctl (arch_specific->fd, HDIO_GET_IDENTITY, &hdi)) {
-@@ -980,11 +982,11 @@ init_ide (PedDevice* dev)
- if (!_device_probe_geometry (dev))
- goto error_close_dev;
-
-- ped_device_close (dev);
-+ _device_close (dev);
- return 1;
-
- error_close_dev:
-- ped_device_close (dev);
-+ _device_close (dev);
- error:
- return 0;
- }
-@@ -1117,7 +1119,7 @@ init_scsi (PedDevice* dev)
- char* vendor;
- char* product;
-
-- if (!ped_device_open (dev))
-+ if (!_device_open_ro (dev))
- goto error;
-
- if (ioctl (arch_specific->fd, SCSI_IOCTL_GET_IDLUN, &idlun) < 0) {
-@@ -1131,7 +1133,7 @@ init_scsi (PedDevice* dev)
- goto error_close_dev;
- if (!_device_probe_geometry (dev))
- goto error_close_dev;
-- ped_device_close (dev);
-+ _device_close (dev);
- return 1;
- }
-
-@@ -1153,11 +1155,11 @@ init_scsi (PedDevice* dev)
- if (!_device_probe_geometry (dev))
- goto error_close_dev;
-
-- ped_device_close (dev);
-+ _device_close (dev);
- return 1;
-
- error_close_dev:
-- ped_device_close (dev);
-+ _device_close (dev);
- error:
- return 0;
- }
-@@ -1169,7 +1171,7 @@ init_file (PedDevice* dev)
-
- if (!_device_stat (dev, &dev_stat))
- goto error;
-- if (!ped_device_open (dev))
-+ if (!_device_open_ro (dev))
- goto error;
-
- dev->sector_size = PED_SECTOR_SIZE_DEFAULT;
-@@ -1196,7 +1198,7 @@ init_file (PedDevice* dev)
- goto error_close_dev;
- }
-
-- ped_device_close (dev);
-+ _device_close (dev);
-
- dev->bios_geom.cylinders = dev->length / 4 / 32;
- dev->bios_geom.heads = 4;
-@@ -1207,7 +1209,7 @@ init_file (PedDevice* dev)
- return 1;
-
- error_close_dev:
-- ped_device_close (dev);
-+ _device_close (dev);
- error:
- return 0;
- }
-@@ -1223,7 +1225,7 @@ init_dasd (PedDevice* dev, const char* model_name)
- if (!_device_stat (dev, &dev_stat))
- goto error;
-
-- if (!ped_device_open (dev))
-+ if (!_device_open_ro (dev))
- goto error;
-
- LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
-@@ -1263,11 +1265,11 @@ init_dasd (PedDevice* dev, const char* model_name)
-
- dev->model = strdup (model_name);
-
-- ped_device_close (dev);
-+ _device_close (dev);
- return 1;
-
- error_close_dev:
-- ped_device_close (dev);
-+ _device_close (dev);
- error:
- return 0;
- }
-@@ -1282,7 +1284,7 @@ init_generic (PedDevice* dev, const char* model_name)
- if (!_device_stat (dev, &dev_stat))
- goto error;
-
-- if (!ped_device_open (dev))
-+ if (!_device_open_ro (dev))
- goto error;
-
- ped_exception_fetch_all ();
-@@ -1330,11 +1332,11 @@ init_generic (PedDevice* dev, const char* model_name)
-
- dev->model = strdup (model_name);
-
-- ped_device_close (dev);
-+ _device_close (dev);
- return 1;
-
- error_close_dev:
-- ped_device_close (dev);
-+ _device_close (dev);
- error:
- return 0;
- }
-@@ -1621,12 +1623,27 @@ retry:
- }
-
- static int
-+_device_open_ro (PedDevice* dev)
-+{
-+ int rc = _device_open (dev, RD_MODE);
-+ if (rc)
-+ dev->open_count++;
-+ return rc;
-+}
-+
-+static int
- linux_open (PedDevice* dev)
- {
-+ return _device_open (dev, RW_MODE);
-+}
-+
-+static int
-+_device_open (PedDevice* dev, int flags)
-+{
- LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
-
- retry:
-- arch_specific->fd = open (dev->path, RW_MODE);
-+ arch_specific->fd = open (dev->path, flags);
-
- if (arch_specific->fd == -1) {
- char* rw_error_msg = strerror (errno);
-@@ -1695,6 +1712,15 @@ linux_refresh_close (PedDevice* dev)
- return 1;
- }
-
-+static int
-+_device_close (PedDevice* dev)
-+{
-+ int rc = linux_close (dev);
-+ if (dev->open_count > 0)
-+ dev->open_count--;
-+ return rc;
-+}
-+
- #if SIZEOF_OFF_T < 8
-
- static _syscall5(int,_llseek,
diff --git a/meta/recipes-extended/parted/files/0001-libparted-fs-add-sourcedir-lib-to-include-paths.patch b/meta/recipes-extended/parted/files/0001-libparted-fs-add-sourcedir-lib-to-include-paths.patch
new file mode 100644
index 0000000000..4dc2ab259d
--- /dev/null
+++ b/meta/recipes-extended/parted/files/0001-libparted-fs-add-sourcedir-lib-to-include-paths.patch
@@ -0,0 +1,26 @@
+From d60a8a86f6593738b5324ccd8fe3e6d84a1fe7bc Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 11 Dec 2019 14:18:36 +0100
+Subject: [PATCH] libparted/fs: add $sourcedir/lib to include paths
+
+Otherwise, getopt-pfx-core.h won't be found.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ libparted/fs/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libparted/fs/Makefile.am b/libparted/fs/Makefile.am
+index 286bff6..65f45d3 100644
+--- a/libparted/fs/Makefile.am
++++ b/libparted/fs/Makefile.am
+@@ -3,7 +3,7 @@
+ #
+ # This file may be modified and/or distributed without restriction.
+
+-partedincludedir = -I$(top_builddir)/include -I$(top_srcdir)/include
++partedincludedir = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir)/lib
+
+ AM_CFLAGS = $(WARN_CFLAGS)
+
diff --git a/meta/recipes-extended/parted/files/0001-linux-Include-sys-sysmacros.h-for-major-macro.patch b/meta/recipes-extended/parted/files/0001-linux-Include-sys-sysmacros.h-for-major-macro.patch
deleted file mode 100644
index 01262e5452..0000000000
--- a/meta/recipes-extended/parted/files/0001-linux-Include-sys-sysmacros.h-for-major-macro.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 0b72b8eb41438b62eeb9e3548b0b8f3094a78681 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Sat, 24 Mar 2018 17:37:02 +0000
-Subject: [PATCH] linux: Include <sys/sysmacros.h> for major() macro.
-
-Since glibc 2.27 this header is required.
----
- libparted/arch/linux.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
-index 0f18904..a15854f 100644
---- a/libparted/arch/linux.c
-+++ b/libparted/arch/linux.c
-@@ -41,6 +41,7 @@
- #include <sys/utsname.h> /* for uname() */
- #include <scsi/scsi.h>
- #include <assert.h>
-+#include <sys/sysmacros.h>
- #ifdef ENABLE_DEVICE_MAPPER
- #include <libdevmapper.h>
- #endif
---
-2.11.0
-
diff --git a/meta/recipes-extended/parted/files/0002-tests-use-skip_-rather-than-skip_test_-which-is-unde.patch b/meta/recipes-extended/parted/files/0002-tests-use-skip_-rather-than-skip_test_-which-is-unde.patch
new file mode 100644
index 0000000000..9524adf7b8
--- /dev/null
+++ b/meta/recipes-extended/parted/files/0002-tests-use-skip_-rather-than-skip_test_-which-is-unde.patch
@@ -0,0 +1,66 @@
+From 9f844484cedb39e301b016e9da7852c1a0fb6eea Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 11 Dec 2019 16:27:48 +0100
+Subject: [PATCH] tests: use skip_ rather than skip_test_ (which is undefined)
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ tests/t6001-psep.sh | 2 +-
+ tests/t6004-dm-many-partitions.sh | 2 +-
+ tests/t6005-dm-uuid.sh | 2 +-
+ tests/t6006-dm-512b-sectors.sh | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tests/t6001-psep.sh b/tests/t6001-psep.sh
+index e350bd2..67014a0 100644
+--- a/tests/t6001-psep.sh
++++ b/tests/t6001-psep.sh
+@@ -21,7 +21,7 @@
+ require_root_
+ require_udevadm_settle_
+
+-(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
++(dmsetup --help) > /dev/null 2>&1 || skip_ "No dmsetup installed"
+
+ # Device maps names - should be random to not conflict with existing ones on
+ # the system
+diff --git a/tests/t6004-dm-many-partitions.sh b/tests/t6004-dm-many-partitions.sh
+index b4be975..7214f60 100755
+--- a/tests/t6004-dm-many-partitions.sh
++++ b/tests/t6004-dm-many-partitions.sh
+@@ -21,7 +21,7 @@
+
+ require_root_
+ require_udevadm_settle_
+-(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
++(dmsetup --help) > /dev/null 2>&1 || skip_ "No dmsetup installed"
+
+ ss=$sector_size_
+ ns=300
+diff --git a/tests/t6005-dm-uuid.sh b/tests/t6005-dm-uuid.sh
+index 4266747..4790a8b 100755
+--- a/tests/t6005-dm-uuid.sh
++++ b/tests/t6005-dm-uuid.sh
+@@ -21,7 +21,7 @@
+
+ require_root_
+ require_udevadm_settle_
+-(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
++(dmsetup --help) > /dev/null 2>&1 || skip_ "No dmsetup installed"
+
+ ss=$sector_size_
+ ns=300
+diff --git a/tests/t6006-dm-512b-sectors.sh b/tests/t6006-dm-512b-sectors.sh
+index bf32135..b679adb 100644
+--- a/tests/t6006-dm-512b-sectors.sh
++++ b/tests/t6006-dm-512b-sectors.sh
+@@ -25,7 +25,7 @@ require_scsi_debug_module_
+ grep '^#define USE_BLKID 1' "$CONFIG_HEADER" > /dev/null ||
+ skip_ 'this system lacks a new-enough libblkid'
+
+-(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
++(dmsetup --help) > /dev/null 2>&1 || skip_ "No dmsetup installed"
+
+ # Device maps names - should be random to not conflict with existing ones on
+ # the system
diff --git a/meta/recipes-extended/parted/files/Makefile b/meta/recipes-extended/parted/files/Makefile
deleted file mode 100644
index ee90be0814..0000000000
--- a/meta/recipes-extended/parted/files/Makefile
+++ /dev/null
@@ -1,285 +0,0 @@
-am__tty_colors_dummy = \
- mgn= red= grn= lgn= blu= brg= std=; \
- am__color_tests=no
-
-am__tty_colors = \
-$(am__tty_colors_dummy); \
-test "X$(AM_COLOR_TESTS)" != Xno \
-&& test "X$$TERM" != Xdumb \
-&& { test "X$(AM_COLOR_TESTS)" = Xalways || test -t 1 2>/dev/null; } \
-&& { \
- am__color_tests=yes; \
- red=''; \
- grn=''; \
- lgn=''; \
- blu=''; \
- mgn=''; \
- brg=''; \
- std=''; \
-}
-
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-am__rst_section = { sed 'p;s/./=/g;' && echo; }
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-
-am__common_driver_flags = \
- --color-tests "$$am__color_tests" \
- --enable-hard-errors "$$am__enable_hard_errors" \
- --expect-failure "$$am__expect_failure"
-am__check_pre = \
-$(am__sh_e_setup); \
-$(am__vpath_adj_setup) $(am__vpath_adj) \
-$(am__tty_colors); \
-srcdir=$(srcdir); export srcdir; \
-am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`; \
-test "x$$am__odir" = x. || $(MKDIR_P) "$$am__odir" || exit $$?; \
-if test -f "./$$f"; then dir=./; \
-elif test -f "$$f"; then dir=; \
-else dir="$(srcdir)/"; fi; \
-tst=$$dir$$f; log='$@'; \
-if test -n '$(DISABLE_HARD_ERRORS)'; then \
- am__enable_hard_errors=no; \
-else \
- am__enable_hard_errors=yes; \
-fi; \
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-
-am__set_TESTS_bases = \
- bases='$(TEST_LOGS)'; \
- bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
- bases=`echo $$bases`
-
-RECHECK_LOGS = $(TEST_LOGS)
-TEST_SUITE_LOG = test-suite.log
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:.log=.log)
-TEST_LOGS = $(am__test_logs2:.sh.log=.log)
-SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
-SH_LOG_COMPILE = $(SH_LOG_COMPILER)
-
-am__set_b = \
- case '$@' in \
- */*) \
- case '$*' in \
- */*) b='$*';; \
- *) b=`echo '$@' | sed 's/\.log$$//'`; \
- esac;; \
- *) \
- b='$*';; \
- esac
-
-MKDIR_P = /bin/mkdir -p
-SHELL = /bin/bash
-VERSION = 3.1
-PACKAGE_STRING = GNU parted 3.1
-PACKAGE_BUGREPORT = bug-parted@gnu.org
-abs_srcdir = $(PWD)
-abs_top_builddir = $(PWD)/..
-abs_top_srcdir = $(PWD)/..
-srcdir = .
-top_srcdir = ..
-subdir = tests
-SH_LOG_COMPILER = $(SHELL)
-
-TESTS = \
- help-version.sh \
- t0000-basic.sh \
- t0001-tiny.sh \
- t0010-script-no-ctrl-chars.sh \
- t0100-print.sh \
- t0101-print-empty.sh \
- t0200-gpt.sh \
- t0201-gpt.sh \
- t0202-gpt-pmbr.sh \
- t0203-gpt-tiny-device-abort.sh \
- t0203-gpt-shortened-device-primary-valid.sh \
- t0205-gpt-list-clobbers-pmbr.sh \
- t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh \
- t0207-IEC-binary-notation.sh \
- t0208-mkpart-end-in-IEC.sh \
- t0209-gpt-pmbr_boot.sh \
- t0210-gpt-resized-partition-entry-array.sh \
- t0211-gpt-rewrite-header.sh \
- t0212-gpt-many-partitions.sh \
- t0220-gpt-msftres.sh \
- t0250-gpt.sh \
- t0280-gpt-corrupt.sh \
- t0300-dos-on-gpt.sh \
- t0400-loop-clobber-infloop.sh \
- t0500-dup-clobber.sh \
- t0501-duplicate.sh \
- t1100-busy-label.sh \
- t1101-busy-partition.sh \
- t1700-probe-fs.sh \
- t2200-dos-label-recog.sh \
- t2201-pc98-label-recog.sh \
- t2300-dos-label-extended-bootcode.sh \
- t2310-dos-extended-2-sector-min-offset.sh \
- t2400-dos-hfs-partition-type.sh \
- t2500-probe-corrupt-hfs.sh \
- t3000-resize-fs.sh \
- t3200-type-change.sh \
- t3300-palo-prep.sh \
- t3310-flags.sh \
- t3400-whole-disk-FAT-partition.sh \
- t4000-sun-raid-type.sh \
- t4001-sun-vtoc.sh \
- t4100-msdos-partition-limits.sh \
- t4100-dvh-partition-limits.sh \
- t4100-msdos-starting-sector.sh \
- t4200-partprobe.sh \
- t4300-nilfs2-tiny.sh \
- t5000-tags.sh \
- t6000-dm.sh \
- t6001-psep.sh \
- t6100-mdraid-partitions.sh \
- t7000-scripting.sh \
- t8000-loop.sh \
- t8001-loop-blkpg.sh \
- t9010-big-sector.sh \
- t9020-alignment.sh \
- t9021-maxima.sh \
- t9022-one-unit-snap.sh \
- t9023-value-lt-one.sh \
- t9030-align-check.sh \
- t9040-many-partitions.sh \
- t9041-undetected-in-use-16th-partition.sh \
- t9042-dos-partition-limit.sh \
- t9050-partition-table-types.sh
-
-TESTS_ENVIRONMENT = \
- export \
- abs_top_builddir='$(abs_top_builddir)' \
- abs_top_srcdir='$(abs_top_srcdir)' \
- abs_srcdir='$(abs_srcdir)' \
- built_programs=parted \
- srcdir='$(srcdir)' \
- top_srcdir='$(top_srcdir)' \
- VERSION=$(VERSION) \
- ; 9>&2
-
-.SUFFIXES: .log
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
- @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
- ws='[ ]'; \
- results=`for b in $$bases; do echo $$b.trs; done`; \
- test -n "$$results" || results=/dev/null; \
- all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
- pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
- fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
- skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
- xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
- xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
- error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
- if test `expr $$fail + $$xpass + $$error` -eq 0; then \
- success=true; \
- else \
- success=false; \
- fi; \
- br='==================='; br=$$br$$br$$br$$br; \
- result_count () \
- { \
- if test x"$$1" = x"--maybe-color"; then \
- maybe_colorize=yes; \
- elif test x"$$1" = x"--no-color"; then \
- maybe_colorize=no; \
- else \
- echo "$@: invalid 'result_count' usage" >&2; exit 4; \
- fi; \
- shift; \
- desc=$$1 count=$$2; \
- if test $$maybe_colorize = yes && test $$count -gt 0; then \
- color_start=$$3 color_end=$$std; \
- else \
- color_start= color_end=; \
- fi; \
- echo "$${color_start}# $$desc $$count$${color_end}"; \
- }; \
- create_testsuite_report () \
- { \
- result_count $$1 "TOTAL:" $$all "$$brg"; \
- result_count $$1 "PASS: " $$pass "$$grn"; \
- result_count $$1 "SKIP: " $$skip "$$blu"; \
- result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
- result_count $$1 "FAIL: " $$fail "$$red"; \
- result_count $$1 "XPASS:" $$xpass "$$red"; \
- result_count $$1 "ERROR:" $$error "$$mgn"; \
- }; \
- { \
- echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
- $(am__rst_title); \
- create_testsuite_report --no-color; \
- echo; \
- echo ".. contents:: :depth: 2"; \
- echo; \
- for i in $$bases; do \
- if grep "^$$ws*:copy-in-global-log:$$ws*no$$ws*$$" $$i.trs \
- >/dev/null; then continue; \
- fi; \
- glob_res=`sed -n -e "s/$$ws*$$//" \
- -e "s/^$$ws*:global-test-result:$$ws*//p" \
- $$i.trs`; \
- test -n "$$glob_res" || glob_res=RUN; \
- echo "$$glob_res: $$i" | $(am__rst_section); \
- if test ! -r $$i.log; then \
- echo "fatal: making $@: $$i.log is unreadable" >&2; \
- exit 1; \
- fi; \
- cat $$i.log; echo; \
- done; \
- } >$(TEST_SUITE_LOG).tmp; \
- mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
- if $$success; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
- fi; \
- echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
- echo "$${col}$$br$${std}"; \
- create_testsuite_report --maybe-color; \
- echo "$$col$$br$$std"; \
- if $$success; then :; else \
- echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
- if test -n "$(PACKAGE_BUGREPORT)"; then \
- echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
- fi; \
- echo "$$col$$br$$std"; \
- fi; \
- $$success || exit 1
-
-check-TESTS:
- @if test $@ != recheck; then \
- list='$(RECHECK_LOGS)'; \
- test -z "$$list" || rm -f $$list; \
- fi
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @ws='[ ]'; \
- log_list='' trs_list=''; $(am__set_TESTS_bases); \
- for i in $$bases; do \
- if test -z "$$log_list"; then \
- log_list="$$i.log"; \
- else \
- log_list="$$log_list $$i.log"; \
- fi; \
- if test -z "$$trs_list"; then \
- trs_list="$$i.trs"; \
- else \
- trs_list="$$trs_list $$i.trs"; \
- fi; \
- done; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"
-
-.sh.log:
- @p='$<'; \
- $(am__set_b); \
- $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) -- $(SH_LOG_COMPILE) "$$tst"
diff --git a/meta/recipes-extended/parted/files/dm_check.patch b/meta/recipes-extended/parted/files/dm_check.patch
deleted file mode 100644
index 5f3c4ddae8..0000000000
--- a/meta/recipes-extended/parted/files/dm_check.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-parted: change check for device-manager
-
-Other ptests use this method.
-
-Upstream-Status: Submitted [bug-parted@gnu.org]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-
---- a/tests/t6001-psep.sh
-+++ b/tests/t6001-psep.sh
-@@ -19,7 +19,9 @@
- . "${srcdir=.}/init.sh"; path_prepend_ ../parted
-
- require_root_
--(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed"
-+
-+test "x$ENABLE_DEVICE_MAPPER" = xyes \
-+ || skip_ "no device-mapper support"
-
- # Device maps names - should be random to not conflict with existing ones on
- # the system
diff --git a/meta/recipes-extended/parted/files/fix-compile-failure-while-dis.patch b/meta/recipes-extended/parted/files/fix-compile-failure-while-dis.patch
deleted file mode 100644
index 8c4d2ae66d..0000000000
--- a/meta/recipes-extended/parted/files/fix-compile-failure-while-dis.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From da3f129710929abe9a403901fa7d168355b0e95a Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sun, 3 May 2015 10:33:15 +0200
-Subject: [PATCH] libparted/arch/linux.c: Compile without ENABLE_DEVICE_MAPPER
-
-Signed-off-by: Brian C. Lane <bcl@redhat.com>
----
- libparted/arch/linux.c | 21 +++++++++++++++++----
- 1 file changed, 17 insertions(+), 4 deletions(-)
-
-diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
-index a15854f..7f12f58 100644
---- a/libparted/arch/linux.c
-+++ b/libparted/arch/linux.c
-@@ -2305,6 +2305,7 @@ zasprintf (const char *format, ...)
- return r < 0 ? NULL : resultp;
- }
-
-+#ifdef ENABLE_DEVICE_MAPPER
- static char *
- dm_canonical_path (PedDevice const *dev)
- {
-@@ -2327,14 +2328,21 @@ dm_canonical_path (PedDevice const *dev)
- err:
- return NULL;
- }
-+#endif
-
- static char*
- _device_get_part_path (PedDevice const *dev, int num)
- {
-- char *devpath = (dev->type == PED_DEVICE_DM
-- ? dm_canonical_path (dev) : dev->path);
-- size_t path_len = strlen (devpath);
-+ char *devpath;
-+ size_t path_len;
- char *result;
-+#ifdef ENABLE_DEVICE_MAPPER
-+ devpath = (dev->type == PED_DEVICE_DM
-+ ? dm_canonical_path (dev) : dev->path);
-+#else
-+ devpath = dev->path;
-+#endif
-+ path_len = strlen (devpath);
- /* Check for devfs-style /disc => /partN transformation
- unconditionally; the system might be using udev with devfs rules,
- and if not the test is harmless. */
-@@ -2350,8 +2358,10 @@ _device_get_part_path (PedDevice const *dev, int num)
- ? "p" : "");
- result = zasprintf ("%s%s%d", devpath, p, num);
- }
-+#ifdef ENABLE_DEVICE_MAPPER
- if (dev->type == PED_DEVICE_DM)
- free (devpath);
-+#endif
- return result;
- }
-
-@@ -2946,12 +2956,15 @@ _disk_sync_part_table (PedDisk* disk)
- unsigned long long *length);
-
-
-+#ifdef ENABLE_DEVICE_MAPPER
- if (disk->dev->type == PED_DEVICE_DM) {
- add_partition = _dm_add_partition;
- remove_partition = _dm_remove_partition;
- resize_partition = _dm_resize_partition;
- get_partition_start_and_length = _dm_get_partition_start_and_length;
-- } else {
-+ } else
-+#endif
-+ {
- add_partition = _blkpg_add_partition;
- remove_partition = _blkpg_remove_partition;
- #ifdef BLKPG_RESIZE_PARTITION
---
-2.11.0
-
diff --git a/meta/recipes-extended/parted/files/run-ptest b/meta/recipes-extended/parted/files/run-ptest
index 695c5e8a7b..374f1bfbc9 100644
--- a/meta/recipes-extended/parted/files/run-ptest
+++ b/meta/recipes-extended/parted/files/run-ptest
@@ -1,3 +1,7 @@
#!/bin/sh
-make -C tests check-TESTS
+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.2.bb b/meta/recipes-extended/parted/parted_3.3.bb
index 21a815345a..a1fd3ef07b 100644
--- a/meta/recipes-extended/parted/parted_3.2.bb
+++ b/meta/recipes-extended/parted/parted_3.3.bb
@@ -4,34 +4,28 @@ LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
SECTION = "console/tools"
DEPENDS = "ncurses readline util-linux virtual/libiconv"
-PR = "r1"
SRC_URI = "${GNU_MIRROR}/parted/parted-${PV}.tar.xz \
file://no_check.patch \
file://fix-doc-mandir.patch \
- file://fix-compile-failure-while-dis.patch \
- file://0001-Include-fcntl.h-in-platform_defs.h.patch \
- file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
file://0002-libparted_fs_resize-link-against-libuuid-explicitly-.patch \
file://0001-Move-python-helper-scripts-used-only-in-tests-to-Pyt.patch \
- file://0001-linux-Include-sys-sysmacros.h-for-major-macro.patch \
file://run-ptest \
- file://Makefile \
- file://0001-libparted-Use-read-only-when-probing-devices-on-linu.patch \
- file://dm_check.patch \
-"
+ file://0001-libparted-fs-add-sourcedir-lib-to-include-paths.patch \
+ file://0002-tests-use-skip_-rather-than-skip_test_-which-is-unde.patch \
+ "
-SRC_URI[md5sum] = "0247b6a7b314f8edeb618159fa95f9cb"
-SRC_URI[sha256sum] = "858b589c22297cacdf437f3baff6f04b333087521ab274f7ab677cb8c6bb78e4"
+SRC_URI[md5sum] = "090655d05f3c471aa8e15a27536889ec"
+SRC_URI[sha256sum] = "57e2b4bd87018625c515421d4524f6e3b55175b472302056391c5f7eccb83d44"
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
+ oe_runmake -C tests print-align print-max dup-clobber duplicate fs-resize print-flags
}
do_install_ptest() {
@@ -39,15 +33,24 @@ do_install_ptest() {
mkdir $t/build-aux
cp ${S}/build-aux/test-driver $t/build-aux/
cp -r ${S}/tests $t
- cp ${WORKDIR}/Makefile $t/tests/
+ cp ${B}/tests/Makefile $t/tests/
sed -i "s|^VERSION.*|VERSION = ${PV}|g" $t/tests/Makefile
- for i in print-align print-max dup-clobber duplicate fs-resize; \
+ sed -i "s|^srcdir =.*|srcdir = \.|g" $t/tests/Makefile
+ sed -i "s|^abs_srcdir =.*|abs_srcdir = \.|g" $t/tests/Makefile
+ sed -i "s|^abs_top_srcdir =.*|abs_top_srcdir = \.\.|g" $t/tests/Makefile
+ sed -i "s|^Makefile:.*|Makefile:|g" $t/tests/Makefile
+ for i in print-align print-max print-flags dup-clobber duplicate fs-resize; \
do cp ${B}/tests/.libs/$i $t/tests/; \
done
sed -e 's| ../parted||' -i $t/tests/*.sh
}
-RDEPENDS_${PN}-ptest = "bash coreutils perl util-linux-losetup python3 make"
+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 \
+ "
inherit update-alternatives
diff --git a/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb b/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb
index 7b1b0a117e..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"
+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/procps/procps/0001-Fix-out-of-tree-builds.patch b/meta/recipes-extended/procps/procps/0001-Fix-out-of-tree-builds.patch
deleted file mode 100644
index e548194362..0000000000
--- a/meta/recipes-extended/procps/procps/0001-Fix-out-of-tree-builds.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0825db94fc91fa2150c0e649e92cc8dcc44f4b38 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 4 Apr 2018 14:09:45 +0300
-Subject: [PATCH] Fix out of tree builds
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- include/nls.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/nls.h b/include/nls.h
-index 1166b7b..f5abe05 100644
---- a/include/nls.h
-+++ b/include/nls.h
-@@ -6,7 +6,7 @@
- #define PROCPS_NG_NLS_H
-
- /* programs issuing textdomain() need PACKAGE string */
--#include "../config.h"
-+#include "config.h"
-
- /* programs issuing bindtextdomain() also need LOCALEDIR string */
- #ifndef LOCALEDIR
diff --git a/meta/recipes-extended/procps/procps_3.3.15.bb b/meta/recipes-extended/procps/procps_3.3.16.bb
index 9756db0e7b..2810ebd285 100644
--- a/meta/recipes-extended/procps/procps_3.3.15.bb
+++ b/meta/recipes-extended/procps/procps_3.3.16.bb
@@ -4,26 +4,33 @@ the /proc filesystem. The package includes the programs ps, top, vmstat, w, kill
HOMEPAGE = "https://gitlab.com/procps-ng/procps"
SECTION = "base"
LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM="file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db \
- "
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db \
+ "
DEPENDS = "ncurses"
inherit autotools gettext pkgconfig update-alternatives
-SRC_URI = "http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-${PV}.tar.xz \
+SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https \
file://sysctl.conf \
- file://0001-Fix-out-of-tree-builds.patch \
"
+SRCREV = "59c88e18f29000ceaf7e5f98181b07be443cf12f"
-SRC_URI[md5sum] = "2b0717a7cb474b3d6dfdeedfbad2eccc"
-SRC_URI[sha256sum] = "10bd744ffcb3de2d591d2f6acf1a54a7ba070fdcc432a855931a5057149f0465"
+S = "${WORKDIR}/git"
-S = "${WORKDIR}/procps-ng-${PV}"
+# Upstream has a custom autogen.sh which invokes po/update-potfiles as they
+# don't ship a po/POTFILES.in (which is silly). Without that file gettext
+# doesn't believe po/ is a gettext directory and won't generate po/Makefile.
+do_configure_prepend() {
+ ( cd ${S} && po/update-potfiles )
+}
EXTRA_OECONF = "--enable-skill --disable-modern-top"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
+
do_install_append () {
install -d ${D}${base_bindir}
[ "${bindir}" != "${base_bindir}" ] && for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i; done
@@ -64,3 +71,6 @@ python __anonymous() {
d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog))
}
+# 'ps' isn't suitable for use as a security tool so whitelist this CVE.
+# https://bugzilla.redhat.com/show_bug.cgi?id=1575473#c3
+CVE_CHECK_WHITELIST += "CVE-2018-1121"
diff --git a/meta/recipes-extended/psmisc/psmisc.inc b/meta/recipes-extended/psmisc/psmisc.inc
index 594a10cf22..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"
@@ -19,7 +19,6 @@ inherit autotools gettext
# Upstream has a custom autogen.sh which invokes po/update-potfiles as they
# don't ship a po/POTFILES.in (which is silly). Without that file gettext
# doesn't believe po/ is a gettext directory and won't generate po/Makefile.
-EXTRA_AUTORECONF_remove = "--exclude=autopoint"
do_configure_prepend() {
( cd ${S} && po/update-potfiles )
}
diff --git a/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch b/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch
deleted file mode 100644
index 4d44495fd3..0000000000
--- a/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 285877b7761d74736aca2687ed9bef2f78b82c33 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 2 Nov 2017 16:21:22 +0200
-Subject: [PATCH] Makefile.am: create src directory before attempting to write
- there
-
-Otherwise out of tree builds will fail.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 9f61ab4..b4ced7f 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -79,7 +79,7 @@ EXTRA_DIST = src/signames.c README.md
- CLEANFILES = src/signames.h
-
- src/signames.h: src/signames.c Makefile
-- export LC_ALL=C ; \
-+ export LC_ALL=C ; mkdir -p src ; \
- @CPP@ -dM $< |\
- tr -s '\t ' ' ' | sort -n -k 3 | sed \
- 's:#define SIG\([A-Z][A-Z]*[0-9]*\) \([0-9][0-9]*\).*$\:{\ \2,"\1" },:p;d' | \
---
-2.14.2
-
diff --git a/meta/recipes-extended/psmisc/psmisc_23.2.bb b/meta/recipes-extended/psmisc/psmisc_23.3.bb
index 38e0a44058..e569f1074b 100644
--- a/meta/recipes-extended/psmisc/psmisc_23.2.bb
+++ b/meta/recipes-extended/psmisc/psmisc_23.3.bb
@@ -4,7 +4,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
SRC_URI = "git://gitlab.com/psmisc/psmisc.git;protocol=https \
file://0001-Use-UINTPTR_MAX-instead-of-__WORDSIZE.patch \
- file://0001-Makefile.am-create-src-directory-before-attempting-t.patch \
"
-SRCREV = "44eab9a3a63394eae6b79a7ef0a042f57e0c8a8f"
+SRCREV = "78bde849041e6c914a2a517ebe1255b86dc98772"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch b/meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch
new file mode 100644
index 0000000000..b92f2cf7b1
--- /dev/null
+++ b/meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch
@@ -0,0 +1,42 @@
+From da528d5d60137f13202102b53cf178aba45849a5 Mon Sep 17 00:00:00 2001
+From: Stefan Agner <stefan.agner@toradex.com>
+Date: Sun, 6 Oct 2019 00:05:54 +0200
+Subject: [PATCH] systemd: use EnvironmentFile
+
+Use OE specific environment file.
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
+---
+ configure.ac | 2 ++
+ systemd/rpcbind.service.in | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2dd9471..47a46c0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -69,5 +69,7 @@ AC_CHECK_HEADERS([nss.h rpcsvc/mount.h])
+ # 2 "evals" needed to expand variable names
+ AC_SUBST([_sbindir])
+ AC_CONFIG_COMMANDS_PRE([eval eval _sbindir=$sbindir])
++AC_SUBST([_sysconfdir])
++AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sbindir])
+
+ AC_OUTPUT([Makefile systemd/rpcbind.service])
+diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
+index 7b1c74b..f45ee1e 100644
+--- a/systemd/rpcbind.service.in
++++ b/systemd/rpcbind.service.in
+@@ -11,7 +11,7 @@ Wants=rpcbind.target
+
+ [Service]
+ Type=notify
+-# distro can provide a drop-in adding EnvironmentFile=-/??? if needed.
++EnvironmentFile=-@_sysconfdir@/rpcbind.conf
+ ExecStart=@_sbindir@/rpcbind $RPCBIND_OPTIONS -w -f
+
+ [Install]
+--
+2.23.0
+
diff --git a/meta/recipes-extended/rpcbind/rpcbind/rpcbind.conf b/meta/recipes-extended/rpcbind/rpcbind/rpcbind.conf
index 2a4dfbcfbc..f423ac1788 100644
--- a/meta/recipes-extended/rpcbind/rpcbind/rpcbind.conf
+++ b/meta/recipes-extended/rpcbind/rpcbind/rpcbind.conf
@@ -1,3 +1,3 @@
# Optional arguments passed to rpcbind.
#
-RPCBIND_OPTS=""
+RPCBIND_OPTIONS=""
diff --git a/meta/recipes-extended/rpcbind/rpcbind/rpcbind.service b/meta/recipes-extended/rpcbind/rpcbind/rpcbind.service
deleted file mode 100644
index 9cdade4959..0000000000
--- a/meta/recipes-extended/rpcbind/rpcbind/rpcbind.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=RPC Bind Service
-Requires=rpcbind.socket
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/rpcbind.conf
-ExecStart=@SBINDIR@/rpcbind $RPCBIND_OPTS
-SuccessExitStatus=2
-
-[Install]
-Also=rpcbind.socket
diff --git a/meta/recipes-extended/rpcbind/rpcbind/rpcbind.socket b/meta/recipes-extended/rpcbind/rpcbind/rpcbind.socket
deleted file mode 100644
index d63c1d9720..0000000000
--- a/meta/recipes-extended/rpcbind/rpcbind/rpcbind.socket
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=RPCbind Server Activation Socket
-
-[Socket]
-ListenStream=/var/run/rpcbind.sock
-
-[Install]
-WantedBy=sockets.target
diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb
index 7c96aca36b..ec8f9e48b2 100644
--- a/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb
+++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb
@@ -6,21 +6,20 @@ HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
BUGTRACKER = "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
DEPENDS = "libtirpc quota"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
file://src/rpcinfo.c;beginline=1;endline=27;md5=f8a8cd2cb25ac5aa16767364fb0e3c24"
SRC_URI = "${SOURCEFORGE_MIRROR}/rpcbind/rpcbind-${PV}.tar.bz2 \
file://init.d \
file://rpcbind.conf \
- file://rpcbind.socket \
- file://rpcbind.service \
file://rpcbind_add_option_to_fix_port_number.patch \
+ file://0001-systemd-use-EnvironmentFile.patch \
"
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"
@@ -28,7 +27,7 @@ PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
INITSCRIPT_NAME = "rpcbind"
INITSCRIPT_PARAMS = "start 12 2 3 4 5 . stop 60 0 1 6 ."
-SYSTEMD_SERVICE_${PN} = "rpcbind.service"
+SYSTEMD_SERVICE_${PN} = "rpcbind.service rpcbind.socket"
inherit useradd
@@ -50,12 +49,7 @@ do_install_append () {
-e 's,/sbin/,${sbindir}/,g' \
${WORKDIR}/init.d > ${D}${sysconfdir}/init.d/rpcbind
chmod 0755 ${D}${sysconfdir}/init.d/rpcbind
-
- install -m 0755 ${WORKDIR}/rpcbind.conf ${D}${sysconfdir}
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/rpcbind.socket ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/rpcbind.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- ${D}${systemd_unitdir}/system/rpcbind.service
}
+
+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/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch b/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch
deleted file mode 100644
index 1274b27940..0000000000
--- a/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 4b258c5a9078f8df60684ab7536ce3a8ff207e08 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 12 Oct 2017 10:03:57 +0000
-Subject: [PATCH] configure.ac: fix configure failed while build dir contains "yes"
-
-While the name of build dir contains "yes", the AC_EGREP_CPP
-test always return true.
-
-We rarely use "yes;" to name build dir, so s/yes/yes;/g
-could fix the issue
-
-Upstream-Status: Accepted
-https://git.savannah.gnu.org/cgit/screen.git/commit/?h=screen-v4&id=8c2b4061d16756ee2ed37f08db063b8215656943
-
-Signed-off-by: Jian Kang <jian.kang@windriver.com>
----
- configure.ac | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 12996cd..4765af6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -128,7 +128,7 @@ fi
-
-
- AC_CHECKING(for Ultrix)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#if defined(ultrix) || defined(__ultrix)
- yes;
- #endif
-@@ -145,7 +145,7 @@ dnl ghazi@caip.rutgers.edu (Kaveh R. Ghazi):
- dnl BBN butterfly is not POSIX, but a MACH BSD system.
- dnl Do not define POSIX and TERMIO.
- AC_CHECKING(for butterfly)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#if defined(butterfly)
- yes;
- #endif
-@@ -156,7 +156,7 @@ if test -n "$ULTRIX"; then
- test -z "$GCC" && CC="$CC -YBSD"
- fi
- AC_CHECKING(for POSIX.1)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#include <sys/types.h>
- #include <unistd.h>
- main () {
-@@ -173,14 +173,14 @@ AC_TRY_COMPILE(
- #include <fcntl.h>], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE(SYSV))
-
- AC_CHECKING(for sequent/ptx)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#ifdef _SEQUENT_
- yes;
- #endif
- ], LIBS="$LIBS -lsocket -linet";seqptx=1)
-
- AC_CHECKING(SVR4)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [main () {
- #if defined(SVR4) || defined(__SVR4)
- yes;
-@@ -200,9 +200,9 @@ fi
- AC_CHECK_HEADERS([stropts.h string.h strings.h])
-
- AC_CHECKING(for Solaris 2.x)
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#if defined(SVR4) && defined(sun)
-- yes
-+ yes;
- #endif
- ], LIBS="$LIBS -lsocket -lnsl -lkstat")
-
-@@ -697,7 +697,7 @@ else
- pdir='/dev'
- fi
- dnl SCO uses ptyp%d
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#ifdef M_UNIX
- yes;
- #endif
-@@ -880,7 +880,7 @@ fi
- )
-
- if test -z "$load" ; then
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#if defined(NeXT) || defined(apollo) || defined(linux)
- yes;
- #endif
-@@ -1112,7 +1112,7 @@ AC_CHECKING(syslog in libbsd.a)
- AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs"
- AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])])
-
--AC_EGREP_CPP(yes,
-+AC_EGREP_CPP(yes;,
- [#ifdef M_UNIX
- yes;
- #endif
---
-2.13.3
-
diff --git a/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch b/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch
deleted file mode 100644
index e184aa1f31..0000000000
--- a/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 79afb676904653403145fda9e1a6a9d3ea1cb22a Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Aug 2015 11:10:32 +0300
-Subject: [PATCH 4/4] Avoid mis-identifying systems as SVR4
-
-Linux can be misdetected as SVR4 because it has
-libelf installed. This leads to linking with libelf, even though no
-symbols from that library were actually used, and to a workaround for
-a buggy getlogin() being enabled.
-
-It is not documented which exact SVR4 system had the bug that the
-workaround was added for, so all I could do is make an educated guess
-at the #defines its compiler would be likely to set.
-
-Modified from patch by Maarten ter Huurne.
-
-Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index dc928ae..65439ce 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -179,14 +179,24 @@ AC_EGREP_CPP(yes,
- #endif
- ], LIBS="$LIBS -lsocket -linet";seqptx=1)
-
-+AC_CHECKING(SVR4)
-+AC_EGREP_CPP(yes,
-+[main () {
-+#if defined(SVR4) || defined(__SVR4)
-+ yes;
-+#endif
-+], AC_NOTE(- you have a SVR4 system) AC_DEFINE(SVR4) svr4=1)
-+if test -n "$svr4" ; then
- oldlibs="$LIBS"
- LIBS="$LIBS -lelf"
- AC_CHECKING(SVR4)
- AC_TRY_LINK([#include <utmpx.h>
- ],,
--[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
--[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])]
-+[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(BUGGYGETLOGIN),
-+[AC_CHECK_HEADER(elf.h, AC_DEFINE(BUGGYGETLOGIN))])]
- ,LIBS="$oldlibs")
-+fi
-+
- AC_CHECK_HEADERS([stropts.h string.h strings.h])
-
- AC_CHECKING(for Solaris 2.x)
---
-2.1.4
-
diff --git a/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch b/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch
deleted file mode 100644
index 248bf087e2..0000000000
--- a/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From cd0f7f10a3fffbc60fe55eb200474d13fe1da65b Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Aug 2015 10:34:29 +0300
-Subject: [PATCH 2/4] Provide cross compile alternatives for AC_TRY_RUN
-
-Modified from patch by Maarten ter Huurne.
-
-Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 32 ++++++++++++++++++++------------
- 1 file changed, 20 insertions(+), 12 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 27690a6..ce89f56 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -348,7 +348,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your fifos are usable) fifo=1,
--AC_NOTE(- your fifos are not usable))
-+AC_NOTE(- your fifos are not usable),
-+AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1)
- rm -f /tmp/conftest*
-
- if test -n "$fifo"; then
-@@ -396,7 +397,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your implementation is ok),
--AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1)
-+AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1,
-+AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok))
- rm -f /tmp/conftest*
- fi
-
-@@ -458,7 +460,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your sockets are usable) sock=1,
--AC_NOTE(- your sockets are not usable))
-+AC_NOTE(- your sockets are not usable),
-+AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1)
- rm -f /tmp/conftest*
-
- if test -n "$sock"; then
-@@ -497,7 +500,8 @@ main()
- }
- ],AC_NOTE(- you are normal),
- AC_NOTE(- unix domain sockets are not kept in the filesystem)
--AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1)
-+AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1,
-+AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal))
- rm -f /tmp/conftest*
- fi
-
-@@ -624,7 +628,8 @@ main()
- exit(0);
- }
- ],AC_NOTE(- select is ok),
--AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN))
-+AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN),
-+AC_NOTE(- skipping check because we are cross compiling; assuming select is ok))
-
- dnl
- dnl **** termcap or terminfo ****
-@@ -666,7 +671,8 @@ main()
- {
- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
- }], AC_NOTE(- you use the termcap database),
--AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO))
-+AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO),
-+AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO))
- AC_CHECKING(ospeed)
- AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
-
-@@ -801,7 +807,8 @@ main()
- else
- AC_NOTE(- can't determine - assume ptys are world accessable)
- fi
-- ]
-+ ],
-+ AC_NOTE(- skipping check because we are cross compiling; assuming ptys are world accessable)
- )
- rm -f conftest_grp
- fi
-@@ -885,7 +892,7 @@ AC_EGREP_CPP(yes,
- #endif
- ], load=1)
- fi
--if test -z "$load" ; then
-+if test -z "$load" && test "$cross_compiling" = no ; then
- AC_CHECKING(for kernelfile)
- for core in /unix /vmunix /dynix /hp-ux /xelos /dev/ksyms /kernel/unix /kernel/genunix /unicos /mach /netbsd /386bsd /dgux /bsd /stand/vmunix; do
- if test -f $core || test -c $core; then
-@@ -1078,7 +1085,7 @@ main()
- #endif
- exit(0);
- }
--],,AC_DEFINE(SYSVSIGS))
-+],,AC_DEFINE(SYSVSIGS),:)
-
- fi
-
-@@ -1158,7 +1165,7 @@ main() {
- if (strncmp(buf, "cdedef", 6))
- exit(1);
- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEBCOPY))
-+}], AC_DEFINE(USEBCOPY),,:)
-
- AC_TRY_RUN([
- #define bcopy(s,d,l) memmove(d,s,l)
-@@ -1173,7 +1180,8 @@ main() {
- if (strncmp(buf, "cdedef", 6))
- exit(1);
- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEMEMMOVE))
-+}], AC_DEFINE(USEMEMMOVE),,
-+ AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE))
-
-
- AC_TRY_RUN([
-@@ -1189,7 +1197,7 @@ main() {
- if (strncmp(buf, "cdedef", 6))
- exit(1);
- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEMEMCPY))
-+}], AC_DEFINE(USEMEMCPY),,:)
-
- AC_SYS_LONG_FILE_NAMES
-
---
-2.1.4
-
diff --git a/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch b/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch
deleted file mode 100644
index cc62c12e05..0000000000
--- a/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 73b726c25f94c1b15514ed9249b927afdfbbfb94 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Aug 2015 10:30:40 +0300
-Subject: [PATCH 1/4] Remove redundant compiler sanity checks
-
-AC_PROG_CC already performs sanity checks. And unlike the removed
-checks, it does so in a way that supports cross compilation.
-
-Modified from patch by Maarten ter Huurne.
-
-Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 27 ---------------------------
- 1 file changed, 27 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ffe2e37..27690a6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -48,31 +48,6 @@ AC_PROG_GCC_TRADITIONAL
- AC_ISC_POSIX
- AC_USE_SYSTEM_EXTENSIONS
-
--AC_TRY_RUN(main(){exit(0);},,[
--if test $CC != cc ; then
--AC_NOTE(Your $CC failed - restarting with CC=cc)
--AC_NOTE()
--CC=cc
--export CC
--exec $0 $configure_args
--fi
--])
--
--AC_TRY_RUN(main(){exit(0);},,
--exec 5>&2
--eval $ac_link
--AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;)
--AC_NOTE($ac_compile)
--AC_MSG_ERROR(Can't run the compiler - sorry))
--
--AC_TRY_RUN([
--main()
--{
-- int __something_strange_();
-- __something_strange_(0);
--}
--],AC_MSG_ERROR(Your compiler does not set the exit status - sorry))
--
- AC_PROG_AWK
-
- AC_PROG_INSTALL
-@@ -1300,8 +1275,6 @@ fi
- dnl Ptx bug workaround -- insert -lc after -ltermcap
- test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq"
-
--AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.))
--
- ETCSCREENRC=
- AC_MSG_CHECKING(for the global screenrc file)
- AC_ARG_WITH(sys-screenrc, [ --with-sys-screenrc=path to the global screenrc file], [ ETCSCREENRC="${withval}" ])
---
-2.1.4
-
diff --git a/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch b/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch
deleted file mode 100644
index d7e55a4451..0000000000
--- a/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From d0b20e4cacc60ad62a2150ce07388cb5a25c2040 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Aug 2015 11:09:01 +0300
-Subject: [PATCH 3/4] Skip host file system checks when cross-compiling
-
-Modified from patch by Maarten ter Huurne.
-
-Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 23 +++++++++++++++++++----
- 1 file changed, 19 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ce89f56..dc928ae 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -85,7 +85,7 @@ AC_ARG_ENABLE(socket-dir,
- dnl
- dnl **** special unix variants ****
- dnl
--if test -n "$ISC"; then
-+if test "$cross_compiling" = no && test -n "$ISC" ; then
- AC_DEFINE(ISC) LIBS="$LIBS -linet"
- fi
-
-@@ -96,10 +96,11 @@ dnl AC_DEFINE(OSF1) # this disables MIPS again....
- dnl fi
- dnl fi
-
--if test -f /sysV68 ; then
-+if test "$cross_compiling" = no && test -f /sysV68 ; then
- AC_DEFINE(sysV68)
- fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for MIPS)
- if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then
- oldlibs="$LIBS"
-@@ -123,6 +124,7 @@ AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd"
- ))
- fi
- fi
-+fi
-
-
- AC_CHECKING(for Ultrix)
-@@ -132,7 +134,7 @@ AC_EGREP_CPP(yes,
- #endif
- ], ULTRIX=1)
-
--if test -f /usr/lib/libpyr.a ; then
-+if test "$cross_compiling" = no && test -f /usr/lib/libpyr.a ; then
- oldlibs="$LIBS"
- LIBS="$LIBS -lpyr"
- AC_CHECKING(Pyramid OSX)
-@@ -679,17 +681,21 @@ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
- dnl
- dnl **** PTY specific things ****
- dnl
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for /dev/ptc)
- if test -r /dev/ptc; then
- AC_DEFINE(HAVE_DEV_PTC)
- fi
-+fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for SVR4 ptys)
- sysvr4ptys=
- if test -c /dev/ptmx ; then
- AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
- sysvr4ptys=1])
- fi
-+fi
-
- AC_CHECK_FUNCS(getpt)
-
-@@ -699,6 +705,7 @@ AC_CHECK_FUNCS(openpty,,
- [AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])])
- fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for ptyranges)
- if test -d /dev/ptym ; then
- pdir='/dev/ptym'
-@@ -722,6 +729,7 @@ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\
- AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
- AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
- fi
-+fi
-
- dnl **** pty mode/group handling ****
- dnl
-@@ -869,14 +877,16 @@ fi
- dnl
- dnl **** loadav ****
- dnl
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for libutil(s))
- test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils"
- test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
-+fi
-
- AC_CHECKING(getloadavg)
- AC_TRY_LINK(,[getloadavg((double *)0, 0);],
- AC_DEFINE(LOADAV_GETLOADAVG) load=1,
--if test -f /usr/lib/libkvm.a ; then
-+if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then
- olibs="$LIBS"
- LIBS="$LIBS -lkvm"
- AC_CHECKING(getloadavg with -lkvm)
-@@ -1094,13 +1104,18 @@ dnl **** libraries ****
- dnl
-
- AC_CHECKING(for crypt and sec libraries)
-+if test "$cross_compiling" = no ; then
- test -f /lib/libcrypt_d.a || test -f /usr/lib/libcrypt_d.a && LIBS="$LIBS -lcrypt_d"
-+fi
- oldlibs="$LIBS"
- LIBS="$LIBS -lcrypt"
- AC_CHECKING(crypt)
- AC_TRY_LINK(,,,LIBS="$oldlibs")
-+if test "$cross_compiling" = no ; then
- test -f /lib/libsec.a || test -f /usr/lib/libsec.a && LIBS="$LIBS -lsec"
- test -f /lib/libshadow.a || test -f /usr/lib/libshadow.a && LIBS="$LIBS -lshadow"
-+fi
-+
- oldlibs="$LIBS"
- LIBS="$LIBS -lsun"
- AC_CHECKING(IRIX sun library)
---
-2.1.4
-
diff --git a/meta/recipes-extended/screen/screen_4.6.2.bb b/meta/recipes-extended/screen/screen_4.8.0.bb
index 21b476ddb0..4772eb6c7a 100644
--- a/meta/recipes-extended/screen/screen_4.6.2.bb
+++ b/meta/recipes-extended/screen/screen_4.8.0.bb
@@ -9,7 +9,8 @@ SECTION = "console/utils"
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://screen.h;endline=26;md5=3971142989289a8198a544220703c2bf"
+ file://screen.h;endline=26;md5=b8dc717c9a3dba842ae6c44ca0f73f52 \
+ "
DEPENDS = "ncurses virtual/crypt \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
@@ -17,18 +18,13 @@ RDEPENDS_${PN} = "base-files"
SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://screen.pam', '', d)} \
- file://Remove-redundant-compiler-sanity-checks.patch \
- file://Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch \
- file://Skip-host-file-system-checks-when-cross-compiling.patch \
- file://Avoid-mis-identifying-systems-as-SVR4.patch \
file://0002-comm.h-now-depends-on-term.h.patch \
file://0001-fix-for-multijob-build.patch \
- file://0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch \
file://0001-Remove-more-compatibility-stuff.patch \
"
-SRC_URI[md5sum] = "a0f529d3333b128dfaa324d978ba73a8"
-SRC_URI[sha256sum] = "1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a"
+SRC_URI[md5sum] = "d276213d3acd10339cd37848b8c4ab1e"
+SRC_URI[sha256sum] = "6e11b13d8489925fde25dfb0935bf6ed71f9eb47eff233a181e078fde5655aa1"
inherit autotools texinfo
diff --git a/meta/recipes-extended/sed/sed-4.2.2/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta/recipes-extended/sed/sed-4.2.2/0001-Unset-need_charset_alias-when-building-for-musl.patch
deleted file mode 100644
index ba1a4bab4c..0000000000
--- a/meta/recipes-extended/sed/sed-4.2.2/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 13 Apr 2015 17:02:13 -0700
-Subject: [PATCH] Unset need_charset_alias when building for musl
-
-localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
-which actually shoudl be fixed in gnulib and then all downstream
-projects will get it eventually. For now we apply the fix to
-coreutils
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/gnulib.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/gnulib.mk b/lib/gnulib.mk
-index e1d74db..c0e92dd 100644
---- a/lib/gnulib.mk
-+++ b/lib/gnulib.mk
-@@ -1882,7 +1882,7 @@ install-exec-localcharset: all-local
- case '$(host_os)' in \
- darwin[56]*) \
- need_charset_alias=true ;; \
-- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
- need_charset_alias=false ;; \
- *) \
- need_charset_alias=true ;; \
---
-2.1.4
-
diff --git a/meta/recipes-extended/sed/sed-4.2.2/run-ptest b/meta/recipes-extended/sed/sed-4.2.2/run-ptest
deleted file mode 100644
index 7c0f62770e..0000000000
--- a/meta/recipes-extended/sed/sed-4.2.2/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-make -C testsuite -k runtest-TESTS
diff --git a/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch b/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch
deleted file mode 100644
index 0293900fbf..0000000000
--- a/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-sed: add ptest
-
-ptest needs buildtest-TESTS and runtest-TESTS targets.
-serial-tests is required to generate those targets.
-
-And fix following error after add serial-tests.
-
-[snip]
-help2man: can't get `--help' info from ../sed/sed
-make[2]: *** [sed.1] Error 2
-[snip]
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
----
- configure.ac | 2 +-
- doc/Makefile.am | 2 +-
- testsuite/Makefile.am | 6 ++++++
- 3 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9d33ec9..4f0c532 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -4,7 +4,7 @@ AC_CONFIG_AUX_DIR(build-aux)
- AC_CONFIG_SRCDIR([sed/sed.c])
- AM_CONFIG_HEADER(config.h:config_h.in)
- AC_PREREQ(2.60)
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([serial-tests])
-
- SED_FEATURE_VERSION=4.2.2
- AC_DEFINE_UNQUOTED(SED_FEATURE_VERSION, "$SED_FEATURE_VERSION",
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index af6975c..6fd8c9a 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -25,7 +25,7 @@ $(srcdir)/s-texi: sed-in.texi $(srcdir)/groupify.sed
- fi
- echo stamp > $(srcdir)/s-texi
-
--sed.1: $(top_srcdir)/sed/sed.c $(top_srcdir)/configure.ac $(srcdir)/sed.x
-+_sed.1: $(top_srcdir)/sed/sed.c $(top_srcdir)/configure.ac $(srcdir)/sed.x
- $(HELP2MAN) --name "stream editor for filtering and transforming text" \
- -p sed --include $(srcdir)/sed.x -o $(srcdir)/sed.1 $(SED)
-
-diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
-index d80e72c..b05f01e 100644
---- a/testsuite/Makefile.am
-+++ b/testsuite/Makefile.am
-@@ -99,5 +99,11 @@ EXTRA_DIST = \
- # automake makes `check' depend on $(TESTS). Declare
- # dummy targets for $(TESTS) so that make does not complain.
-
-+install-ptest:
-+ cd $(BUILDDIR); tar -c --exclude=*.o $(TESTDIR) | ( cd $(DESTDIR) && tar -xf - )
-+ for i in $(EXTRA_DIST) tst-regex2.c; do install $(srcdir)/$$i $(DESTDIR)/$(TESTDIR); done
-+ sed -e 's/^Makefile:/_Makefile:/' -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/bash/sh/' -i $(DESTDIR)/$(TESTDIR)/Makefile
-+ for i in `grep -rl "../sed/sed" $(DESTDIR)/$(TESTDIR)`; do sed -e 's/..\/sed\/sed/sed/' -i $$i; done
-+
- .PHONY: $(SEDTESTS)
- $(SEDTESTS):
---
-1.7.9.5
-
diff --git a/meta/recipes-extended/sed/sed/run-ptest b/meta/recipes-extended/sed/sed/run-ptest
new file mode 100644
index 0000000000..993d7d5d75
--- /dev/null
+++ b/meta/recipes-extended/sed/sed/run-ptest
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+chown nobody testsuite
+chown nobody ../ptest
+su nobody -c "make test-suite.log"
diff --git a/meta/recipes-extended/sed/sed_4.2.2.bb b/meta/recipes-extended/sed/sed_4.2.2.bb
deleted file mode 100644
index 8e436bad80..0000000000
--- a/meta/recipes-extended/sed/sed_4.2.2.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Stream EDitor (text filtering utility)"
-HOMEPAGE = "http://www.gnu.org/software/sed/"
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
- file://sed/sed.h;beginline=1;endline=17;md5=767ab3a06d7584f6fd0469abaec4412f"
-SECTION = "console/utils"
-
-SRC_URI = "${GNU_MIRROR}/sed/sed-${PV}.tar.gz \
- file://sed-add-ptest.patch \
- file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
- file://run-ptest \
-"
-
-SRC_URI[md5sum] = "4111de4faa3b9848a0686b2f260c5056"
-SRC_URI[sha256sum] = "fea0a94d4b605894f3e2d5572e3f96e4413bcad3a085aae7367c2cf07908b2ff"
-
-inherit autotools texinfo update-alternatives gettext ptest
-RDEPENDS_${PN}-ptest += "make"
-RRECOMMENDS_${PN}-ptest_append_libc-glibc = " locale-base-ru-ru"
-
-EXTRA_OECONF = "--disable-acl \
- ${@bb.utils.contains('PTEST_ENABLED', '1', '--enable-regex-tests', '', d)}"
-
-do_install () {
- autotools_do_install
- install -d ${D}${base_bindir}
- if [ ! ${D}${bindir} -ef ${D}${base_bindir} ]; then
- mv ${D}${bindir}/sed ${D}${base_bindir}/sed
- rmdir ${D}${bindir}/
- fi
-}
-
-ALTERNATIVE_${PN} = "sed"
-ALTERNATIVE_LINK_NAME[sed] = "${base_bindir}/sed"
-ALTERNATIVE_PRIORITY = "100"
-
-TESTDIR = "testsuite"
-
-do_compile_ptest() {
- oe_runmake -C ${TESTDIR} buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR}
- sed -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:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
- -i ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-}
-
-RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sed', '', d)}"
diff --git a/meta/recipes-extended/sed/sed_4.8.bb b/meta/recipes-extended/sed/sed_4.8.bb
new file mode 100644
index 0000000000..39e3a61df5
--- /dev/null
+++ b/meta/recipes-extended/sed/sed_4.8.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Stream EDitor (text filtering utility)"
+HOMEPAGE = "http://www.gnu.org/software/sed/"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e \
+ file://sed/sed.h;beginline=1;endline=15;md5=fb3c7e6fbca6f66943859153d4be8efe \
+ "
+SECTION = "console/utils"
+
+SRC_URI = "${GNU_MIRROR}/sed/sed-${PV}.tar.xz \
+ file://run-ptest \
+"
+
+SRC_URI[md5sum] = "6d906edfdb3202304059233f51f9a71d"
+SRC_URI[sha256sum] = "f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633"
+
+inherit autotools texinfo update-alternatives gettext ptest
+
+PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
+
+RDEPENDS_${PN}-ptest += "make gawk perl perl-module-filehandle perl-module-file-compare perl-module-file-find perl-module-file-temp perl-module-file-stat"
+RRECOMMENDS_${PN}-ptest_append_libc-glibc = " locale-base-ru-ru locale-base-en-us locale-base-el-gr.iso-8859-7"
+
+EXTRA_OECONF = "--disable-acl \
+ "
+
+do_install () {
+ autotools_do_install
+ install -d ${D}${base_bindir}
+ if [ ! ${D}${bindir} -ef ${D}${base_bindir} ]; then
+ mv ${D}${bindir}/sed ${D}${base_bindir}/sed
+ rmdir ${D}${bindir}/
+ fi
+}
+
+ALTERNATIVE_${PN} = "sed"
+ALTERNATIVE_LINK_NAME[sed] = "${base_bindir}/sed"
+ALTERNATIVE_PRIORITY = "100"
+
+do_compile_ptest() {
+ oe_runmake testsuite/get-mb-cur-max testsuite/test-mbrtowc
+}
+
+do_install_ptest() {
+ cp -rf ${S}/testsuite/ ${D}${PTEST_PATH}
+ cp -rf ${B}/testsuite/* ${D}${PTEST_PATH}/testsuite/
+ cp -rf ${S}/build-aux/ ${D}${PTEST_PATH}/
+ cp ${B}/Makefile ${D}${PTEST_PATH}
+ cp ${S}/init.cfg ${D}${PTEST_PATH}
+
+ sed -e 's/^Makefile:/_Makefile:/' -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/bash/sh/' -i ${D}${PTEST_PATH}/Makefile
+ for i in `grep -rl "sed/sed" ${D}${PTEST_PATH}`; do sed -e 's/..\/sed\/sed/sed/' -i $i; done
+
+ sed -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:abs_top_builddir =.*:abs_top_builddir = ..:g' \
+ -e 's:abs_top_srcdir =.*:abs_top_srcdir = ..:g' \
+ -e 's:abs_srcdir =.*:abs_srcdir = ..:g' \
+ -e 's:top_srcdir =.*:top_srcdir = ..:g' \
+ -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
+ -i ${D}${PTEST_PATH}/Makefile
+}
+
+RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sed', '', d)}"
diff --git a/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch b/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
index aac2d42b12..ab317b9aa0 100644
--- a/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
+++ b/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
@@ -1,4 +1,4 @@
-From 8cf3454d567f77233023be49a39a33e9f0836f89 Mon Sep 17 00:00:00 2001
+From fa2d9453656641002802d8165e80adb9e6a729d2 Mon Sep 17 00:00:00 2001
From: Scott Garman <scott.a.garman@intel.com>
Date: Thu, 14 Apr 2016 12:28:57 +0200
Subject: [PATCH] Disable use of syslog for sysroot
@@ -12,6 +12,7 @@ Upstream-Status: Inappropriate [disable feature]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/groupadd.c | 3 +++
src/groupdel.c | 3 +++
@@ -23,7 +24,7 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
7 files changed, 21 insertions(+)
diff --git a/src/groupadd.c b/src/groupadd.c
-index 63e1c48..a596c49 100644
+index 2dd8eec..e9c4bb7 100644
--- a/src/groupadd.c
+++ b/src/groupadd.c
@@ -34,6 +34,9 @@
@@ -37,7 +38,7 @@ index 63e1c48..a596c49 100644
#include <fcntl.h>
#include <getopt.h>
diff --git a/src/groupdel.c b/src/groupdel.c
-index 70bed01..ababd81 100644
+index f941a84..5a70056 100644
--- a/src/groupdel.c
+++ b/src/groupdel.c
@@ -34,6 +34,9 @@
@@ -65,7 +66,7 @@ index fc91c8b..2842514 100644
#include <getopt.h>
#include <grp.h>
diff --git a/src/groupmod.c b/src/groupmod.c
-index 72daf2c..8965f9d 100644
+index 1dca5fc..bc14438 100644
--- a/src/groupmod.c
+++ b/src/groupmod.c
@@ -34,6 +34,9 @@
@@ -79,7 +80,7 @@ index 72daf2c..8965f9d 100644
#include <fcntl.h>
#include <getopt.h>
diff --git a/src/useradd.c b/src/useradd.c
-index 3aaf45c..1ab9174 100644
+index 4af0f7c..1b7bf06 100644
--- a/src/useradd.c
+++ b/src/useradd.c
@@ -34,6 +34,9 @@
@@ -93,7 +94,7 @@ index 3aaf45c..1ab9174 100644
#include <ctype.h>
#include <errno.h>
diff --git a/src/userdel.c b/src/userdel.c
-index c8de1d3..24d3ea9 100644
+index cc951e5..153e0be 100644
--- a/src/userdel.c
+++ b/src/userdel.c
@@ -34,6 +34,9 @@
@@ -107,7 +108,7 @@ index c8de1d3..24d3ea9 100644
#include <errno.h>
#include <fcntl.h>
diff --git a/src/usermod.c b/src/usermod.c
-index ccfbb99..24fb60d 100644
+index 05b9871..21c6da9 100644
--- a/src/usermod.c
+++ b/src/usermod.c
@@ -34,6 +34,9 @@
@@ -120,6 +121,3 @@ index ccfbb99..24fb60d 100644
#include <assert.h>
#include <ctype.h>
#include <errno.h>
---
-2.11.0
-
diff --git a/meta/recipes-extended/shadow/files/0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch b/meta/recipes-extended/shadow/files/0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch
deleted file mode 100644
index de0ba3ebb4..0000000000
--- a/meta/recipes-extended/shadow/files/0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From fe34a2a0e44bc80ff213bfd185046a5f10c94997 Mon Sep 17 00:00:00 2001
-From: Chris Lamb <chris@chris-lamb.co.uk>
-Date: Wed, 2 Jan 2019 18:06:16 +0000
-Subject: [PATCH 1/2] Make the sp_lstchg shadow field reproducible (re. #71)
-
-From <https://github.com/shadow-maint/shadow/pull/71>:
-
-```
-The third field in the /etc/shadow file (sp_lstchg) contains the date of
-the last password change expressed as the number of days since Jan 1, 1970.
-As this is a relative time, creating a user today will result in:
-
-username:17238:0:99999:7:::
-whilst creating the same user tomorrow will result in:
-
-username:17239:0:99999:7:::
-This has an impact for the Reproducible Builds[0] project where we aim to
-be independent of as many elements the build environment as possible,
-including the current date.
-
-This patch changes the behaviour to use the SOURCE_DATE_EPOCH[1]
-environment variable (instead of Jan 1, 1970) if valid.
-```
-
-This updated PR adds some missing calls to gettime (). This was originally
-filed by Johannes Schauer in Debian as #917773 [2].
-
-[0] https://reproducible-builds.org/
-[1] https://reproducible-builds.org/specs/source-date-epoch/
-[2] https://bugs.debian.org/917773
-
-Upstream-Status: Backport
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- libmisc/pwd2spwd.c | 3 +--
- src/pwck.c | 2 +-
- src/pwconv.c | 2 +-
- 3 files changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/libmisc/pwd2spwd.c b/libmisc/pwd2spwd.c
-index c1b9b29ac873..6799dd50d490 100644
---- a/libmisc/pwd2spwd.c
-+++ b/libmisc/pwd2spwd.c
-@@ -40,7 +40,6 @@
- #include "prototypes.h"
- #include "defines.h"
- #include <pwd.h>
--extern time_t time (time_t *);
-
- /*
- * pwd_to_spwd - create entries for new spwd structure
-@@ -66,7 +65,7 @@ struct spwd *pwd_to_spwd (const struct passwd *pw)
- */
- sp.sp_min = 0;
- sp.sp_max = (10000L * DAY) / SCALE;
-- sp.sp_lstchg = (long) time ((time_t *) 0) / SCALE;
-+ sp.sp_lstchg = (long) gettime () / SCALE;
- if (0 == sp.sp_lstchg) {
- /* Better disable aging than requiring a password
- * change */
-diff --git a/src/pwck.c b/src/pwck.c
-index 0ffb711efb13..f70071b12500 100644
---- a/src/pwck.c
-+++ b/src/pwck.c
-@@ -609,7 +609,7 @@ static void check_pw_file (int *errors, bool *changed)
- sp.sp_inact = -1;
- sp.sp_expire = -1;
- sp.sp_flag = SHADOW_SP_FLAG_UNSET;
-- sp.sp_lstchg = (long) time ((time_t *) 0) / SCALE;
-+ sp.sp_lstchg = (long) gettime () / SCALE;
- if (0 == sp.sp_lstchg) {
- /* Better disable aging than
- * requiring a password change
-diff --git a/src/pwconv.c b/src/pwconv.c
-index 9c69fa131d8e..f932f266c59c 100644
---- a/src/pwconv.c
-+++ b/src/pwconv.c
-@@ -267,7 +267,7 @@ int main (int argc, char **argv)
- spent.sp_flag = SHADOW_SP_FLAG_UNSET;
- }
- spent.sp_pwdp = pw->pw_passwd;
-- spent.sp_lstchg = (long) time ((time_t *) 0) / SCALE;
-+ spent.sp_lstchg = (long) gettime () / SCALE;
- if (0 == spent.sp_lstchg) {
- /* Better disable aging than requiring a password
- * change */
---
-2.17.1
-
diff --git a/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch b/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch
deleted file mode 100644
index a74cbb0c0e..0000000000
--- a/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 3c52a84ff8775590e7e9da9c0d4408c23494305e Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Mon, 17 Jun 2019 15:36:34 +0800
-Subject: [PATCH] configure.ac: fix configure error with dash
-
-A configure error occurs when /bin/sh -> dash:
- checking for is_selinux_enabled in -lselinux... yes
- checking for semanage_connect in -lsemanage... yes
- configure: 16322: test: yesyes: unexpected operator
-
-Use "=" instead of "==" since dash doesn't support this operator.
-
-Upstream-Status: Backport
-[https://github.com/shadow-maint/shadow/commit/3c52a84ff8775590e7e9da9c0d4408c23494305e]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6762556..1907afb 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -500,7 +500,7 @@ if test "$with_selinux" != "no"; then
- AC_MSG_ERROR([libsemanage not found])
- fi
-
-- if test "$selinux_lib$semanage_lib" == "yesyes" ; then
-+ if test "$selinux_lib$semanage_lib" = "yesyes" ; then
- AC_DEFINE(WITH_SELINUX, 1,
- [Build shadow with SELinux support])
- LIBSELINUX="-lselinux"
---
-2.7.4
-
diff --git a/meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch b/meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch
deleted file mode 100644
index faa6f68ebe..0000000000
--- a/meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-Subject: [PATCH] useradd.c: create parent directories when necessary
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/useradd.c | 80 +++++++++++++++++++++++++++++++++++++++--------------------
- 1 file changed, 53 insertions(+), 27 deletions(-)
-
-diff --git a/src/useradd.c b/src/useradd.c
-index 00a3c30..9ecbb58 100644
---- a/src/useradd.c
-+++ b/src/useradd.c
-@@ -2021,6 +2021,35 @@ static void usr_update (void)
- }
-
- /*
-+ * mkdir_p - create directories, including parent directories when needed
-+ *
-+ * similar to `mkdir -p'
-+ */
-+void mkdir_p(const char *path) {
-+ int len = strlen(path);
-+ char newdir[len + 1];
-+ mode_t mode = 0755;
-+ int i = 0;
-+
-+ if (path[i] == '\0') {
-+ return;
-+ }
-+
-+ /* skip the leading '/' */
-+ i++;
-+
-+ while(path[i] != '\0') {
-+ if (path[i] == '/') {
-+ strncpy(newdir, path, i);
-+ newdir[i] = '\0';
-+ mkdir(newdir, mode);
-+ }
-+ i++;
-+ }
-+ mkdir(path, mode);
-+}
-+
-+/*
- * create_home - create the user's home directory
- *
- * create_home() creates the user's home directory if it does not
-@@ -2038,39 +2067,36 @@ static void create_home (void)
- fail_exit (E_HOMEDIR);
- }
- #endif
-- /* XXX - create missing parent directories. --marekm */
-- if (mkdir (prefix_user_home, 0) != 0) {
-- fprintf (stderr,
-- _("%s: cannot create directory %s\n"),
-- Prog, prefix_user_home);
-+ mkdir_p(user_home);
-+ }
-+ if (access (prefix_user_home, F_OK) != 0) {
- #ifdef WITH_AUDIT
-- audit_logger (AUDIT_ADD_USER, Prog,
-- "adding home directory",
-- user_name, (unsigned int) user_id,
-- SHADOW_AUDIT_FAILURE);
-+ audit_logger (AUDIT_ADD_USER, Prog,
-+ "adding home directory",
-+ user_name, (unsigned int) user_id,
-+ SHADOW_AUDIT_FAILURE);
- #endif
-- fail_exit (E_HOMEDIR);
-- }
-- (void) chown (prefix_user_home, user_id, user_gid);
-- chmod (prefix_user_home,
-- 0777 & ~getdef_num ("UMASK", GETDEF_DEFAULT_UMASK));
-- home_added = true;
-+ fail_exit (E_HOMEDIR);
-+ }
-+ (void) chown (prefix_user_home, user_id, user_gid);
-+ chmod (prefix_user_home,
-+ 0777 & ~getdef_num ("UMASK", GETDEF_DEFAULT_UMASK));
-+ home_added = true;
- #ifdef WITH_AUDIT
-- audit_logger (AUDIT_ADD_USER, Prog,
-- "adding home directory",
-- user_name, (unsigned int) user_id,
-- SHADOW_AUDIT_SUCCESS);
-+ audit_logger (AUDIT_ADD_USER, Prog,
-+ "adding home directory",
-+ user_name, (unsigned int) user_id,
-+ SHADOW_AUDIT_SUCCESS);
- #endif
- #ifdef WITH_SELINUX
-- /* Reset SELinux to create files with default contexts */
-- if (reset_selinux_file_context () != 0) {
-- fprintf (stderr,
-- _("%s: cannot reset SELinux file creation context\n"),
-- Prog);
-- fail_exit (E_HOMEDIR);
-- }
--#endif
-+ /* Reset SELinux to create files with default contexts */
-+ if (reset_selinux_file_context () != 0) {
-+ fprintf (stderr,
-+ _("%s: cannot reset SELinux file creation context\n"),
-+ Prog);
-+ fail_exit (E_HOMEDIR);
- }
-+#endif
- }
-
- /*
---
-2.11.0
-
diff --git a/meta/recipes-extended/shadow/files/allow-for-setting-password-in-clear-text.patch b/meta/recipes-extended/shadow/files/0002-Allow-for-setting-password-in-clear-text.patch
index fa7eb07aa5..c6332e4f76 100644
--- a/meta/recipes-extended/shadow/files/allow-for-setting-password-in-clear-text.patch
+++ b/meta/recipes-extended/shadow/files/0002-Allow-for-setting-password-in-clear-text.patch
@@ -1,8 +1,12 @@
+From a7d995228491ad5255ad86c1f04ba071f6880897 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Sat, 16 Nov 2013 15:27:47 +0800
Subject: [PATCH] Allow for setting password in clear text
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
src/Makefile.am | 8 ++++----
src/groupadd.c | 20 +++++++++++++++-----
@@ -12,39 +16,39 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
5 files changed, 64 insertions(+), 25 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
-index 3c98a8d..b8093d5 100644
+index f31fd7a..4a317a3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -93,10 +93,10 @@ chgpasswd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBSELINUX) $(LIBCRYPT)
- chsh_LDADD = $(LDADD) $(LIBPAM) $(LIBSELINUX) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD)
- chpasswd_LDADD = $(LDADD) $(LIBPAM) $(LIBSELINUX) $(LIBCRYPT)
- gpasswd_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT)
--groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX)
-+groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT)
- groupdel_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX)
- groupmems_LDADD = $(LDADD) $(LIBPAM) $(LIBSELINUX)
--groupmod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX)
-+groupmod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT)
- grpck_LDADD = $(LDADD) $(LIBSELINUX)
- grpconv_LDADD = $(LDADD) $(LIBSELINUX)
- grpunconv_LDADD = $(LDADD) $(LIBSELINUX)
-@@ -117,9 +117,9 @@ su_SOURCES = \
+@@ -103,10 +103,10 @@ chsh_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT_NOPAM)
+ chpasswd_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF)
+ expiry_LDADD = $(LDADD) $(LIBECONF)
+ gpasswd_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF)
+-groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
++groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF) $(LIBCRYPT)
+ groupdel_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
+ groupmems_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
+-groupmod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
++groupmod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF) $(LIBCRYPT)
+ grpck_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
+ grpconv_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
+ grpunconv_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
+@@ -127,9 +127,9 @@ su_SOURCES = \
suauth.c
- su_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD)
- sulogin_LDADD = $(LDADD) $(LIBCRYPT)
--useradd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR)
-+useradd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBCRYPT)
- userdel_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE)
--usermod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR)
-+usermod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBCRYPT)
- vipw_LDADD = $(LDADD) $(LIBSELINUX)
+ su_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD) $(LIBECONF)
+ sulogin_LDADD = $(LDADD) $(LIBCRYPT) $(LIBECONF)
+-useradd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF)
++useradd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF) $(LIBCRYPT)
+ userdel_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBECONF)
+-usermod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF)
++usermod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF) $(LIBCRYPT)
+ vipw_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
install-am: all-am
diff --git a/src/groupadd.c b/src/groupadd.c
-index b57006c..63e1c48 100644
+index e9c4bb7..d572c00 100644
--- a/src/groupadd.c
+++ b/src/groupadd.c
-@@ -123,9 +123,10 @@ static /*@noreturn@*/void usage (int status)
+@@ -127,9 +127,10 @@ static /*@noreturn@*/void usage (int status)
(void) fputs (_(" -o, --non-unique allow to create groups with duplicate\n"
" (non-unique) GID\n"), usageout);
(void) fputs (_(" -p, --password PASSWORD use this encrypted password for the new group\n"), usageout);
@@ -56,7 +60,7 @@ index b57006c..63e1c48 100644
(void) fputs ("\n", usageout);
exit (status);
}
-@@ -387,13 +388,14 @@ static void process_flags (int argc, char **argv)
+@@ -391,13 +392,14 @@ static void process_flags (int argc, char **argv)
{"key", required_argument, NULL, 'K'},
{"non-unique", no_argument, NULL, 'o'},
{"password", required_argument, NULL, 'p'},
@@ -73,7 +77,7 @@ index b57006c..63e1c48 100644
long_options, NULL)) != -1) {
switch (c) {
case 'f':
-@@ -445,12 +447,20 @@ static void process_flags (int argc, char **argv)
+@@ -449,12 +451,20 @@ static void process_flags (int argc, char **argv)
pflg = true;
group_passwd = optarg;
break;
@@ -95,7 +99,7 @@ index b57006c..63e1c48 100644
break;
default:
usage (E_USAGE);
-@@ -584,7 +594,7 @@ int main (int argc, char **argv)
+@@ -588,7 +598,7 @@ int main (int argc, char **argv)
(void) textdomain (PACKAGE);
process_root_flag ("-R", argc, argv);
@@ -105,10 +109,10 @@ index b57006c..63e1c48 100644
OPENLOG ("groupadd");
#ifdef WITH_AUDIT
diff --git a/src/groupmod.c b/src/groupmod.c
-index b293b98..72daf2c 100644
+index bc14438..25ccb44 100644
--- a/src/groupmod.c
+++ b/src/groupmod.c
-@@ -134,8 +134,9 @@ static void usage (int status)
+@@ -138,8 +138,9 @@ static void usage (int status)
(void) fputs (_(" -o, --non-unique allow to use a duplicate (non-unique) GID\n"), usageout);
(void) fputs (_(" -p, --password PASSWORD change the password to this (encrypted)\n"
" PASSWORD\n"), usageout);
@@ -119,7 +123,7 @@ index b293b98..72daf2c 100644
(void) fputs ("\n", usageout);
exit (status);
}
-@@ -383,11 +384,12 @@ static void process_flags (int argc, char **argv)
+@@ -387,11 +388,12 @@ static void process_flags (int argc, char **argv)
{"new-name", required_argument, NULL, 'n'},
{"non-unique", no_argument, NULL, 'o'},
{"password", required_argument, NULL, 'p'},
@@ -134,7 +138,7 @@ index b293b98..72daf2c 100644
long_options, NULL)) != -1) {
switch (c) {
case 'g':
-@@ -414,9 +416,17 @@ static void process_flags (int argc, char **argv)
+@@ -418,9 +420,17 @@ static void process_flags (int argc, char **argv)
group_passwd = optarg;
pflg = true;
break;
@@ -153,7 +157,7 @@ index b293b98..72daf2c 100644
break;
default:
usage (E_USAGE);
-@@ -757,7 +767,7 @@ int main (int argc, char **argv)
+@@ -761,7 +771,7 @@ int main (int argc, char **argv)
(void) textdomain (PACKAGE);
process_root_flag ("-R", argc, argv);
@@ -163,10 +167,10 @@ index b293b98..72daf2c 100644
OPENLOG ("groupmod");
#ifdef WITH_AUDIT
diff --git a/src/useradd.c b/src/useradd.c
-index c74e491..7214e72 100644
+index 1b7bf06..44f09e2 100644
--- a/src/useradd.c
+++ b/src/useradd.c
-@@ -829,9 +829,10 @@ static void usage (int status)
+@@ -853,9 +853,10 @@ static void usage (int status)
(void) fputs (_(" -o, --non-unique allow to create users with duplicate\n"
" (non-unique) UID\n"), usageout);
(void) fputs (_(" -p, --password PASSWORD encrypted password of the new account\n"), usageout);
@@ -178,7 +182,7 @@ index c74e491..7214e72 100644
(void) fputs (_(" -s, --shell SHELL login shell of the new account\n"), usageout);
(void) fputs (_(" -u, --uid UID user ID of the new account\n"), usageout);
(void) fputs (_(" -U, --user-group create a group with the same name as the user\n"), usageout);
-@@ -1104,9 +1105,10 @@ static void process_flags (int argc, char **argv)
+@@ -1133,9 +1134,10 @@ static void process_flags (int argc, char **argv)
{"no-user-group", no_argument, NULL, 'N'},
{"non-unique", no_argument, NULL, 'o'},
{"password", required_argument, NULL, 'p'},
@@ -190,7 +194,7 @@ index c74e491..7214e72 100644
{"shell", required_argument, NULL, 's'},
{"uid", required_argument, NULL, 'u'},
{"user-group", no_argument, NULL, 'U'},
-@@ -1117,9 +1119,9 @@ static void process_flags (int argc, char **argv)
+@@ -1146,9 +1148,9 @@ static void process_flags (int argc, char **argv)
};
while ((c = getopt_long (argc, argv,
#ifdef WITH_SELINUX
@@ -202,7 +206,7 @@ index c74e491..7214e72 100644
#endif /* !WITH_SELINUX */
long_options, NULL)) != -1) {
switch (c) {
-@@ -1285,12 +1287,19 @@ static void process_flags (int argc, char **argv)
+@@ -1320,12 +1322,19 @@ static void process_flags (int argc, char **argv)
}
user_pass = optarg;
break;
@@ -223,7 +227,7 @@ index c74e491..7214e72 100644
break;
case 's':
if ( ( !VALID (optarg) )
-@@ -2148,7 +2157,7 @@ int main (int argc, char **argv)
+@@ -2257,7 +2266,7 @@ int main (int argc, char **argv)
process_root_flag ("-R", argc, argv);
@@ -233,10 +237,10 @@ index c74e491..7214e72 100644
OPENLOG ("useradd");
#ifdef WITH_AUDIT
diff --git a/src/usermod.c b/src/usermod.c
-index e571426..ccfbb99 100644
+index 21c6da9..cffdb3e 100644
--- a/src/usermod.c
+++ b/src/usermod.c
-@@ -424,8 +424,9 @@ static /*@noreturn@*/void usage (int status)
+@@ -431,8 +431,9 @@ static /*@noreturn@*/void usage (int status)
" new location (use only with -d)\n"), usageout);
(void) fputs (_(" -o, --non-unique allow using duplicate (non-unique) UID\n"), usageout);
(void) fputs (_(" -p, --password PASSWORD use encrypted password for the new password\n"), usageout);
@@ -247,7 +251,7 @@ index e571426..ccfbb99 100644
(void) fputs (_(" -s, --shell SHELL new login shell for the user account\n"), usageout);
(void) fputs (_(" -u, --uid UID new UID for the user account\n"), usageout);
(void) fputs (_(" -U, --unlock unlock the user account\n"), usageout);
-@@ -1002,8 +1003,9 @@ static void process_flags (int argc, char **argv)
+@@ -1010,8 +1011,9 @@ static void process_flags (int argc, char **argv)
{"move-home", no_argument, NULL, 'm'},
{"non-unique", no_argument, NULL, 'o'},
{"password", required_argument, NULL, 'p'},
@@ -258,16 +262,16 @@ index e571426..ccfbb99 100644
{"shell", required_argument, NULL, 's'},
{"uid", required_argument, NULL, 'u'},
{"unlock", no_argument, NULL, 'U'},
-@@ -1019,7 +1021,7 @@ static void process_flags (int argc, char **argv)
+@@ -1027,7 +1029,7 @@ static void process_flags (int argc, char **argv)
{NULL, 0, NULL, '\0'}
};
while ((c = getopt_long (argc, argv,
-- "ac:d:e:f:g:G:hl:Lmop:R:s:u:UP:"
-+ "ac:d:e:f:g:G:hl:Lmop:P:R:s:u:UA:"
+- "abc:d:e:f:g:G:hl:Lmop:R:s:u:UP:"
++ "abc:d:e:f:g:G:hl:Lmop:P:R:s:u:UA:"
#ifdef ENABLE_SUBIDS
"v:w:V:W:"
#endif /* ENABLE_SUBIDS */
-@@ -1119,9 +1121,17 @@ static void process_flags (int argc, char **argv)
+@@ -1130,9 +1132,17 @@ static void process_flags (int argc, char **argv)
user_pass = optarg;
pflg = true;
break;
@@ -286,7 +290,7 @@ index e571426..ccfbb99 100644
break;
case 's':
if (!VALID (optarg)) {
-@@ -2098,7 +2108,7 @@ int main (int argc, char **argv)
+@@ -2127,7 +2137,7 @@ int main (int argc, char **argv)
(void) textdomain (PACKAGE);
process_root_flag ("-R", argc, argv);
@@ -295,6 +299,3 @@ index e571426..ccfbb99 100644
OPENLOG ("usermod");
#ifdef WITH_AUDIT
---
-2.11.0
-
diff --git a/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch b/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
index 4fa3d184ed..9825216369 100644
--- a/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
+++ b/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
@@ -1,3 +1,8 @@
+From 66533c7c6f347d257020675a1ed6e0c59cbbc3f0 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Thu, 17 Jul 2014 15:53:34 +0800
+Subject: [PATCH] commonio.c-fix-unexpected-open-failure-in-chroot-env
+
Upstream-Status: Inappropriate [OE specific]
commonio.c: fix unexpected open failure in chroot environment
@@ -10,15 +15,16 @@ Note that this patch doesn't change the logic in the code, it just expands
the codes.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
- lib/commonio.c | 16 ++++++++++++----
+ lib/commonio.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/lib/commonio.c b/lib/commonio.c
-index cc536bf..51cafd9 100644
+index 16fa7e7..d6bc297 100644
--- a/lib/commonio.c
+++ b/lib/commonio.c
-@@ -613,10 +613,18 @@ int commonio_open (struct commonio_db *db, int mode)
+@@ -632,10 +632,18 @@ int commonio_open (struct commonio_db *db, int mode)
db->cursor = NULL;
db->changed = false;
@@ -41,6 +47,3 @@ index cc536bf..51cafd9 100644
db->fp = NULL;
if (fd >= 0) {
#ifdef WITH_TCB
---
-1.7.9.5
-
diff --git a/meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch b/meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch
index 1af04d5fe8..cc833362e9 100644
--- a/meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch
+++ b/meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch
@@ -1,26 +1,37 @@
+From ca472d6866e545aaa70a70020e3226f236a8aafc Mon Sep 17 00:00:00 2001
+From: Shan Hai <shan.hai@windriver.com>
+Date: Tue, 13 Sep 2016 13:45:46 +0800
+Subject: [PATCH] shadow: use relaxed usernames
The groupadd from shadow does not allow upper case group names, the
same is true for the upstream shadow. But distributions like
Debian/Ubuntu/CentOS has their own way to cope with this problem,
this patch is picked up from CentOS release 7.0 to relax the usernames
restrictions to allow the upper case group names, and the relaxation is
-POSIX compliant because POSIX indicate that usernames are composed of
+POSIX compliant because POSIX indicate that usernames are composed of
characters from the portable filename character set [A-Za-z0-9._-].
Upstream-Status: Pending
-Signed-off-by: Shan Hai <shan.hai@windriver.com>
+Signed-off-by: Shan Hai <shan.hai@windriver.com>
-diff -urpN a/libmisc/chkname.c b/libmisc/chkname.c
-index 5089112..f40a0da 100644
+---
+ libmisc/chkname.c | 30 ++++++++++++++++++------------
+ man/groupadd.8.xml | 6 ------
+ man/useradd.8.xml | 8 +-------
+ 3 files changed, 19 insertions(+), 25 deletions(-)
+
+diff --git a/libmisc/chkname.c b/libmisc/chkname.c
+index 90f185c..65762b4 100644
--- a/libmisc/chkname.c
+++ b/libmisc/chkname.c
-@@ -49,21 +49,28 @@
- static bool is_valid_name (const char *name)
- {
+@@ -55,22 +55,28 @@ static bool is_valid_name (const char *name)
+ }
+
/*
- * User/group names must match [a-z_][a-z0-9_-]*[$]
- */
+-
- if (('\0' == *name) ||
- !((('a' <= *name) && ('z' >= *name)) || ('_' == *name))) {
+ * User/group names must match gnu e-regex:
@@ -55,28 +66,28 @@ index 5089112..f40a0da 100644
return false;
}
}
-diff -urpN a/man/groupadd.8.xml b/man/groupadd.8.xml
-index 230fd0c..94f7807 100644
+diff --git a/man/groupadd.8.xml b/man/groupadd.8.xml
+index 1e58f09..d804b61 100644
--- a/man/groupadd.8.xml
+++ b/man/groupadd.8.xml
-@@ -222,12 +222,6 @@
+@@ -272,12 +272,6 @@
+
<refsect1 id='caveats'>
<title>CAVEATS</title>
- <para>
+- <para>
- Groupnames must start with a lower case letter or an underscore,
- followed by lower case letters, digits, underscores, or dashes.
- They can end with a dollar sign.
- In regular expression terms: [a-z_][a-z0-9_-]*[$]?
- </para>
-- <para>
+ <para>
Groupnames may only be up to &GROUP_NAME_MAX_LENGTH; characters long.
</para>
- <para>
-diff -urpN a/man/useradd.8.xml b/man/useradd.8.xml
-index 5dec989..fe623b9 100644
+diff --git a/man/useradd.8.xml b/man/useradd.8.xml
+index a16d730..c0bd777 100644
--- a/man/useradd.8.xml
+++ b/man/useradd.8.xml
-@@ -336,7 +336,7 @@
+@@ -366,7 +366,7 @@
</term>
<listitem>
<para>
@@ -85,16 +96,16 @@ index 5dec989..fe623b9 100644
wide setting from <filename>/etc/login.defs</filename>
(<option>CREATE_HOME</option>) is set to
<replaceable>yes</replaceable>.
-@@ -607,12 +607,6 @@
+@@ -660,12 +660,6 @@
+ the user account creation request.
</para>
- <para>
+- <para>
- Usernames must start with a lower case letter or an underscore,
- followed by lower case letters, digits, underscores, or dashes.
- They can end with a dollar sign.
- In regular expression terms: [a-z_][a-z0-9_-]*[$]?
- </para>
-- <para>
+ <para>
Usernames may only be up to 32 characters long.
</para>
- </refsect1>
diff --git a/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb b/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
index ef014628f6..1f6232e43c 100644
--- a/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
+++ b/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
@@ -1,6 +1,6 @@
SUMMARY = "Shadow utils requirements for useradd.bbclass"
-HOMEPAGE = "http://pkg-shadow.alioth.debian.org"
-BUGTRACKER = "https://alioth.debian.org/tracker/?group_id=30580"
+HOMEPAGE = "http://github.com/shadow-maint/shadow"
+BUGTRACKER = "http://github.com/shadow-maint/shadow/issues"
SECTION = "base utils"
LICENSE = "BSD | Artistic-1.0"
LIC_FILES_CHKSUM = "file://login.defs_shadow-sysroot;md5=25e2f2de4dfc8f966ac5cdfce45cd7d5"
@@ -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() {
@@ -27,6 +24,8 @@ do_install() {
SYSROOT_DIRS += "${sysconfdir}"
# don't create any packages
-# otherwise: dbus-dev depends on shadow-sysroot-dev which depends on shadow-sysroot
+# 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/shadow/shadow.inc b/meta/recipes-extended/shadow/shadow.inc
index af38b911df..f86e5e03c0 100644
--- a/meta/recipes-extended/shadow/shadow.inc
+++ b/meta/recipes-extended/shadow/shadow.inc
@@ -1,6 +1,6 @@
SUMMARY = "Tools to change and administer password and group data"
-HOMEPAGE = "http://pkg-shadow.alioth.debian.org"
-BUGTRACKER = "https://alioth.debian.org/tracker/?group_id=30580"
+HOMEPAGE = "http://github.com/shadow-maint/shadow"
+BUGTRACKER = "http://github.com/shadow-maint/shadow/issues"
SECTION = "base/utils"
LICENSE = "BSD | Artistic-1.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=ed80ff1c2b40843cf5768e5229cf16e5 \
@@ -11,8 +11,6 @@ DEPENDS = "virtual/crypt"
UPSTREAM_CHECK_URI = "https://github.com/shadow-maint/shadow/releases"
SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/${PV}/${BP}.tar.gz \
file://shadow-4.1.3-dots-in-usernames.patch \
- file://0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch \
- file://0001-configure.ac-fix-configure-error-with-dash.patch \
${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
file://shadow-relaxed-usernames.patch \
"
@@ -24,16 +22,15 @@ SRC_URI_append_class-target = " \
SRC_URI_append_class-native = " \
file://0001-Disable-use-of-syslog-for-sysroot.patch \
- file://allow-for-setting-password-in-clear-text.patch \
+ file://0002-Allow-for-setting-password-in-clear-text.patch \
file://commonio.c-fix-unexpected-open-failure-in-chroot-env.patch \
- file://0001-useradd.c-create-parent-directories-when-necessary.patch \
"
SRC_URI_append_class-nativesdk = " \
file://0001-Disable-use-of-syslog-for-sysroot.patch \
"
-SRC_URI[md5sum] = "36feb15665338ae3de414f2a88e434db"
-SRC_URI[sha256sum] = "4668f99bd087399c4a586084dc3b046b75f560720d83e92fd23bf7a89dda4d31"
+SRC_URI[md5sum] = "3d97f11e66bfb0b14702b115fa8be480"
+SRC_URI[sha256sum] = "3ee3081fbbcbcfea5c8916419e46bc724807bab271072104f23e7a29e9668f3a"
# Additional Policy files for PAM
PAM_SRC_URI = "file://pam.d/chfn \
@@ -53,13 +50,14 @@ EXTRA_OECONF += "--without-audit \
--without-selinux \
--with-group-name-max-length=24 \
--enable-subordinate-ids=yes \
+ --without-sssd \
${NSCDOPT}"
NSCDOPT = ""
NSCDOPT_class-native = "--without-nscd"
NSCDOPT_class-nativesdk = "--without-nscd"
NSCDOPT_libc-glibc = "--with-nscd"
-
+
PAM_PLUGINS = "libpam-runtime \
pam-plugin-faildelay \
pam-plugin-securetty \
@@ -136,7 +134,7 @@ do_install_append() {
sed -i -f ${WORKDIR}/login_defs_pam.sed ${D}${sysconfdir}/login.defs
fi
- install -d ${D}${sbindir} ${D}${base_sbindir} ${D}${base_bindir}
+ install -d ${D}${sbindir} ${D}${base_sbindir} ${D}${base_bindir}
# Move binaries to the locations we want
rm ${D}${sbindir}/vigr
diff --git a/meta/recipes-extended/shadow/shadow_4.6.bb b/meta/recipes-extended/shadow/shadow_4.8.1.bb
index c975395ff8..c975395ff8 100644
--- a/meta/recipes-extended/shadow/shadow_4.6.bb
+++ b/meta/recipes-extended/shadow/shadow_4.8.1.bb
diff --git a/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch b/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch
deleted file mode 100644
index 66d99dd885..0000000000
--- a/meta/recipes-extended/stress-ng/stress-ng/0001-bash-completion-remove-the-shebang-at-the-start.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 042147675c7c2ea7dd65b2597f2e350376a710aa Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 6 Aug 2019 17:28:56 +0200
-Subject: [PATCH] bash-completion: remove the shebang at the start
-
-bash completion files do not need to specify that.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- bash-completion/stress-ng | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/bash-completion/stress-ng b/bash-completion/stress-ng
-index 8b1421c..7f195be 100755
---- a/bash-completion/stress-ng
-+++ b/bash-completion/stress-ng
-@@ -1,5 +1,3 @@
--#!/bin/bash
--#
- # stress-ng tab completion for bash.
- #
- # Copyright (C) 2019 Canonical
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.10.00.bb b/meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb
index 7d194b305e..71671dd046 100644
--- a/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb
+++ b/meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb
@@ -7,10 +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://0001-bash-completion-remove-the-shebang-at-the-start.patch \
+ file://no_daddr_t.patch \
"
-SRC_URI[md5sum] = "46aa41d37690324ceab4febfcc549018"
-SRC_URI[sha256sum] = "d09dd2a1aea549e478995bf9be90b38906a4cdf33ea7b245ef9d46aa5213c074"
+SRC_URI[sha256sum] = "ee44b71aba20e9c7d10ec4768efa2245d12579fa17e08b9314c17f06f785ae39"
DEPENDS = "coreutils-native"
@@ -23,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 15075bcefd..86a18be7e2 100644
--- a/meta/recipes-extended/sudo/sudo.inc
+++ b/meta/recipes-extended/sudo/sudo.inc
@@ -4,18 +4,18 @@ HOMEPAGE = "http://www.sudo.ws"
BUGTRACKER = "http://www.sudo.ws/bugs/"
SECTION = "admin"
LICENSE = "ISC & BSD & Zlib"
-LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=6c76b73603ac7763ab0516ebfbe67b42 \
- file://plugins/sudoers/redblack.c;beginline=1;endline=46;md5=4a162fc04b86b03f5632180fe6076cda \
- file://lib/util/reallocarray.c;beginline=3;endline=15;md5=b47f1f85a12f05a0744cd8b1b6f41a0d \
- file://lib/util/fnmatch.c;beginline=3;endline=27;md5=67f83ee9bd456557397082f8f1be0efd \
- file://lib/util/getcwd.c;beginline=2;endline=27;md5=09068a19b4f6b6f0a0958655bfe98b63 \
- file://lib/util/glob.c;beginline=2;endline=31;md5=1f2f771c35fb0658d567a7824007e56d \
- file://lib/util/snprintf.c;beginline=3;endline=33;md5=63e48e1b992bce749a19dd9b2256e9a0 \
- file://include/sudo_queue.h;beginline=2;endline=27;md5=082b138b72ba3e568a13a25c3bf254dc \
- file://lib/util/inet_pton.c;beginline=3;endline=17;md5=3970ab0518ab79cbd0bafb697f10b33a \
- file://lib/util/arc4random.c;beginline=3;endline=20;md5=15bdc89c1b003fa4d7353e6296ebfd68 \
- file://lib/util/arc4random_uniform.c;beginline=3;endline=17;md5=31e630ac814d692fd0ab7a942659b46f \
- file://lib/util/getentropy.c;beginline=1;endline=19;md5=9f1a275ecd44cc264a2a4d5e06a75292 \
+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 \
+ file://lib/util/getcwd.c;beginline=2;endline=27;md5=50f8d9667750e18dea4e84a935c12009 \
+ file://lib/util/glob.c;beginline=2;endline=31;md5=2852f68687544e3eb8a0a61665506f0e \
+ file://lib/util/snprintf.c;beginline=3;endline=33;md5=b70df6179969e38fcf68da91b53b8029 \
+ file://include/sudo_queue.h;beginline=2;endline=27;md5=ad578e9664d17a010b63e4bc0576ee8d \
+ file://lib/util/inet_pton.c;beginline=3;endline=17;md5=27785c9f5835093eda42aa0816a2d0b4 \
+ file://lib/util/arc4random.c;beginline=3;endline=20;md5=ced8636ecefa2ba907cfe390bc3bd964 \
+ file://lib/util/arc4random_uniform.c;beginline=3;endline=17;md5=e30c2b777cdc00cfcaf7c445a10b262f \
+ file://lib/util/getentropy.c;beginline=1;endline=19;md5=a0f58be3d60b6dcd898ec5fe0866d36f \
"
inherit autotools
@@ -26,7 +26,7 @@ PACKAGECONFIG[pam-wheel] = ",,,pam-plugin-wheel"
CONFFILES_${PN} = "${sysconfdir}/sudoers"
-EXTRA_OECONF = "--with-editor=/bin/vi --with-env-editor"
+EXTRA_OECONF = "--with-editor=${base_bindir}/vi --with-env-editor"
EXTRA_OECONF_append_libc-musl = " --disable-hardening "
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.27.bb b/meta/recipes-extended/sudo/sudo_1.9.3.bb
index 9d2d6bd429..270625ebe8 100644
--- a/meta/recipes-extended/sudo/sudo_1.8.27.bb
+++ b/meta/recipes-extended/sudo/sudo_1.9.3.bb
@@ -1,22 +1,29 @@
require sudo.inc
-SRC_URI = "http://www.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \
+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] = "b5c184b13b6b5de32af630af2fd013fd"
-SRC_URI[sha256sum] = "7beb68b94471ef56d8a1036dbcdc09a7b58a949a68ffce48b83f837dd33e2ec0"
+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)}"
+CACHED_CONFIGUREVARS = " \
+ ac_cv_type_rsize_t=no \
+ ac_cv_path_MVPROG=${base_bindir}/mv \
+ ac_cv_path_BSHELLPROG=${base_bindir}/sh \
+ ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \
+ ac_cv_path_VIPROG=${base_bindir}/vi \
+ "
+
EXTRA_OECONF += " \
- ac_cv_type_rsize_t=no \
${@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 \
"
do_install_append () {
@@ -31,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-Fix-build-with-musl.patch b/meta/recipes-extended/sysklogd/files/0001-Fix-build-with-musl.patch
deleted file mode 100644
index 9567946c0c..0000000000
--- a/meta/recipes-extended/sysklogd/files/0001-Fix-build-with-musl.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From f0af5bcfd753691652eac35efbcb208c933253f1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 31 Aug 2015 05:11:53 +0000
-Subject: [PATCH] Fix build with musl
-
-Explicitly include fcntl.h since with glibc is comes in as indirect
-include but not with musl
-
-linux/time.h inclusion is not required on musl so using !__GLIBC__ is
-not right for musl here
-
-wait type is glibc specific
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- klogd.c | 10 +---------
- ksym_mod.c | 5 +----
- pidfile.c | 1 +
- syslog.c | 3 ++-
- syslogd.c | 4 +---
- 5 files changed, 6 insertions(+), 17 deletions(-)
-
-diff --git a/klogd.c b/klogd.c
-index 6cc80ed..9219671 100644
---- a/klogd.c
-+++ b/klogd.c
-@@ -260,11 +260,8 @@
- #include <unistd.h>
- #include <signal.h>
- #include <errno.h>
--#include <sys/fcntl.h>
-+#include <fcntl.h>
- #include <sys/stat.h>
--#if !defined(__GLIBC__)
--#include <linux/time.h>
--#endif /* __GLIBC__ */
- #include <stdarg.h>
- #include <paths.h>
- #include <stdlib.h>
-@@ -277,13 +274,8 @@
-
- #define __LIBRARY__
- #include <linux/unistd.h>
--#if !defined(__GLIBC__)
--# define __NR_ksyslog __NR_syslog
--_syscall3(int,ksyslog,int, type, char *, buf, int, len);
--#else
- #include <sys/klog.h>
- #define ksyslog klogctl
--#endif
-
- #define LOG_BUFFER_SIZE 4096
- #define LOG_LINE_LENGTH 1000
-diff --git a/ksym_mod.c b/ksym_mod.c
-index 68cd6b6..6e26da1 100644
---- a/ksym_mod.c
-+++ b/ksym_mod.c
-@@ -113,12 +113,9 @@
- #include <unistd.h>
- #include <signal.h>
- #include <errno.h>
--#include <sys/fcntl.h>
-+#include <fcntl.h>
- #include <sys/stat.h>
- #include "module.h"
--#if !defined(__GLIBC__)
--#include <linux/time.h>
--#endif /* __GLIBC__ */
- #include <stdarg.h>
- #include <paths.h>
- #include <linux/version.h>
-diff --git a/pidfile.c b/pidfile.c
-index e0959a0..6daa2e0 100644
---- a/pidfile.c
-+++ b/pidfile.c
-@@ -31,6 +31,7 @@
- #include <string.h>
- #include <errno.h>
- #include <signal.h>
-+#include <fcntl.h>
-
- /* read_pid
- *
-diff --git a/syslog.c b/syslog.c
-index bdb3ff2..ef7b34e 100644
---- a/syslog.c
-+++ b/syslog.c
-@@ -55,7 +55,7 @@ static char sccsid[] = "@(#)syslog.c 5.28 (Berkeley) 6/27/90";
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/file.h>
--#include <sys/signal.h>
-+//#include <sys/signal.h>
- #include <sys/syslog.h>
- #if 0
- #include "syslog.h"
-@@ -72,6 +72,7 @@ static char sccsid[] = "@(#)syslog.c 5.28 (Berkeley) 6/27/90";
- #include <stdarg.h>
- #include <paths.h>
- #include <stdio.h>
-+#include <fcntl.h>
-
- #define _PATH_LOGNAME "/dev/log"
-
-diff --git a/syslogd.c b/syslogd.c
-index ea73ea5..1ca0595 100644
---- a/syslogd.c
-+++ b/syslogd.c
-@@ -818,9 +818,7 @@ void doexit(int sig);
- void init();
- void cfline(char *line, register struct filed *f);
- int decode(char *name, struct code *codetab);
--#if defined(__GLIBC__)
- #define dprintf mydprintf
--#endif /* __GLIBC__ */
- static void dprintf(char *, ...);
- static void allocate_log(void);
- void sighup_handler();
-@@ -2094,7 +2092,7 @@ void reapchild()
- (void) signal(SIGCHLD, reapchild); /* reset signal handler -ASP */
- wait ((int *)0);
- #else
-- union wait status;
-+ int status;
-
- while (wait3(&status, WNOHANG, (struct rusage *) NULL) > 0)
- ;
---
-2.5.1
-
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-fix-problems-that-causes-a-segmentation-fault-under-.patch b/meta/recipes-extended/sysklogd/files/0001-fix-problems-that-causes-a-segmentation-fault-under-.patch
deleted file mode 100644
index 56431af845..0000000000
--- a/meta/recipes-extended/sysklogd/files/0001-fix-problems-that-causes-a-segmentation-fault-under-.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From cb72b3e172c238b4b5ae5935dc6be54f5034fcf1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 30 Jun 2017 18:20:06 -0700
-Subject: [PATCH 1/2] fix problems that causes a segmentation fault under some
- conditions
-
-Upstream-Status: Inappropriate [ no upstream ]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ksym_mod.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/ksym_mod.c b/ksym_mod.c
-index 6e26da1..a3daa7d 100644
---- a/ksym_mod.c
-+++ b/ksym_mod.c
-@@ -186,7 +186,6 @@ extern int InitMsyms()
- else
- Syslog(LOG_ERR, "Error loading kernel symbols " \
- "- %s\n", strerror(errno));
-- fclose(ksyms);
- return(0);
- }
-
---
-2.13.2
-
diff --git a/meta/recipes-extended/sysklogd/files/0002-Make-way-for-respecting-flags-from-environment.patch b/meta/recipes-extended/sysklogd/files/0002-Make-way-for-respecting-flags-from-environment.patch
deleted file mode 100644
index ebbdef303b..0000000000
--- a/meta/recipes-extended/sysklogd/files/0002-Make-way-for-respecting-flags-from-environment.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From b22f244732cd0f475af2f82fc7eecec49f90623b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Jul 2017 00:01:50 -0700
-Subject: [PATCH 2/2] Make way for respecting flags from environment
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 5af1689..af699d2 100644
---- a/Makefile
-+++ b/Makefile
-@@ -17,14 +17,12 @@
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
--CC= gcc
- #SKFLAGS= -g -DSYSV -Wall
- #LDFLAGS= -g
--SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce
-+SKFLAGS = $(CFLAGS) $(CPPFLAGS) -DSYSV -Wall -fno-strength-reduce
- # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
- # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
- # $(shell getconf LFS_SKFLAGS)
--LDFLAGS= -s
-
- # Look where your install program is.
- INSTALL = /usr/bin/install
---
-2.13.2
-
diff --git a/meta/recipes-extended/sysklogd/files/klogd.service b/meta/recipes-extended/sysklogd/files/klogd.service
deleted file mode 100644
index 0c888c497d..0000000000
--- a/meta/recipes-extended/sysklogd/files/klogd.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Kernel Logging Service
-After=syslogd.service
-
-[Service]
-Type=forking
-ExecStart=/sbin/klogd
-PIDFile=/var/run/klogd.pid
-StandardOutput=null
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta/recipes-extended/sysklogd/files/no-strip-install.patch b/meta/recipes-extended/sysklogd/files/no-strip-install.patch
deleted file mode 100644
index d426c83bf2..0000000000
--- a/meta/recipes-extended/sysklogd/files/no-strip-install.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: sysklogd-1.5.1/Makefile
-===================================================================
---- sysklogd-1.5.1.orig/Makefile
-+++ sysklogd-1.5.1/Makefile
-@@ -127,8 +127,8 @@ clobber: clean
- rm -f syslogd klogd ksym syslog_tst oops_test TAGS tsyslogd tklogd
-
- install_exec: syslogd klogd
-- ${INSTALL} -m 500 -s syslogd ${BINDIR}/syslogd
-- ${INSTALL} -m 500 -s klogd ${BINDIR}/klogd
-+ ${INSTALL} -m 500 syslogd ${BINDIR}/syslogd
-+ ${INSTALL} -m 500 klogd ${BINDIR}/klogd
-
- install_man:
- ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} sysklogd.8 ${MANDIR}/man8/sysklogd.8
diff --git a/meta/recipes-extended/sysklogd/files/no-vectorization.patch b/meta/recipes-extended/sysklogd/files/no-vectorization.patch
deleted file mode 100644
index c1cc042c9c..0000000000
--- a/meta/recipes-extended/sysklogd/files/no-vectorization.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Inappropriate
-
-The compiler should not be generating vectorized instructions on this target.
-This is a work around until I can determine why this is occuring on this
-particular recipe
-
-Index: sysklogd-1.5/Makefile
-===================================================================
---- sysklogd-1.5.orig/Makefile
-+++ sysklogd-1.5/Makefile
-@@ -20,7 +20,8 @@
- CC= gcc
- #SKFLAGS= -g -DSYSV -Wall
- #LDFLAGS= -g
--SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce
-+SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce \
-+ -fno-tree-vectorize
- # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
- # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
- # $(shell getconf LFS_SKFLAGS)
diff --git a/meta/recipes-extended/sysklogd/files/sysklogd b/meta/recipes-extended/sysklogd/files/sysklogd
index 73424840ba..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=/sbin/syslogd
-binpath_klogd=/sbin/klogd
+binpath_syslogd=/usr/sbin/syslogd
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/files/syslog.conf b/meta/recipes-extended/sysklogd/files/syslog.conf
deleted file mode 100644
index 0849de1268..0000000000
--- a/meta/recipes-extended/sysklogd/files/syslog.conf
+++ /dev/null
@@ -1,71 +0,0 @@
-# /etc/syslog.conf Configuration file for syslogd.
-#
-# Ported from debian by Yu Ke <ke.yu@intel.com>
-#
-
-#
-# First some standard logfiles. Log by facility.
-#
-
-auth,authpriv.* /var/log/auth.log
-*.*;auth,authpriv.none -/var/log/syslog
-#cron.* /var/log/cron.log
-daemon.* -/var/log/daemon.log
-kern.* -/var/log/kern.log
-lpr.* -/var/log/lpr.log
-mail.* -/var/log/mail.log
-user.* -/var/log/user.log
-
-#
-# Logging for the mail system. Split it up so that
-# it is easy to write scripts to parse these files.
-#
-mail.info -/var/log/mail.info
-mail.warn -/var/log/mail.warn
-mail.err /var/log/mail.err
-
-# Logging for INN news system
-#
-news.crit /var/log/news.crit
-news.err /var/log/news.err
-news.notice -/var/log/news.notice
-
-#
-# Some `catch-all' logfiles.
-#
-*.=debug;\
-auth,authpriv.none;\
-news.none;mail.none -/var/log/debug
-
-*.=info;*.=notice;*.=warn;\
-auth,authpriv.none;\
-cron,daemon.none;\
-mail,news.none -/var/log/messages
-
-#
-# Emergencies are sent to everybody logged in.
-#
-*.emerg *
-
-#
-# I like to have messages displayed on the console, but only on a virtual
-# console I usually leave idle.
-#
-#daemon,mail.*;\
-#news.=crit;news.=err;news.=notice;\
-#*.=debug;*.=info;\
-#*.=notice;*.=warn /dev/tty8
-
-# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
-# you must invoke `xconsole' with the `-file' option:
-#
-# $ xconsole -file /dev/xconsole [...]
-#
-# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
-# busy site..
-#
-daemon.*;mail.*;\
-news.err;\
-*.=debug;*.=info;\
-*.=notice;*.=warn |/dev/xconsole
-
diff --git a/meta/recipes-extended/sysklogd/files/syslogd.service b/meta/recipes-extended/sysklogd/files/syslogd.service
deleted file mode 100644
index eeaff3d38d..0000000000
--- a/meta/recipes-extended/sysklogd/files/syslogd.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=System Logging Service
-Requires=syslog.socket
-
-[Service]
-Type=forking
-ExecStart=/sbin/syslogd
-PIDFile=/var/run/syslogd.pid
-StandardOutput=null
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
-Alias=syslog.service
diff --git a/meta/recipes-extended/sysklogd/files/tmpfiles.sysklogd.conf b/meta/recipes-extended/sysklogd/files/tmpfiles.sysklogd.conf
deleted file mode 100644
index f4aecd385b..0000000000
--- a/meta/recipes-extended/sysklogd/files/tmpfiles.sysklogd.conf
+++ /dev/null
@@ -1 +0,0 @@
-p /dev/xconsole 0640 root adm
diff --git a/meta/recipes-extended/sysklogd/sysklogd.inc b/meta/recipes-extended/sysklogd/sysklogd.inc
index 749026f853..162260f000 100644
--- a/meta/recipes-extended/sysklogd/sysklogd.inc
+++ b/meta/recipes-extended/sysklogd/sysklogd.inc
@@ -1,62 +1,38 @@
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=8ca43cbc842c2336e835926c2166c28b \
- file://syslogd.c;beginline=2;endline=15;md5=77ffb2fec48c46d7ca0abb2d5813e7fd \
- file://klogd.c;beginline=2;endline=19;md5=7e87ed0ae6142de079bce738c10c899d \
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5b4be4b2549338526758ef479c040943 \
+ file://src/syslogd.c;beginline=2;endline=15;md5=a880fecbc04503f071c494a9c0dd4f97 \
"
-inherit update-rc.d update-alternatives systemd
+inherit update-rc.d update-alternatives systemd autotools
SRC_URI = "git://github.com/troglobit/sysklogd.git;nobranch=1 \
- file://no-strip-install.patch \
- file://0001-Fix-build-with-musl.patch \
- file://0001-fix-problems-that-causes-a-segmentation-fault-under-.patch \
- file://0002-Make-way-for-respecting-flags-from-environment.patch \
file://sysklogd \
- file://syslog.conf \
- file://syslogd.service \
- file://klogd.service \
- file://tmpfiles.sysklogd.conf \
+ file://0001-Makefile.am-fixup-issue-17.patch \
"
S = "${WORKDIR}/git"
-SRC_URI_append_e500v2 = " file://no-vectorization.patch"
+EXTRA_OECONF = "--with-systemd=${systemd_system_unitdir} --without-logger"
+
+do_install_append () {
+ install -d ${D}${sysconfdir}
+ install -m 644 ${S}/syslog.conf ${D}${sysconfdir}/syslog.conf
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/sysklogd ${D}${sysconfdir}/init.d/syslog
+}
SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "syslogd.service klogd.service"
+SYSTEMD_SERVICE_${PN} = "syslogd.service"
SYSTEMD_AUTO_ENABLE = "enable"
INITSCRIPT_NAME = "syslog"
CONFFILES_${PN} = "${sysconfdir}/syslog.conf"
RCONFLICTS_${PN} = "rsyslog busybox-syslog syslog-ng"
-CFLAGS += "-DSYSV -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
-
-do_install () {
- install -d ${D}${mandir}/man8 \
- ${D}${mandir}/man5 \
- ${D}${base_sbindir}
- oe_runmake 'BINDIR=${D}${base_sbindir}' \
- 'MANDIR=${D}${mandir}' install
- install -d ${D}${sysconfdir}
- install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/sysklogd ${D}${sysconfdir}/init.d/syslog
- install -d ${D}${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/syslogd.service ${D}${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/klogd.service ${D}${systemd_unitdir}/system
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true', 'false', d)}; then
- install -d ${D}${exec_prefix}/lib/tmpfiles.d
- install -m 644 ${WORKDIR}/tmpfiles.sysklogd.conf ${D}${exec_prefix}/lib/tmpfiles.d/sysklogd.conf
- fi
-}
-
FILES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/sysklogd.conf', '', d)}"
ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-extended/sysklogd/sysklogd_1.5.1.bb b/meta/recipes-extended/sysklogd/sysklogd_1.5.1.bb
deleted file mode 100644
index 88bcfd9e4a..0000000000
--- a/meta/recipes-extended/sysklogd/sysklogd_1.5.1.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require sysklogd.inc
-
-SRCREV = "930a2b1c0d15b14309a49f14e3f30e905456af4d"
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 5a7d2114ca..e5e134c038 100644
--- a/meta/recipes-extended/sysstat/sysstat.inc
+++ b/meta/recipes-extended/sysstat/sysstat.inc
@@ -10,24 +10,19 @@ SRC_URI = "http://pagesperso-orange.fr/sebastien.godard/${BP}.tar.xz \
"
UPSTREAM_CHECK_URI = "http://sebastien.godard.pagesperso-orange.fr/download.html"
-UPSTREAM_VERSION_UNKNOWN = "1"
DEPENDS += "base-passwd"
# autotools-brokensep as this package doesn't use automake
inherit autotools-brokensep gettext systemd upstream-version-is-even
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[lm-sensors] = "--enable-sensors,--disable-sensors,lmsensors,lmsensors-libsensors"
PACKAGECONFIG[cron] = "--enable-install-cron --enable-copy-only,--disable-install-cron --disable-copy-only"
PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}"
EXTRA_OECONF += "--disable-stripping"
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "sysstat.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
do_configure_prepend() {
export sa_lib_dir=${libexecdir}/sa
}
@@ -35,6 +30,9 @@ do_configure_prepend() {
do_install() {
autotools_do_install
+ # Don't version the documentation
+ mv ${D}${docdir}/${BP} ${D}${docdir}/${BPN}
+
# don't install /var/log/sa when populating rootfs. Do it through volatile
rm -rf ${D}/var
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
@@ -46,10 +44,12 @@ do_install() {
echo "d ${localstatedir}/log/sa - - - -" \
> ${D}${sysconfdir}/tmpfiles.d/sysstat.conf
- if ${@bb.utils.contains('PACKAGECONFIG', 'cron', 'false', 'true', d)}; then
+ # Unless both cron and systemd are enabled, install our own
+ # systemd unit file. Otherwise the package will install one.
+ if ${@bb.utils.contains('PACKAGECONFIG', 'cron systemd', 'false', 'true', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/sysstat.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@LIBDIR@#${libdir}#g' ${D}${systemd_unitdir}/system/sysstat.service
+ sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_unitdir}/system/sysstat.service
fi
fi
}
@@ -62,6 +62,6 @@ pkg_postinst_${PN} () {
fi
}
-FILES_${PN} += "${libdir}/sa ${systemd_system_unitdir}"
+FILES_${PN} += "${systemd_system_unitdir} ${nonarch_base_libdir}/systemd"
TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/meta/recipes-extended/sysstat/sysstat/0001-Include-needed-headers-explicitly.patch b/meta/recipes-extended/sysstat/sysstat/0001-Include-needed-headers-explicitly.patch
deleted file mode 100644
index 1b63299aae..0000000000
--- a/meta/recipes-extended/sysstat/sysstat/0001-Include-needed-headers-explicitly.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 42325faa88d64cce799977d611b2792beb154643 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Sep 2015 08:36:59 +0000
-Subject: [PATCH] Include needed headers explicitly
-
-on glibc these headers get pulled in indirectly via other .h files
-but right fix is to include them directly when used
-
-fixes
-
-error: use of undeclared identifier 'PATH_MAX'
-error: called object type 'unsigned int' is not a function or function pointer
-dm_major = major(aux.st_rdev);
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- common.c | 1 +
- ioconf.c | 1 +
- sa_common.c | 1 +
- 3 files changed, 3 insertions(+)
-
-Index: sysstat-11.7.1/common.c
-===================================================================
---- sysstat-11.7.1.orig/common.c
-+++ sysstat-11.7.1/common.c
-@@ -20,6 +20,7 @@
- */
-
- #include <stdio.h>
-+#include <limits.h>
- #include <string.h>
- #include <stdlib.h>
- #include <stdarg.h>
-Index: sysstat-11.7.1/ioconf.c
-===================================================================
---- sysstat-11.7.1.orig/ioconf.c
-+++ sysstat-11.7.1/ioconf.c
-@@ -27,6 +27,7 @@
- #include <errno.h>
- #include <dirent.h>
- #include <sys/stat.h>
-+#include <sys/types.h>
-
- #include "ioconf.h"
- #include "common.h"
-Index: sysstat-11.7.1/sa_common.c
-===================================================================
---- sysstat-11.7.1.orig/sa_common.c
-+++ sysstat-11.7.1/sa_common.c
-@@ -20,6 +20,7 @@
- */
-
- #include <stdio.h>
-+#include <limits.h>
- #include <string.h>
- #include <stdlib.h>
- #include <stdint.h>
diff --git a/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch b/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch
new file mode 100644
index 0000000000..4067bb983b
--- /dev/null
+++ b/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch
@@ -0,0 +1,31 @@
+From 1590cc614aaf0fb81cd804414d6c9d5a9227352c Mon Sep 17 00:00:00 2001
+From: Wenlin Kang <wenlin.kang@windriver.com>
+Date: Tue, 5 Nov 2019 16:16:44 +0800
+Subject: [PATCH] configure.in: remove check for chkconfig
+
+chkconfig can't work on cross-platform, so should remove check for it.
+
+Upstream-Status: Inappropriate [ embedded specific ]
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ configure.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index 48b9a31..cedeb43 100644
+--- a/configure.in
++++ b/configure.in
+@@ -42,7 +42,8 @@ AC_SUBST(VER_JSON)
+ AC_SUBST(VER_XML)
+
+ AC_PATH_PROG(PATH_CP, cp)
+-AC_PATH_PROG(PATH_CHKCONFIG, chkconfig)
++#AC_PATH_PROG(PATH_CHKCONFIG, chkconfig)
++AC_SUBST(PATH_CHKCONFIG)
+
+ # Check for systemd
+ AC_CHECK_PROG(PKG_CONFIG, pkg-config, pkg-config)
+--
+1.9.1
+
diff --git a/meta/recipes-extended/sysstat/sysstat/sysstat.service b/meta/recipes-extended/sysstat/sysstat/sysstat.service
index aff07109f5..ca46befb99 100644
--- a/meta/recipes-extended/sysstat/sysstat/sysstat.service
+++ b/meta/recipes-extended/sysstat/sysstat/sysstat.service
@@ -5,7 +5,7 @@ Description=Resets System Activity Logs
Type=oneshot
RemainAfterExit=yes
User=root
-ExecStart=@LIBDIR@/sa/sa1 --boot
+ExecStart=@LIBEXECDIR@/sa/sa1 --boot
[Install]
WantedBy=multi-user.target
diff --git a/meta/recipes-extended/sysstat/sysstat_12.1.6.bb b/meta/recipes-extended/sysstat/sysstat_12.1.6.bb
deleted file mode 100644
index 8cf8c36d9b..0000000000
--- a/meta/recipes-extended/sysstat/sysstat_12.1.6.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require sysstat.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
-
-SRC_URI += "file://0001-Include-needed-headers-explicitly.patch"
-
-SRC_URI[md5sum] = "d8e3bbb9c873dd370f6d33664e326570"
-SRC_URI[sha256sum] = "f752f3c406153a6fc446496f1102872505ace3f0931d975c1d664c81ec09f129"
diff --git a/meta/recipes-extended/sysstat/sysstat_12.4.0.bb b/meta/recipes-extended/sysstat/sysstat_12.4.0.bb
new file mode 100644
index 0000000000..6773213a40
--- /dev/null
+++ b/meta/recipes-extended/sysstat/sysstat_12.4.0.bb
@@ -0,0 +1,7 @@
+require sysstat.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
+
+SRC_URI += "file://0001-configure.in-remove-check-for-chkconfig.patch"
+
+SRC_URI[sha256sum] = "78556c339795ecd07eb10ee09e3f5d52901d3a29f874ae92b45efd0de7b62d16"
diff --git a/meta/recipes-extended/tar/tar_1.32.bb b/meta/recipes-extended/tar/tar_1.32.bb
index 18f09b5711..ebe6cb0dbd 100644
--- a/meta/recipes-extended/tar/tar_1.32.bb
+++ b/meta/recipes-extended/tar/tar_1.32.bb
@@ -22,6 +22,8 @@ PACKAGECONFIG[acl] = "--with-posix-acls,--without-posix-acls,acl"
EXTRA_OECONF += "DEFAULT_RMT_DIR=${sbindir}"
+CACHED_CONFIGUREVARS += "tar_cv_path_RSH=no"
+
# Let aclocal use the relative path for the m4 file rather than the
# absolute since tar has a lot of m4 files, otherwise there might
# be an "Argument list too long" error when it is built in a long/deep
diff --git a/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/0001-Remove-fgets-extern-declaration.patch b/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/0001-Remove-fgets-extern-declaration.patch
new file mode 100644
index 0000000000..88c8d9cae7
--- /dev/null
+++ b/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/0001-Remove-fgets-extern-declaration.patch
@@ -0,0 +1,43 @@
+From 24d10919b4bc5e37a2d80b274d2cd2ee77b03549 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Jan 2020 14:25:47 -0800
+Subject: [PATCH] Remove fgets() extern declaration
+
+These sources already include <stdio.h> which should bring the correct
+declaration
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ hosts_access.c | 1 -
+ misc.c | 2 --
+ 2 files changed, 3 deletions(-)
+
+diff --git a/hosts_access.c b/hosts_access.c
+index 329b35e..0133e5e 100644
+--- a/hosts_access.c
++++ b/hosts_access.c
+@@ -44,7 +44,6 @@ static char sccsid[] = "@(#) hosts_access.c 1.21 97/02/12 02:13:22";
+ #include <netdb.h>
+ #endif
+
+-extern char *fgets();
+ extern int errno;
+
+ #ifndef INADDR_NONE
+diff --git a/misc.c b/misc.c
+index 74ca319..9a5e73a 100644
+--- a/misc.c
++++ b/misc.c
+@@ -18,8 +18,6 @@ static char sccsic[] = "@(#) misc.c 1.2 96/02/11 17:01:29";
+
+ #include "tcpd.h"
+
+-extern char *fgets();
+-
+ #ifndef INADDR_NONE
+ #define INADDR_NONE (-1) /* XXX should be 0xffffffff */
+ #endif
+--
+2.24.1
+
diff --git a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
index dd945c970f..e903b9db14 100644
--- a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Tools for monitoring and filtering incoming requests for tcp \
services."
SECTION = "console/network"
-LICENSE = "BSD"
+LICENSE = "BSD-1-Clause"
LIC_FILES_CHKSUM = "file://DISCLAIMER;md5=071bd69cb78b18888ea5e3da5c3127fa"
PR ="r10"
@@ -49,6 +49,7 @@ SRC_URI = "http://ftp.porcupine.org/pub/security/tcp_wrappers_${PV}.tar.gz \
file://0001-Fix-build-with-clang.patch \
file://fix_warnings.patch \
file://fix_warnings2.patch \
+ file://0001-Remove-fgets-extern-declaration.patch \
"
SRC_URI[md5sum] = "e6fa25f71226d090f34de3f6b122fb5a"
diff --git a/meta/recipes-extended/texi2html/files/0001-Allow-compiling-out-of-source.patch b/meta/recipes-extended/texi2html/files/0001-Allow-compiling-out-of-source.patch
deleted file mode 100644
index 0cf025ff4a..0000000000
--- a/meta/recipes-extended/texi2html/files/0001-Allow-compiling-out-of-source.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Olaf Mandel <o.mandel@menlosystems.com>
-Date: Fri, 21 Oct 2016 13:04:44 +0000
-Subject: [PATCH] Allow compiling out-of-source
-
-Upstream-Status: Backport of [svn://svn.sv.gnu.org/texinfo/trunk r3602]
----
- Makefile.am | 2 +-
- Makefile.in | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 3447463..c9b5b5c 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -208,7 +208,7 @@ i18n/en.thl i18n/: $(po_document_dir)/po_document/$(PACKAGE)_document.pot
- done; \
- msgexec -i $< "$(srcdir)/gettext_to_separated.pl" | "$(srcdir)/separated_to_hash.pl" en > i18n/en.thl; \
- else \
-- cp -p i18n_ref/*.thl i18n; \
-+ cp -p "$(srcdir)/i18n_ref/"*.thl i18n; \
- fi
-
- i18n_ref:
-diff --git a/Makefile.in b/Makefile.in
-index 4264b37..a13f84d 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -1126,7 +1126,7 @@ i18n/en.thl i18n/: $(po_document_dir)/po_document/$(PACKAGE)_document.pot
- done; \
- msgexec -i $< "$(srcdir)/gettext_to_separated.pl" | "$(srcdir)/separated_to_hash.pl" en > i18n/en.thl; \
- else \
-- cp -p i18n_ref/*.thl i18n; \
-+ cp -p "$(srcdir)/i18n_ref/"*.thl i18n; \
- fi
-
- i18n_ref:
---
-2.1.4
-
diff --git a/meta/recipes-extended/texi2html/texi2html_5.0.bb b/meta/recipes-extended/texi2html/texi2html_5.0.bb
deleted file mode 100644
index afd125b08f..0000000000
--- a/meta/recipes-extended/texi2html/texi2html_5.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Perl script that converts Texinfo to HTML"
-HOMEPAGE = "http://www.nongnu.org/texi2html/"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-PR = "r2"
-
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/texi2html/${BPN}-${PV}.tar.bz2 \
- file://0001-Allow-compiling-out-of-source.patch \
- "
-
-SRC_URI[md5sum] = "f15ac876fcdc8be865b16535f480aa54"
-SRC_URI[sha256sum] = "e8a98b0ee20c495a6ab894398a065ef580272dbd5a15b1b19e8bd1bc89d9f9fa"
-
-inherit autotools gettext texinfo
-
-do_configure_prepend() {
- # autotools_do_configure updates po/Makefile.in.in, we also need
- # update po_document.
- cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po_document/
- cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po_messages/
-}
-
-do_install_append () {
- sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' ${D}${bindir}/texi2html
-}
-
-FILES_${PN}-doc += "${datadir}/texinfo"
-
-RDEPENDS_${PN} = "perl"
diff --git a/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb b/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb
index 1254bc89b4..ec04bfe390 100644
--- a/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb
+++ b/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb
@@ -9,19 +9,21 @@ SRC_URI = "file://template.py file://COPYING"
S = "${WORKDIR}"
-NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}"
-
inherit native
+#
+# To avoid texinfo-dummy-native and texinfo-native conflicting we install to base_bindir
+# which is later in PATH than bindir where texinfo-native installs
+#
do_install_name() {
- FILENAME="${D}${bindir}/$1"
+ FILENAME="${D}${base_bindir}/$1"
# Using ln causes problems with rm_work
cp -T "${S}/template.py" "$FILENAME"
chmod +x $FILENAME
}
do_install() {
- mkdir -p "${D}${bindir}"
+ mkdir -p "${D}${base_bindir}"
for i in makeinfo pod2texi texi2dvi pdftexi2dvi texindex texi2pdf \
txixml2texi texi2any install-info ginstall-info \
update-info-dir; do
diff --git a/meta/recipes-extended/texinfo/texinfo/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta/recipes-extended/texinfo/texinfo/0001-Unset-need_charset_alias-when-building-for-musl.patch
deleted file mode 100644
index c7338aa470..0000000000
--- a/meta/recipes-extended/texinfo/texinfo/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 13 Apr 2015 17:02:13 -0700
-Subject: [PATCH] Unset need_charset_alias when building for musl
-
-localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
-which actually shoudl be fixed in gnulib and then all downstream
-projects will get it eventually. For now we apply the fix to
-coreutils
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/gnulib.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: texinfo-5.2/gnulib/lib/Makefile.am
-===================================================================
---- texinfo-5.2.orig/gnulib/lib/Makefile.am
-+++ texinfo-5.2/gnulib/lib/Makefile.am
-@@ -378,7 +378,7 @@ install-exec-localcharset: all-local
- case '$(host_os)' in \
- darwin[56]*) \
- need_charset_alias=true ;; \
-- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
- need_charset_alias=false ;; \
- *) \
- need_charset_alias=true ;; \
diff --git a/meta/recipes-extended/texinfo/texinfo/dont-depend-on-help2man.patch b/meta/recipes-extended/texinfo/texinfo/dont-depend-on-help2man.patch
index f4184399c7..0d6bbafadd 100644
--- a/meta/recipes-extended/texinfo/texinfo/dont-depend-on-help2man.patch
+++ b/meta/recipes-extended/texinfo/texinfo/dont-depend-on-help2man.patch
@@ -1,4 +1,4 @@
-From e89b1c57d76f5cf5acbb0d0187374f7a77bce1e2 Mon Sep 17 00:00:00 2001
+From 63a803ead3656353329a801846a9a3beb7210c46 Mon Sep 17 00:00:00 2001
From: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
Date: Tue, 29 Nov 2016 13:43:24 -0600
Subject: [PATCH] dont-depend-on-help2man
@@ -7,29 +7,30 @@ Upstream-Status: Inappropriate
Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
+
---
doc/Makefile.am | 2 +-
man/Makefile.am | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/doc/Makefile.am b/doc/Makefile.am
-index 39db834..1bb2a4f
+index 732833e..041cb9b 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
-@@ -38,7 +38,7 @@ refcard_files = refcard/Makefile refcard/txicmdcheck \
+@@ -37,7 +37,7 @@ refcard_files = refcard/Makefile refcard/txicmdcheck \
# Include our texinfo.tex, not Automake's.
EXTRA_DIST = epsf.tex texinfo.tex \
fdl.texi \
- $(man_MANS) $(TXI_XLATE) \
+ $(TXI_XLATE) \
- $(refcard_files) texinfo-tex-test.texi \
+ $(refcard_files) \
+ texinfo-tex-test.texi texinfo-tex-test.WIDOWs \
texinfo-ja.tex short-sample-ja.texi
-
diff --git a/man/Makefile.am b/man/Makefile.am
-index 6bfcb3d..a820c96
+index d0cd72c..a19e52a 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
-@@ -13,24 +13,24 @@
+@@ -11,27 +11,27 @@
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# These are generated using help2man.
@@ -47,10 +48,13 @@ index 6bfcb3d..a820c96
-man_MANS += info.5 texinfo.5
+#man_MANS += info.5 texinfo.5
- # This is generated by pod2man, but let's just run it by hand.
-man_MANS += pod2texi.1
+#man_MANS += pod2texi.1
+ pod2texi.1: $(top_srcdir)/Pod-Simple-Texinfo/pod2texi.pl
+ $(POD2MAN) $(top_srcdir)/Pod-Simple-Texinfo/pod2texi.pl >"$@"
+
+
# These are just .so's to the common program.
-man_MANS += texi2any.1 texi2pdf.1 pdftexi2dvi.1
+#man_MANS += texi2any.1 texi2pdf.1 pdftexi2dvi.1
@@ -60,6 +64,3 @@ index 6bfcb3d..a820c96
# Maintainers should be able to regenerate.
MAINTAINERCLEANFILES = $(man_MANS)
---
-2.9.3
-
diff --git a/meta/recipes-extended/texinfo/texinfo/link-zip.patch b/meta/recipes-extended/texinfo/texinfo/link-zip.patch
index 0b6e9fd7ea..15c030c0c6 100644
--- a/meta/recipes-extended/texinfo/texinfo/link-zip.patch
+++ b/meta/recipes-extended/texinfo/texinfo/link-zip.patch
@@ -1,16 +1,23 @@
-install-info uses symbols from zlib so must link against it.
+From c1002138033fcccb2d1abfc41f5c2e46c836f7a0 Mon Sep 17 00:00:00 2001
+From: Joshua Lock <josh@linux.intel.com>
+Date: Mon, 29 Jul 2013 15:02:34 -0700
+Subject: [PATCH] install-info uses symbols from zlib so must link against it.
Upstream-Status: Pending
Signed-off-by: Joshua Lock <josh@linux.intel.com>
-Index: texinfo-5.1/install-info/Makefile.am
-===================================================================
---- texinfo-5.1.orig/install-info/Makefile.am
-+++ texinfo-5.1/install-info/Makefile.am
-@@ -34,4 +34,4 @@ AM_CPPFLAGS = \
+---
+ install-info/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/install-info/Makefile.am b/install-info/Makefile.am
+index 9bcff71..68247f9 100644
+--- a/install-info/Makefile.am
++++ b/install-info/Makefile.am
+@@ -33,4 +33,4 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/gnulib/lib \
-I$(top_builddir)/gnulib/lib \
-DLOCALEDIR=\"$(localedir)\"
--LDADD = $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
-+LDADD = $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL) -lz
+-LDADD = $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL) $(LIBTHREAD)
++LDADD = $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL) $(LIBTHREAD) -lz
diff --git a/meta/recipes-extended/texinfo/texinfo/texinfo-4.12-zlib.patch b/meta/recipes-extended/texinfo/texinfo/texinfo-4.12-zlib.patch
index f25352c636..f72097e639 100644
--- a/meta/recipes-extended/texinfo/texinfo/texinfo-4.12-zlib.patch
+++ b/meta/recipes-extended/texinfo/texinfo/texinfo-4.12-zlib.patch
@@ -1,4 +1,4 @@
-From fe4f00459601efe0cfa75d92749a32237800a530 Mon Sep 17 00:00:00 2001
+From 3d3b66cf398853c666e724c3dbcc37d53a2240d5 Mon Sep 17 00:00:00 2001
From: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
Date: Tue, 29 Nov 2016 12:27:17 -0600
Subject: [PATCH] texinfo-4.12-zlib
@@ -7,16 +7,17 @@ Upstream-Status: Pending
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
+
---
- install-info/Makefile.in | 12 ++-----
- install-info/install-info.c | 79 +++++++++++++++++++++++++++------------------
- 2 files changed, 49 insertions(+), 42 deletions(-)
+ install-info/Makefile.in | 2 +-
+ install-info/install-info.c | 79 ++++++++++++++++++++++---------------
+ 2 files changed, 48 insertions(+), 33 deletions(-)
diff --git a/install-info/Makefile.in b/install-info/Makefile.in
-index 837d020..ba96579 100644
+index c924509..746df05 100644
--- a/install-info/Makefile.in
+++ b/install-info/Makefile.in
-@@ -216,7 +208,7 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
+@@ -218,7 +218,7 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am_ginstall_info_OBJECTS = install-info.$(OBJEXT)
ginstall_info_OBJECTS = $(am_ginstall_info_OBJECTS)
@@ -24,12 +25,12 @@ index 837d020..ba96579 100644
+ginstall_info_LDADD = $(LDADD) -lz
am__DEPENDENCIES_1 =
ginstall_info_DEPENDENCIES = $(top_builddir)/gnulib/lib/libgnu.a \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
diff --git a/install-info/install-info.c b/install-info/install-info.c
-index e58189c..8617787 100644
+index 21f4fe3..a7aba82 100644
--- a/install-info/install-info.c
+++ b/install-info/install-info.c
-@@ -22,6 +22,7 @@
+@@ -19,6 +19,7 @@
#include <getopt.h>
#include <regex.h>
#include <argz.h>
@@ -37,7 +38,7 @@ index e58189c..8617787 100644
#define TAB_WIDTH 8
-@@ -684,15 +685,15 @@ The first time you invoke Info you start off looking at this node.\n\
+@@ -681,15 +682,15 @@ The first time you invoke Info you start off looking at this node.\n\
Return either stdin reading the file, or a non-stdin pipe reading
the output of the compression program. */
@@ -56,7 +57,7 @@ index e58189c..8617787 100644
/* We let them pass NULL if they don't want this info, but it's easier
to always determine it. */
-@@ -700,48 +701,48 @@ open_possibly_compressed_file (char *filename,
+@@ -697,48 +698,48 @@ open_possibly_compressed_file (char *filename,
opened_filename = &local_opened_filename;
*opened_filename = filename;
@@ -113,7 +114,7 @@ index e58189c..8617787 100644
}
#endif /* __MSDOS__ */
if (!f)
-@@ -757,7 +758,7 @@ open_possibly_compressed_file (char *filename,
+@@ -754,7 +755,7 @@ open_possibly_compressed_file (char *filename,
(*create_callback) (filename);
/* And try opening it again. */
@@ -122,7 +123,7 @@ index e58189c..8617787 100644
if (!f)
return 0;
}
-@@ -767,26 +768,26 @@ open_possibly_compressed_file (char *filename,
+@@ -764,26 +765,26 @@ open_possibly_compressed_file (char *filename,
/* Read first few bytes of file rather than relying on the filename.
If the file is shorter than this it can't be usable anyway. */
@@ -158,7 +159,7 @@ index e58189c..8617787 100644
return 0;
goto determine_file_type; /* success */
}
-@@ -857,35 +858,40 @@ determine_file_type:
+@@ -854,35 +855,40 @@ determine_file_type:
*compression_program = NULL;
/* Seek back over the magic bytes. */
@@ -206,7 +207,7 @@ index e58189c..8617787 100644
}
return f;
-@@ -904,7 +910,8 @@ readfile (char *filename, int *sizep,
+@@ -901,7 +907,8 @@ readfile (char *filename, int *sizep,
void (*create_callback) (char *), char **opened_filename,
char **compression_program)
{
@@ -216,7 +217,7 @@ index e58189c..8617787 100644
int filled = 0;
int data_size = 8192;
char *data = xmalloc (data_size);
-@@ -912,14 +919,20 @@ readfile (char *filename, int *sizep,
+@@ -909,14 +916,20 @@ readfile (char *filename, int *sizep,
/* If they passed the space for the file name to return, use it. */
f = open_possibly_compressed_file (filename, create_callback,
opened_filename,
@@ -239,7 +240,7 @@ index e58189c..8617787 100644
if (nread < 0)
return 0;
if (nread == 0)
-@@ -938,8 +951,10 @@ readfile (char *filename, int *sizep,
+@@ -935,8 +948,10 @@ readfile (char *filename, int *sizep,
/* We need to close the stream, since on some systems the pipe created
by popen is simulated by a temporary file which only gets removed
inside pclose. */
@@ -251,6 +252,3 @@ index e58189c..8617787 100644
*sizep = filled;
return data;
---
-2.9.3
-
diff --git a/meta/recipes-extended/texinfo/texinfo_6.5.bb b/meta/recipes-extended/texinfo/texinfo_6.7.bb
index 50eae77ad0..d421b79a0b 100644
--- a/meta/recipes-extended/texinfo/texinfo_6.5.bb
+++ b/meta/recipes-extended/texinfo/texinfo_6.7.bb
@@ -5,7 +5,7 @@ GNU Project uses the Texinfo file format for most of its documentation."
HOMEPAGE = "http://www.gnu.org/software/texinfo/"
SECTION = "console/utils"
LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
PROVIDES_append_class-native = " texinfo-replacement-native"
@@ -33,12 +33,11 @@ SRC_URI = "${GNU_MIRROR}/texinfo/${BP}.tar.gz \
file://disable-native-tools.patch \
file://link-zip.patch \
file://dont-depend-on-help2man.patch \
- file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
${TARGET_PATCH} \
- "
+ "
-SRC_URI[md5sum] = "94e8f7149876793030e5518dd8d6e956"
-SRC_URI[sha256sum] = "d34272e4042c46186ddcd66bd5d980c0ca14ff734444686ccf8131f6ec8b1427"
+SRC_URI[md5sum] = "f0c1782f68ef73738d74bd1e9e30793a"
+SRC_URI[sha256sum] = "a52d05076b90032cb2523673c50e53185938746482cf3ca0213e9b4b50ac2d3e"
tex_texinfo = "texmf/tex/texinfo"
diff --git a/meta/recipes-extended/timezone/timezone.inc b/meta/recipes-extended/timezone/timezone.inc
index f6bab1acb4..8eb17c5eaf 100644
--- a/meta/recipes-extended/timezone/timezone.inc
+++ b/meta/recipes-extended/timezone/timezone.inc
@@ -1,10 +1,12 @@
SUMMARY = "Timezone data"
+DESCRIPTION = "The Time Zone Database contains code and data that represent \
+the history of local time for many representative locations around the globe."
HOMEPAGE = "http://www.iana.org/time-zones"
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 \
@@ -12,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.inc b/meta/recipes-extended/wget/wget.inc
index 07e8d8e871..2338328216 100644
--- a/meta/recipes-extended/wget/wget.inc
+++ b/meta/recipes-extended/wget/wget.inc
@@ -1,4 +1,9 @@
SUMMARY = "Console URL download utility supporting HTTP, FTP, etc"
+DESCRIPTION = "Wget is a network utility to retrieve files from the web using \
+HTTP(S) and FTP, the two most widely used internet protocols. It works \
+non-interactively, so it will work in the background, after having logged off. \
+The program supports recursive retrieval of web-authoring pages as well as \
+FTP sites"
HOMEPAGE = "https://www.gnu.org/software/wget/"
SECTION = "console/network"
LICENSE = "GPLv3"
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/xdg-utils/xdg-utils_1.1.3.bb b/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
index 8e46638197..d371c5c28c 100644
--- a/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
+++ b/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
@@ -17,7 +17,7 @@ xdg-terminal \
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a5367a90934098d6b05af3b746405014"
-SRC_URI = "http://portland.freedesktop.org/download/${BPN}-${PV}.tar.gz \
+SRC_URI = "https://portland.freedesktop.org/download/${BPN}-${PV}.tar.gz \
file://0001-Reinstate-xdg-terminal.patch \
file://0001-Don-t-build-the-in-script-manual.patch \
"
@@ -28,7 +28,7 @@ SRC_URI[sha256sum] = "d798b08af8a8e2063ddde6c9fa3398ca81484f27dec642c5627ffcaa0d
UPSTREAM_CHECK_REGEX = "xdg-utils-(?P<pver>((\d+[\.\-_]*)+)((rc|alpha|beta)\d+)?)\.(tar\.gz|tgz)"
# Needs brokensep as this doesn't use automake
-inherit autotools-brokensep distro_features_check
+inherit autotools-brokensep features_check
# The xprop requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
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 791746e1cf..af21b60563 100644
--- a/meta/recipes-extended/xz/xz_5.2.4.bb
+++ b/meta/recipes-extended/xz/xz_5.2.5.bb
@@ -1,5 +1,5 @@
SUMMARY = "Utilities for managing LZMA compressed files"
-HOMEPAGE = "http://tukaani.org/xz/"
+HOMEPAGE = "https://tukaani.org/xz/"
SECTION = "base"
# The source includes bits of PD, GPLv2, GPLv3, LGPLv2.1+, but the only file
@@ -22,11 +22,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=97d554a32881fee0aa283d96e47cb24a \
file://lib/getopt.c;endline=23;md5=2069b0ee710572c03bb3114e4532cd84 \
"
-SRC_URI = "http://tukaani.org/xz/xz-${PV}.tar.gz"
-SRC_URI[md5sum] = "5ace3264bdd00c65eeec2891346f65e6"
-SRC_URI[sha256sum] = "b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145"
+SRC_URI = "https://tukaani.org/xz/xz-${PV}.tar.gz"
+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"
+
inherit autotools gettext
PACKAGES =+ "liblzma"
@@ -39,5 +41,3 @@ ALTERNATIVE_${PN} = "xz xzcat unxz \
lzma lzcat unlzma"
BBCLASSEXTEND = "native nativesdk"
-
-export CONFIG_SHELL="/bin/sh"
diff --git a/meta/recipes-extended/zip/zip-3.0/zipnote-crashes-with-segfault.patch b/meta/recipes-extended/zip/zip-3.0/zipnote-crashes-with-segfault.patch
new file mode 100644
index 0000000000..ce6caff83e
--- /dev/null
+++ b/meta/recipes-extended/zip/zip-3.0/zipnote-crashes-with-segfault.patch
@@ -0,0 +1,22 @@
+Close the correct file descriptor
+
+https://bugs.archlinux.org/task/47713
+
+Signed-off-by: Jate Sujjavanich <jatedev@gmail.com>
+
+Upstream-Status: Inappropriate [no upstream]
+
+diff --git a/zipnote.c b/zipnote.c
+index 5e02cb6..996f012 100644
+--- a/zipnote.c
++++ b/zipnote.c
+@@ -661,7 +661,7 @@ char **argv; /* command line tokens */
+ if ((r = zipcopy(z)) != ZE_OK)
+ ziperr(r, "was copying an entry");
+ }
+- fclose(x);
++ fclose(in_file);
+
+ /* Write central directory and end of central directory with new comments */
+ if ((c = zftello(y)) == (zoff_t)-1) /* get start of central */
+
diff --git a/meta/recipes-extended/zip/zip_3.0.bb b/meta/recipes-extended/zip/zip_3.0.bb
index a2cd7717ca..c00a932763 100644
--- a/meta/recipes-extended/zip/zip_3.0.bb
+++ b/meta/recipes-extended/zip/zip_3.0.bb
@@ -12,6 +12,7 @@ S = "${WORKDIR}/zip30"
SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz \
file://fix-security-format.patch \
file://10-remove-build-date.patch \
+ file://zipnote-crashes-with-segfault.patch \
"
UPSTREAM_VERSION_UNKNOWN = "1"
diff --git a/meta/recipes-gnome/epiphany/epiphany_3.32.4.bb b/meta/recipes-gnome/epiphany/epiphany_3.36.4.bb
index 44af469942..4c3b18331a 100644
--- a/meta/recipes-gnome/epiphany/epiphany_3.32.4.bb
+++ b/meta/recipes-gnome/epiphany/epiphany_3.36.4.bb
@@ -1,20 +1,20 @@
SUMMARY = "WebKit based web browser for GNOME"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany"
LICENSE = "GPLv3+"
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 distro_features_check upstream-version-is-even gettext
+inherit gnomebase gsettings features_check upstream-version-is-even gettext mime-xdg
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] = "6a5eada8a3870ab4d0fcd5168559776f"
-SRC_URI[archive.sha256sum] = "c9a828578301af77ac9f3d3ce253b02f9f3a1561840cc8d74dd5645f92d0a995"
+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.28.1.bb b/meta/recipes-gnome/gcr/gcr_3.28.1.bb
deleted file mode 100644
index 2299199c31..0000000000
--- a/meta/recipes-gnome/gcr/gcr_3.28.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "A library for bits of crypto UI and parsing etc"
-HOMEPAGE = "http://www.gnome.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
-
-DEPENDS = "intltool-native gtk+3 p11-kit glib-2.0 libgcrypt \
- ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
-
-inherit gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection
-# depends on gtk+3, but also x11 through gtk+-x11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "afd88cacfd54c1ac5b3e0eb35e3aa674"
-SRC_URI[archive.sha256sum] = "95204aa2111c301778ebfbe60975ce3ed698c958430ffcc2a785ac5e593d168b"
-
-FILES_${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/gcr-3 \
-"
-
-# http://errors.yoctoproject.org/Errors/Details/20229/
-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/gcr/gcr_3.36.0.bb b/meta/recipes-gnome/gcr/gcr_3.36.0.bb
new file mode 100644
index 0000000000..ff455a68ec
--- /dev/null
+++ b/meta/recipes-gnome/gcr/gcr_3.36.0.bb
@@ -0,0 +1,34 @@
+SUMMARY = "A library for bits of crypto UI and parsing etc"
+DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \
+accessing key stores. It also provides the viewer for crypto files on the \
+GNOME desktop."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr"
+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 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 += " 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 \
+ ${datadir}/gcr-3 \
+"
+
+# http://errors.yoctoproject.org/Errors/Details/20229/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+ARM_INSTRUCTION_SET_armv6 = "arm"
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch
new file mode 100644
index 0000000000..6c758fd61c
--- /dev/null
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From d8d231c01ef2e59856da8a5c26ace955e5f29370 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Mon, 25 Nov 2019 17:05:46 +0000
+Subject: [PATCH] tests: install circular-table.gif
+
+This test data was added for the pixbuf-gif-circular-table test (added October
+2018 in 0b9d004) but because the file was never actually installed the installed
+test suite never passes.
+---
+ tests/meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/meson.build b/tests/meson.build
+index 5116fc2b9..80ed3e8b2 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -97,6 +97,7 @@ test_data = [
+ 'bug775693.pixdata',
+ 'bug775229.pixdata',
+ 'aero.gif',
++ 'circular-table.gif'
+ ]
+
+ installed_test_bindir = join_paths(gdk_pixbuf_libexecdir, 'installed-tests', meson.project_name())
+--
+2.20.1
+
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
index 0f3a63d891..3dec5ed052 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.38.2.bb
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
@@ -1,8 +1,11 @@
SUMMARY = "Image loading library for GTK+"
-HOMEPAGE = "http://www.gtk.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+DESCRIPTION = "The GDK Pixbuf library provides: Image loading and saving \
+facilities, fast scaling and compositing of pixbufs and Simple animation \
+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 \
"
@@ -20,6 +23,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
file://0001-Fix-a-couple-of-decisions-around-cross-compilation.patch \
file://0004-Do-not-run-tests-when-building.patch \
file://0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch \
+ file://missing-test-data.patch \
"
SRC_URI_append_class-target = " \
@@ -29,27 +33,27 @@ SRC_URI_append_class-nativesdk = " \
file://0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch \
"
-SRC_URI[md5sum] = "cc1d712a1643b92ff0904d589963971f"
-SRC_URI[sha256sum] = "73fa651ec0d89d73dd3070b129ce2203a66171dfc0bd2caa3570a9c93d2d0781"
+SRC_URI[md5sum] = "05eb1ebc258ba905f1c8644ef49de064"
+SRC_URI[sha256sum] = "1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6"
inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc lib_package
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"
@@ -95,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 4a98363313..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.32.0],
+ 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.32.0.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb
index 02676f4401..2d78bea2c8 100644
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.32.0.bb
+++ b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb
@@ -1,10 +1,12 @@
SUMMARY = "GTK+ icon theme"
-HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/adwaita-icon-theme/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
+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] = "4b16278cfed860a86c8221de62eec151"
-SRC_URI[sha256sum] = "698db6e407bb987baec736c6a30216dfc0317e3ca2403c7adf3a5aa46c193286"
+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 e6742f37d8..ff365551df 100644
--- a/meta/recipes-gnome/gnome/gconf_3.2.6.bb
+++ b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
@@ -1,4 +1,7 @@
SUMMARY = "GNOME configuration system"
+DESCRIPTION = "GConf is a system for storing application preferences. \
+It is intended for user preferences; not configuration of something like \
+Apache, or arbitrary data storage."
SECTION = "x11/gnome"
HOMEPAGE = "https://projects.gnome.org/gconf/"
LICENSE = "LGPLv2+"
@@ -12,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"
@@ -49,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-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 5747d61c19..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 2b3bce1526b538dc2c7fa223eaf9808858aa1b06 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 85ae575..327c134 100644
---- a/gir/meson.build
-+++ b/gir/meson.build
-@@ -36,16 +36,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'
-@@ -58,6 +71,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
-@@ -84,8 +103,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')
-@@ -339,7 +358,7 @@ endforeach
- if giounix_dep.found()
- 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
-@@ -422,15 +441,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 95bbd2b..f7baefd 100644
---- a/meson.build
-+++ b/meson.build
-@@ -163,7 +163,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 a4f45a142d..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 8f01066e935a7323ff6e53f27ed1b5fb74fa11eb 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,10 +62,10 @@ 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 0261e1a..4cb646f 100644
+index 204659f..3e61d31 100644
--- a/girepository/meson.build
+++ b/girepository/meson.build
-@@ -36,7 +36,7 @@ girepo_internals_lib = static_library('girepository-internals',
+@@ -44,7 +44,7 @@ girepo_internals_lib = static_library('girepository-internals',
],
c_args: gi_hidden_visibility_cflags + custom_c_args,
include_directories : configinc,
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch
deleted file mode 100644
index d1fdc068c0..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 8a57aa0ac6c2f00b9b7a7fc177431f7643399e70 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 23 Mar 2016 17:07:28 +0200
-Subject: [PATCH] Revert an incomplete upstream attempt at cross-compile
- support
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- common.mk | 4 ----
- giscanner/gdumpparser.py | 6 ------
- 2 files changed, 10 deletions(-)
-
-diff --git a/common.mk b/common.mk
-index 64fb02f..77e819d 100644
---- a/common.mk
-+++ b/common.mk
-@@ -24,12 +24,8 @@ INTROSPECTION_SCANNER_ARGS = \
- --add-include-path=$(top_builddir) \
- --add-include-path=$(top_builddir)/gir
-
--# GI_CROSS_LAUNCHER is the command to use for executing g-ir-compiler.
--# Normally will be undefined but can be set (e.g. to wine or qemu)
--# when cross-compiling
- INTROSPECTION_COMPILER = \
- env PATH=".libs:$(PATH)" \
-- $(GI_CROSS_LAUNCHER) \
- $(top_builddir)/g-ir-compiler$(EXEEXT)
-
- INTROSPECTION_COMPILER_ARGS = \
-diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py
-index 1730fee..26bab84 100644
---- a/giscanner/gdumpparser.py
-+++ b/giscanner/gdumpparser.py
-@@ -156,12 +156,6 @@ blob containing data gleaned from GObject's primitive introspection."""
- out_path = os.path.join(self._binary.tmpdir, 'dump.xml')
-
- args = []
--
-- # Prepend the launcher command and arguments, if defined
-- launcher = os.environ.get('GI_CROSS_LAUNCHER')
-- if launcher:
-- args.extend(launcher.split())
--
- args.extend(self._binary.args)
- args.append('--introspect-dump=%s,%s' % (in_path, out_path))
-
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/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch
deleted file mode 100644
index e4fffcf613..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch
+++ /dev/null
@@ -1,201 +0,0 @@
-From 2335d22e4c64db3d5dfc16ac65468b9dd66db8ac Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 19 Oct 2015 18:29:21 +0300
-Subject: [PATCH] configure.ac: add host-gi, gi-cross-wrapper, gi-ldd-wrapper
- and introspection-data options
-
-With the first option, gobject-introspection tools (g-ir-doc-tool and g-ir-scanner)
-that are already installed in the host system will be used for building the source tree.
-
-With the second option, g-ir-scanner will be instructed to use an executable
-wrapper to run binaries it's producing, and g-ir-compiler will be run
-through the same wrapper (host system's g-ir-compiler cannot be used because
-it's producing architecture-specific output).
-
-With the third option, giscanner will be instructed to use a special ldd
-command instead of system's ldd (which does not work when the binary to inspect
-is compiled for a different architecture).
-
-With the fourth option, it is possible to disable building of introspection data
-(.gir and .typelib files), which may be difficult or impossible in cross-compilation
-environments, because of lack of emulation (or native hardware) for the target architecture
-on which the target binaries can be run.
-
-These options are useful when cross-compiling for a different target architecture.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- Makefile.am | 2 ++
- common.mk | 39 +++++++++++++++++++++++++++++++++++++++
- configure.ac | 42 ++++++++++++++++++++++++++++++++++++++++++
- tests/Makefile.am | 5 ++++-
- 4 files changed, 87 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 952bf71..797a3bd 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -21,7 +21,9 @@ include Makefile-cmph.am
- include Makefile-girepository.am
- include Makefile-giscanner.am
- include Makefile-examples.am
-+if BUILD_INTROSPECTION_DATA
- include Makefile-gir.am
-+endif
- include Makefile-tools.am
-
- ## Process this file with automake to produce Makefile.in
-diff --git a/common.mk b/common.mk
-index 77e819d..379ab53 100644
---- a/common.mk
-+++ b/common.mk
-@@ -6,6 +6,15 @@
- # module itself.
- #
-
-+if USE_HOST_GI
-+INTROSPECTION_SCANNER = \
-+ env PATH="$(PATH)" \
-+ LPATH=.libs \
-+ CC="$(CC)" \
-+ PYTHONPATH=$(top_builddir):$(top_srcdir) \
-+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
-+ g-ir-scanner
-+else
- INTROSPECTION_SCANNER = \
- env PATH=".libs:$(PATH)" \
- LPATH=.libs \
-@@ -14,9 +23,24 @@ INTROSPECTION_SCANNER = \
- UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
- UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
- $(top_builddir)/g-ir-scanner
-+endif
-+
-+if USE_CROSS_WRAPPER
-+CROSS_WRAPPER_ARG = --use-binary-wrapper=$(GI_CROSS_WRAPPER)
-+else
-+CROSS_WRAPPER_ARG =
-+endif
-+
-+if USE_LDD_WRAPPER
-+LDD_WRAPPER_ARG = --use-ldd-wrapper=$(GI_LDD_WRAPPER)
-+else
-+LDD_WRAPPER_ARG =
-+endif
-
- INTROSPECTION_SCANNER_ARGS = \
- --verbose \
-+ $(CROSS_WRAPPER_ARG) \
-+ $(LDD_WRAPPER_ARG) \
- -I$(top_srcdir) \
- --add-include-path=$(srcdir) \
- --add-include-path=$(top_srcdir)/gir \
-@@ -24,9 +48,15 @@ INTROSPECTION_SCANNER_ARGS = \
- --add-include-path=$(top_builddir) \
- --add-include-path=$(top_builddir)/gir
-
-+if USE_CROSS_WRAPPER
-+INTROSPECTION_COMPILER = \
-+ env PATH=".libs:$(PATH)" \
-+ $(GI_CROSS_WRAPPER) $(top_builddir)/.libs/g-ir-compiler$(EXEEXT)
-+else
- INTROSPECTION_COMPILER = \
- env PATH=".libs:$(PATH)" \
- $(top_builddir)/g-ir-compiler$(EXEEXT)
-+endif
-
- INTROSPECTION_COMPILER_ARGS = \
- --includedir=$(srcdir) \
-@@ -35,6 +65,14 @@ INTROSPECTION_COMPILER_ARGS = \
- --includedir=$(top_builddir) \
- --includedir=$(top_builddir)/gir
-
-+if USE_HOST_GI
-+INTROSPECTION_DOCTOOL = \
-+ env PATH="$(PATH)" \
-+ LPATH=.libs \
-+ PYTHONPATH=$(top_builddir):$(top_srcdir) \
-+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
-+ g-ir-doc-tool
-+else
- INTROSPECTION_DOCTOOL = \
- env PATH=".libs:$(PATH)" \
- LPATH=.libs \
-@@ -42,6 +80,7 @@ INTROSPECTION_DOCTOOL = \
- UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
- UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
- $(top_builddir)/g-ir-doc-tool
-+endif
-
- INTROSPECTION_DOCTOOL_ARGS = \
- --add-include-path=$(srcdir) \
-diff --git a/configure.ac b/configure.ac
-index 885da70..cd8108b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -383,6 +383,48 @@ dnl
- AM_CONDITIONAL(MSVC_BASE_NO_TOOLSET_SET, [test x$MSVC_BASE_TOOLSET = x])
- AM_CONDITIONAL(MSVC_NO_TOOLSET_SET, [test x$MSVC_TOOLSET = x])
-
-+AC_ARG_ENABLE([host-gi],
-+[AS_HELP_STRING([--enable-host-gi],[Use gobject introspection tools installed in the host system (useful when cross-compiling)])],
-+[case "${enableval}" in
-+ yes) host_gi=true ;;
-+ no) host_gi=false ;;
-+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-host-gi]) ;;
-+esac],[host_gi=false])
-+AM_CONDITIONAL([USE_HOST_GI], [test x$host_gi = xtrue])
-+
-+AC_ARG_ENABLE([gi-cross-wrapper],
-+[AS_HELP_STRING([--enable-gi-cross-wrapper=path],[Use a wrapper to run gicompiler and binaries produced by giscanner (useful when cross-compiling)])],
-+[
-+GI_CROSS_WRAPPER="${enableval}"
-+use_wrapper=true
-+],[
-+GI_CROSS_WRAPPER=""
-+use_wrapper=false
-+])
-+AC_SUBST(GI_CROSS_WRAPPER)
-+AM_CONDITIONAL([USE_CROSS_WRAPPER], [test x$use_wrapper = xtrue])
-+
-+AC_ARG_ENABLE([gi-ldd-wrapper],
-+[AS_HELP_STRING([--enable-gi-ldd-wrapper=path],[Use a ldd wrapper instead of system's ldd command in giscanner (useful when cross-compiling)])],
-+[
-+GI_LDD_WRAPPER="${enableval}"
-+use_ldd_wrapper=true
-+],[
-+GI_LDD_WRAPPER=""
-+use_ldd_wrapper=false
-+])
-+AC_SUBST(GI_LDD_WRAPPER)
-+AM_CONDITIONAL([USE_LDD_WRAPPER], [test x$use_ldd_wrapper = xtrue])
-+
-+AC_ARG_ENABLE([introspection-data],
-+[AS_HELP_STRING([--enable-introspection-data],[Build introspection data (.gir and .typelib files) in addition to library and tools])],
-+[case "${enableval}" in
-+ yes) introspection_data=true ;;
-+ no) introspection_data=false ;;
-+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-introspection-data]) ;;
-+esac],[introspection_data=true])
-+AM_CONDITIONAL([BUILD_INTROSPECTION_DATA], [test x$introspection_data = xtrue])
-+
- AC_CONFIG_FILES([
- Makefile
- tests/Makefile
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4bdb9c3..10b0f27 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -1,6 +1,9 @@
- include $(top_srcdir)/common.mk
-
--SUBDIRS = . scanner repository offsets warn
-+SUBDIRS = . scanner repository warn
-+if BUILD_INTROSPECTION_DATA
-+SUBDIRS += offsets
-+endif
-
- EXTRA_DIST=
- BUILT_SOURCES=
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 74622680d6..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 74dab0fb6104ab6b715a24b783f8e8dfa5f83617 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>
-
----
- Makefile-gir.am | 18 +++++++++---------
- m4/introspection.m4 | 8 ++++----
- 2 files changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/Makefile-gir.am b/Makefile-gir.am
-index b59b0a6..24a50c2 100644
---- a/Makefile-gir.am
-+++ b/Makefile-gir.am
-@@ -58,8 +58,8 @@ else
- endif
-
- # glib
--GLIB_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0
--GLIB_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0)
-+GLIB_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0
-+GLIB_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0)
-
- GLIB_LIBRARY=glib-2.0
-
-@@ -95,8 +95,8 @@ GLib-2.0.gir: g-ir-scanner g-ir-compiler$(EXEEXT)
- gir/DBusGLib-1.0.typelib: GObject-2.0.gir
-
- # gobject
--GOBJECT_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0
--GOBJECT_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0)
-+GOBJECT_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0
-+GOBJECT_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0)
-
- GOBJECT_LIBRARY=gobject-2.0
-
-@@ -124,8 +124,8 @@ GObject_2_0_gir_FILES = \
- BUILT_GIRSOURCES += GObject-2.0.gir
-
- # gmodule
--GMODULE_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0
--GMODULE_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0)
-+GMODULE_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0
-+GMODULE_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0)
-
- GMODULE_LIBRARY=gmodule-2.0
-
-@@ -150,13 +150,13 @@ GModule_2_0_gir_FILES = $(GLIB_INCLUDEDIR)/gmodule.h \
- BUILT_GIRSOURCES += GModule-2.0.gir
-
- # gio
--GIO_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0
--GIO_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0)
-+GIO_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0
-+GIO_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0)
-
- GIO_LIBRARY=gio-2.0
-
- if HAVE_GIO_UNIX
--GIO_UNIX_INCLUDEDIR = $(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0
-+GIO_UNIX_INCLUDEDIR = $(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0
- GIO_UNIX_HDRS = $(wildcard $(GIO_UNIX_INCLUDEDIR)/gio/*.h)
- GIO_UNIX_PACKAGES = gio-unix-2.0
- else
-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.60.2.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb
index f46053f443..4d80f00e10 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb
@@ -1,6 +1,10 @@
SUMMARY = "Middleware layer between GObject-using C libraries and language bindings"
+DESCRIPTION = "GObject Introspection is a project for providing machine \
+readable introspection data of the API of C libraries. This introspection \
+data can be used in several different use cases, for example automatic code \
+generation for bindings, API verification and documentation generation."
HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gobject-introspection/issues"
SECTION = "libs"
LICENSE = "LGPLv2+ & GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
@@ -10,19 +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://0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch \
- file://0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch \
- 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-gir-add-a-dependency-for-g-ir-compiler-for-building-.patch \
"
-SRC_URI[md5sum] = "57c1c5dcf3d0a9aa73d06c2d5e6960d7"
-SRC_URI[sha256sum] = "ffdfe2368fb2e34a547898b01aac0520d52d8627fdeb1c306559bcb503ab5e9c"
+SRC_URI[md5sum] = "3419dfd086efcf83768e0579ab6abd2b"
+SRC_URI[sha256sum] = "80beae6728c134521926affff9b2e97125749b38d38744dc901f4010ee3e7fa7"
SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
@@ -46,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 ''} \
"
@@ -94,7 +91,7 @@ EOF
# Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files
# for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use
- # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory
+ # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory
# from the target sysroot.
cat > ${B}/g-ir-scanner-wrapper << EOF
#!/bin/sh
@@ -134,7 +131,12 @@ do_compile_prepend() {
export GIR_EXTRA_LIBS_PATH=$B/.libs
}
-# Our wrappers need to be available system-wide, because they will be used
+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() {
install -d ${D}${bindir}/
diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb
deleted file mode 100644
index 859f70466b..0000000000
--- a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.32.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "GNOME desktop-wide GSettings schemas"
-HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "glib-2.0"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even
-
-SRC_URI[archive.md5sum] = "0c2d468a482c12594757442c983aa8ea"
-SRC_URI[archive.sha256sum] = "2d59b4b3a548859dfae46314ee4666787a00d5c82db382e97df7aa9d0e310a35"
-SRC_URI += "file://0001-Do-not-skip-gir-installation-for-cross-compiling.patch"
diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb
new file mode 100644
index 0000000000..f54b242e73
--- /dev/null
+++ b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "GNOME desktop-wide GSettings schemas"
+DESCRIPTION = "GSettings desktop-wide schemas contains a collection of \
+GSettings schemas for settings shared by various components of a desktop."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/issues"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even
+
+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 dc6768c4e8..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."
@@ -10,7 +11,7 @@ DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \
LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
-inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check gobject-introspection
+inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection
BBCLASSEXTEND = "native nativesdk"
@@ -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/0002-Do-not-try-to-initialize-GL-without-libGL.patch b/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch
index cc7edf7607..80dc2d7a05 100644
--- a/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch
+++ b/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch
@@ -1,7 +1,7 @@
-From 23a563155406980dfc8cf6f7c2da6cce0ac310f0 Mon Sep 17 00:00:00 2001
+From 6575ab0f0e8c1bba033ad1616511e37a2ec995ff Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Fri, 16 Oct 2015 16:35:16 +0300
-Subject: [PATCH 2/4] Do not try to initialize GL without libGL
+Subject: [PATCH] Do not try to initialize GL without libGL
_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys
GLX api which will exit() if libGL.so.1 is not present. We do not
@@ -22,10 +22,10 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
2 files changed, 11 insertions(+)
diff --git a/configure.ac b/configure.ac
-index 757fd7c..0a48875 100644
+index e9f5583..bd651bb 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -351,6 +351,12 @@ AC_ARG_ENABLE(cloudproviders,
+@@ -346,6 +346,12 @@ AC_ARG_ENABLE(cloudproviders,
[AS_HELP_STRING([--enable-cloudproviders],
[enable libcloudproviders integration])],
[cloudproviders_set=yes])
@@ -36,8 +36,8 @@ index 757fd7c..0a48875 100644
+ AC_DEFINE([HAVE_GLX], [], [GLX will be available at runtime])
+])
- if test -z "$backend_set"; then
- if test "$platform_win32" = yes; then
+ AC_ARG_ENABLE(profiler,
+ [AS_HELP_STRING([--enable-profiler],
diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c
index 81479d8..3c8c5c0 100644
--- a/gdk/x11/gdkvisual-x11.c
@@ -55,6 +55,3 @@ index 81479d8..3c8c5c0 100644
}
gint
---
-2.14.1
-
diff --git a/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch b/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch
index 852dc9dfcd..398c9bc36a 100644
--- a/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch
+++ b/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch
@@ -1,4 +1,4 @@
-From d11b41a7ff0234f3832d6aabdf498807d1463c18 Mon Sep 17 00:00:00 2001
+From f83fcf1991afad6d9c15546b2ccd775dad4e314c Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Tue, 21 Jun 2016 15:11:39 +0300
Subject: [PATCH] Add --disable-opengl configure option
@@ -37,20 +37,20 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
gdk/x11/gdkx-autocleanups.h | 2 +
gdk/x11/{gdkx.h => gdkx-with-gl-context.h} | 1 -
gdk/x11/gdkx-without-gl-context.h | 58 ++++++++++++++++++++++
- gtk/Makefile.am | 3 +-
+ gtk/Makefile.am | 2 +-
gtk/gtkglarea.c | 20 +++++++-
gtk/inspector/general.c | 6 +++
tests/Makefile.am | 10 ++--
testsuite/gtk/objects-finalize.c | 2 +
- 21 files changed, 208 insertions(+), 20 deletions(-)
+ 21 files changed, 208 insertions(+), 19 deletions(-)
rename gdk/x11/{gdkx.h => gdkx-with-gl-context.h} (98%)
create mode 100644 gdk/x11/gdkx-without-gl-context.h
diff --git a/configure.ac b/configure.ac
-index 2c4733b..18ae66c 100644
+index bd651bb..b4c061f 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -352,6 +352,15 @@ AC_ARG_ENABLE(cloudproviders,
+@@ -346,6 +346,15 @@ AC_ARG_ENABLE(cloudproviders,
[AS_HELP_STRING([--enable-cloudproviders],
[enable libcloudproviders integration])],
[cloudproviders_set=yes])
@@ -66,21 +66,21 @@ index 2c4733b..18ae66c 100644
AC_ARG_ENABLE(glx,
[AS_HELP_STRING([--enable-glx],
[When enabled Gdk will try to initialize GLX])])
-@@ -1370,7 +1379,7 @@ CFLAGS="$saved_cflags"
+@@ -1345,7 +1354,7 @@ CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"
GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version"
--GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends epoxy >= epoxy_required_version $CLOUDPROVIDER_PACKAGES fribidi >= fribidi_required_version"
-+GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends $EPOXY_PACKAGES $CLOUDPROVIDER_PACKAGES fribidi >= fribidi_required_version"
+-GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends epoxy >= epoxy_required_version $CLOUDPROVIDER_PACKAGES $PROFILER_PACKAGES fribidi >= fribidi_required_version"
++GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends $EPOXY_PACKAGES $CLOUDPROVIDER_PACKAGES $PROFILER_PACKAGES fribidi >= fribidi_required_version"
PKG_CHECK_MODULES(GDK_DEP, $GDK_PACKAGES $GDK_PRIVATE_PACKAGES)
GDK_DEP_LIBS="$GDK_EXTRA_LIBS $GDK_DEP_LIBS $MATH_LIB"
-@@ -1404,7 +1413,7 @@ fi
+@@ -1379,7 +1388,7 @@ fi
PKG_CHECK_MODULES(ATK, $ATK_PACKAGES)
GTK_PACKAGES="atk >= atk_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version gdk-pixbuf-2.0 >= gdk_pixbuf_required_version gio-2.0 >= glib_required_version"
--GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= epoxy_required_version fribidi >= fribidi_required_version"
-+GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $EPOXY_PACKAGES fribidi >= fribidi_required_version"
+-GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES epoxy >= epoxy_required_version fribidi >= fribidi_required_version"
++GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $EPOXY_PACKAGES fribidi >= fribidi_required_version"
if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then
GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2"
fi
@@ -168,7 +168,7 @@ index b51e4ae..82409c7 100644
return TRUE;
}
diff --git a/docs/tools/Makefile.am b/docs/tools/Makefile.am
-index 6a6d70f..5cdf312 100644
+index bec43e3..189e8fc 100644
--- a/docs/tools/Makefile.am
+++ b/docs/tools/Makefile.am
@@ -9,13 +9,18 @@ AM_CPPFLAGS = \
@@ -210,7 +210,7 @@ index 932daf1..54239d6 100644
return info;
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
-index 689ee52..d6b4e70 100644
+index 479d6a1..7edbee8 100644
--- a/gdk/Makefile.am
+++ b/gdk/Makefile.am
@@ -274,7 +274,6 @@ x11_introspection_files = \
@@ -243,10 +243,10 @@ index 689ee52..d6b4e70 100644
GdkX11_3_0_gir_SCANNERFLAGS = \
--identifier-prefix=Gdk \
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
-index 06d4187..832711c 100644
+index 240c99f..9eb49bf 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
-@@ -2416,7 +2416,9 @@ gboolean
+@@ -2419,7 +2419,9 @@ gboolean
gdk_display_make_gl_context_current (GdkDisplay *display,
GdkGLContext *context)
{
@@ -380,7 +380,7 @@ index dfbed63..556f0a3 100644
/**
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
-index 1416409..e3b5630 100644
+index 6ae0f86..4e48a2a 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -45,7 +45,9 @@
@@ -393,7 +393,7 @@ index 1416409..e3b5630 100644
/* for the use of round() */
#include "fallback-c89.c"
-@@ -2822,6 +2824,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window,
+@@ -2844,6 +2846,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window,
{
GError *internal_error = NULL;
@@ -407,7 +407,7 @@ index 1416409..e3b5630 100644
if (_gdk_gl_flags & GDK_GL_DISABLE)
{
g_set_error_literal (error, GDK_GL_ERROR,
-@@ -2957,6 +2966,7 @@ gdk_window_begin_paint_internal (GdkWindow *window,
+@@ -2979,6 +2988,7 @@ gdk_window_begin_paint_internal (GdkWindow *window,
}
else
{
@@ -415,7 +415,7 @@ index 1416409..e3b5630 100644
gdk_gl_context_make_current (context);
/* With gl we always need a surface to combine the gl
drawing with the native drawing. */
-@@ -2971,6 +2981,7 @@ gdk_window_begin_paint_internal (GdkWindow *window,
+@@ -2993,6 +3003,7 @@ gdk_window_begin_paint_internal (GdkWindow *window,
glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glViewport (0, 0, ww, wh);
@@ -423,7 +423,7 @@ index 1416409..e3b5630 100644
}
}
-@@ -3034,6 +3045,7 @@ gdk_window_end_paint_internal (GdkWindow *window)
+@@ -3056,6 +3067,7 @@ gdk_window_end_paint_internal (GdkWindow *window)
gdk_gl_context_make_current (window->gl_paint_context);
@@ -431,7 +431,7 @@ index 1416409..e3b5630 100644
if (!cairo_region_is_empty (opaque_region))
gdk_gl_texture_from_surface (window->current_paint.surface,
opaque_region);
-@@ -3044,6 +3056,7 @@ gdk_window_end_paint_internal (GdkWindow *window)
+@@ -3066,6 +3078,7 @@ gdk_window_end_paint_internal (GdkWindow *window)
window->current_paint.need_blend_region);
glDisable(GL_BLEND);
}
@@ -440,7 +440,7 @@ index 1416409..e3b5630 100644
cairo_region_destroy (opaque_region);
diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am
-index 6289f3a..cbbac79 100644
+index 32b1f24..6352313 100644
--- a/gdk/x11/Makefile.am
+++ b/gdk/x11/Makefile.am
@@ -40,8 +40,6 @@ libgdk_x11_la_SOURCES = \
@@ -494,7 +494,7 @@ index 6289f3a..cbbac79 100644
gdkx11keys.h \
gdkx11monitor.h \
gdkx11property.h \
-@@ -87,9 +102,16 @@ libgdkx11include_HEADERS = \
+@@ -87,10 +102,17 @@ libgdkx11include_HEADERS = \
gdkx11visual.h \
gdkx11window.h
@@ -506,13 +506,14 @@ index 6289f3a..cbbac79 100644
# don't seem to be correctly expanded for the dist files.
EXTRA_DIST += \
+ gdkx.h \
- gdksettings.c
+ gdksettings.c \
+ meson.build
+MAINTAINERCLEANFILES = gdkx.h
+
-include $(top_srcdir)/git.mk
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
-index 5b95196..9a2f2a2 100644
+index 817944e..e7a2947 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -37,7 +37,9 @@
@@ -523,9 +524,9 @@ index 5b95196..9a2f2a2 100644
#include "gdkglcontext-x11.h"
+#endif
#include "gdk-private.h"
+ #include "gdkprofilerprivate.h"
- #include <glib.h>
-@@ -3184,7 +3186,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
+@@ -3188,7 +3190,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list;
display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target;
@@ -537,10 +538,10 @@ index 5b95196..9a2f2a2 100644
display_class->get_default_seat = gdk_x11_display_get_default_seat;
diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
-index 272cecd..2bb34ac 100644
+index 8939ae9..931bff9 100644
--- a/gdk/x11/gdkscreen-x11.c
+++ b/gdk/x11/gdkscreen-x11.c
-@@ -1675,3 +1675,8 @@ gdk_x11_screen_get_current_desktop (GdkScreen *screen)
+@@ -1723,3 +1723,8 @@ gdk_x11_screen_get_current_desktop (GdkScreen *screen)
{
return get_netwm_cardinal_property (screen, "_NET_CURRENT_DESKTOP");
}
@@ -550,7 +551,7 @@ index 272cecd..2bb34ac 100644
+void _gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen) {}
+#endif
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
-index f92a146..89f900a 100644
+index 1fe7b90..d23a347 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -36,7 +36,9 @@
@@ -563,7 +564,7 @@ index f92a146..89f900a 100644
#include "gdkprivate-x11.h"
#include "gdk-private.h"
-@@ -5839,7 +5841,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
+@@ -5861,7 +5863,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
impl_class->set_opaque_region = gdk_x11_window_set_opaque_region;
impl_class->set_shadow_width = gdk_x11_window_set_shadow_width;
impl_class->show_window_menu = gdk_x11_window_show_window_menu;
@@ -667,31 +668,23 @@ index 0000000..c9e2617
+
+#endif /* __GDK_X_H__ */
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
-index e556e9d..ce912d7 100644
+index eaca473..99352d1 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
-@@ -1441,7 +1441,6 @@ gtkprivatetypebuiltins.c: $(gtk_private_type_h_sources) gtkprivatetypebuiltins.
- && cp xgen-gptbc gtkprivatetypebuiltins.c \
- && rm -f xgen-gptbc
-
--
- gtktypefuncs.c: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/a11y/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile
- $(AM_V_GEN) export LC_ALL=C ; \
- (echo '#undef GTK_COMPILATION' && echo '#include <gtk/gtkx.h>') > xgen-gtfsrc.c && \
-@@ -1449,7 +1448,7 @@ gtktypefuncs.c: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_src
+@@ -1449,7 +1449,7 @@ gtktypefuncs.inc: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_s
${CPP} $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \
$(GREP) -o '\bg[td]k_[a-zA-Z0-9_]*_get_type\b' | \
sort | uniq | \
- $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; }' >> xgen-gtf \
+ $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; s/^.*gdk_x11_gl.*$$/#ifdef HAVE_OPENGL\n&\n#endif/; }' >> xgen-gtf \
&& cp xgen-gtf $@ && rm -f xgen-gtf
- $(srcdir)/gtktestutils.c: gtktypefuncs.c
+ $(srcdir)/gtktestutils.c: gtktypefuncs.inc
diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c
-index ea383c0..bb4eb64 100644
+index 9a56443..7de0db2 100644
--- a/gtk/gtkglarea.c
+++ b/gtk/gtkglarea.c
-@@ -28,7 +28,9 @@
+@@ -29,7 +29,9 @@
#include "gtkprivate.h"
#include "gtkrender.h"
@@ -701,7 +694,7 @@ index ea383c0..bb4eb64 100644
/**
* SECTION:gtkglarea
-@@ -368,9 +370,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area)
+@@ -369,9 +371,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area)
static void
gtk_gl_area_resize (GtkGLArea *area, int width, int height)
{
@@ -714,7 +707,7 @@ index ea383c0..bb4eb64 100644
/*
* Creates all the buffer objects needed for rendering the scene
*/
-@@ -482,6 +487,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
+@@ -483,6 +488,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
priv->needs_render = TRUE;
}
@@ -722,7 +715,7 @@ index ea383c0..bb4eb64 100644
/**
* gtk_gl_area_attach_buffers:
-@@ -500,6 +506,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
+@@ -501,6 +507,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
void
gtk_gl_area_attach_buffers (GtkGLArea *area)
{
@@ -730,7 +723,7 @@ index ea383c0..bb4eb64 100644
GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
g_return_if_fail (GTK_IS_GL_AREA (area));
-@@ -532,11 +539,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area)
+@@ -533,11 +540,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area)
glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT,
GL_RENDERBUFFER_EXT, priv->depth_stencil_buffer);
}
@@ -744,7 +737,7 @@ index ea383c0..bb4eb64 100644
GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
if (priv->context == NULL)
-@@ -568,6 +577,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area)
+@@ -569,6 +578,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area)
glDeleteFramebuffersEXT (1, &priv->frame_buffer);
priv->frame_buffer = 0;
}
@@ -752,7 +745,7 @@ index ea383c0..bb4eb64 100644
}
static void
-@@ -678,6 +688,7 @@ gtk_gl_area_draw (GtkWidget *widget,
+@@ -679,6 +689,7 @@ gtk_gl_area_draw (GtkWidget *widget,
GtkGLArea *area = GTK_GL_AREA (widget);
GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
gboolean unused;
@@ -760,7 +753,7 @@ index ea383c0..bb4eb64 100644
int w, h, scale;
GLenum status;
-@@ -689,7 +700,6 @@ gtk_gl_area_draw (GtkWidget *widget,
+@@ -690,7 +701,6 @@ gtk_gl_area_draw (GtkWidget *widget,
gtk_widget_get_allocated_height (widget));
return FALSE;
}
@@ -768,7 +761,7 @@ index ea383c0..bb4eb64 100644
if (priv->context == NULL)
return FALSE;
-@@ -735,6 +745,14 @@ gtk_gl_area_draw (GtkWidget *widget,
+@@ -736,6 +746,14 @@ gtk_gl_area_draw (GtkWidget *widget,
}
return TRUE;
@@ -831,7 +824,7 @@ index c241ec8..24576dd 100644
if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ()))
{
diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 7c5ca99..e4a4546 100644
+index ee1e8b5..e6c6502 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -80,8 +80,6 @@ noinst_PROGRAMS = $(TEST_PROGS) \
@@ -864,10 +857,10 @@ index 7c5ca99..e4a4546 100644
noinst_PROGRAMS += testforeign
endif
diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c
-index 0b3a519..07b096f 100644
+index 24540e3..e0f863a 100644
--- a/testsuite/gtk/objects-finalize.c
+++ b/testsuite/gtk/objects-finalize.c
-@@ -115,7 +115,9 @@ main (int argc, char **argv)
+@@ -116,7 +116,9 @@ main (int argc, char **argv)
all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE &&
all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 &&
all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER &&
diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.24.8.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.22.bb
index d79b18bee0..6af2bd94c1 100644
--- a/meta/recipes-gnome/gtk+/gtk+3_3.24.8.bb
+++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.22.bb
@@ -7,9 +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 \
- "
-SRC_URI[md5sum] = "eeedde01856238114dcf4df3ebc942a5"
-SRC_URI[sha256sum] = "666962de9b9768fe9ca785b0e2f42c8b9db3868a12fa9b356b167238d70ac799"
+ "
+SRC_URI[sha256sum] = "bf18a4a5dff28a7b02aaef1b949c2d09c96c18387eddab152bb4cd55a5b67dda"
S = "${WORKDIR}/gtk+-${PV}"
diff --git a/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch b/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch
index 8c9bc95442..5ca4e3e086 100644
--- a/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch
+++ b/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch
@@ -1,4 +1,4 @@
-From 9537a7998a220b698b26d926a111bb400ff1ce01 Mon Sep 17 00:00:00 2001
+From 657310f3842c84d28f6b77e8ad4d9b93472ca5da Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Mon, 5 Sep 2016 22:25:44 +0100
Subject: [PATCH] Use native pkg-config when looking for gtk-doc.
diff --git a/meta/recipes-gnome/gtk-doc/gtk-doc_1.31.bb b/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb
index 4f97ce0633..1eaf370ab0 100644
--- a/meta/recipes-gnome/gtk-doc/gtk-doc_1.31.bb
+++ b/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb
@@ -18,8 +18,8 @@ PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "api-documentation",
PACKAGECONFIG[working-scripts] = ",,libxslt-native xmlto-native python3-six python3-pygments"
PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0"
-SRC_URI[archive.md5sum] = "6239713011369a4fbdc7619350403772"
-SRC_URI[archive.sha256sum] = "a51687956d0377ac70904d03fdc73c9e116589b4a01453fa92162442b3657011"
+SRC_URI[archive.md5sum] = "07764836262e154e94922e5f2aa476ae"
+SRC_URI[archive.sha256sum] = "de0ef034fb17cb21ab0c635ec730d19746bce52984a6706e7bbec6fb5e0b907c"
SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \
file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \
file://conditionaltests.patch \
@@ -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/hicolor-icon-theme/hicolor-icon-theme_0.17.bb b/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
index fb8033448d..74e3430528 100644
--- a/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
+++ b/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb
@@ -1,11 +1,13 @@
SUMMARY = "Default icon theme that all icon themes automatically inherit from"
-HOMEPAGE = "http://icon-theme.freedesktop.org/wiki/HicolorTheme"
+DESCRIPTION = "The hicolor-icon-theme package contains a default fallback \
+theme for implementations of the icon theme specification."
+HOMEPAGE = "https://www.freedesktop.org/wiki/Software/icon-theme"
BUGTRACKER = "https://bugs.freedesktop.org/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426"
-SRC_URI = "http://icon-theme.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
+SRC_URI = "https://icon-theme.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
SRC_URI[md5sum] = "84eec8d6f810240a069c731f1870b474"
SRC_URI[sha256sum] = "317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8"
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 1c663f93e1..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
@@ -3,7 +3,8 @@ DESCRIPTION = "Use JSON-GLib it is possible to parse and generate valid JSON\
data structures, using a DOM-like API. JSON-GLib also offers GObject \
integration, providing the ability to serialize and deserialize GObject \
instances to and from JSON data types."
-HOMEPAGE = "http://live.gnome.org/JsonGlib"
+HOMEPAGE = "https://wiki.gnome.org/Projects/JsonGlib"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/json-glib/issues"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
@@ -11,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.32.3.bb b/meta/recipes-gnome/libdazzle/libdazzle_3.32.3.bb
deleted file mode 100644
index e1a1183007..0000000000
--- a/meta/recipes-gnome/libdazzle/libdazzle_3.32.3.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "The libdazzle library is a companion library to GObject and Gtk+."
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase upstream-version-is-even vala distro_features_check gobject-introspection
-
-DEPENDS = "glib-2.0-native glib-2.0 gtk+3"
-
-SRC_URI[archive.md5sum] = "b6da085649dcda2795e6980a84667950"
-SRC_URI[archive.sha256sum] = "6c8d9b1514b5f6422107596f4145b89b8f2a99abef6383e086dfcd28c28667e8"
-
-GIR_MESON_OPTION = 'with_introspection'
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta/recipes-gnome/libdazzle/libdazzle_3.36.0.bb b/meta/recipes-gnome/libdazzle/libdazzle_3.36.0.bb
new file mode 100644
index 0000000000..25ccee2e29
--- /dev/null
+++ b/meta/recipes-gnome/libdazzle/libdazzle_3.36.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "The libdazzle library is a companion library to GObject and Gtk+."
+DESCRIPTION = "A wide range of components from utilities for GIO, widgets for \
+GTK+, an animation framework, state machines, paneling and high-performance \
+counters are included."
+LICENSE = "GPLv3+"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/libdazzle"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/libdazzle/issues"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
+
+GNOMEBASEBUILDCLASS = "meson"
+inherit gnomebase upstream-version-is-even vala features_check gobject-introspection
+
+DEPENDS = "glib-2.0-native glib-2.0 gtk+3"
+
+SRC_URI[archive.md5sum] = "154be45a6aac020e7d59f477bd7cafcf"
+SRC_URI[archive.sha256sum] = "82b31bbf550fc62970c78bf7f9d55e5fae5b8ea13b24fe2d13c8c6039409d958"
+
+GIR_MESON_OPTION = 'with_introspection'
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta/recipes-gnome/libgudev/libgudev_233.bb b/meta/recipes-gnome/libgudev/libgudev_233.bb
index a9f6bdd65b..8bc379ff62 100644
--- a/meta/recipes-gnome/libgudev/libgudev_233.bb
+++ b/meta/recipes-gnome/libgudev/libgudev_233.bb
@@ -1,5 +1,10 @@
SUMMARY = "GObject wrapper for libudev"
+DESCRIPTION = "This library makes it much simpler to use libudev from programs \
+already using GObject. It also makes it possible to easily use libudev from \
+other programming languages, such as Javascript, because of GObject \
+introspection support."
HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/libgudev/issues"
SRC_URI[archive.sha256sum] = "587c4970eb23f4e2deee2cb1fb7838c94a78c578f41ce12cac0a3f4a80dabb03"
SRC_URI[archive.md5sum] = "d59a317a40aaa02a2226056c0bb4d3e1"
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 1c9084d919..29a28272e1 100644
--- a/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb
+++ b/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
@@ -1,17 +1,24 @@
SUMMARY = "Library for sending desktop notifications to a notification daemon"
-HOMEPAGE = "http://www.gnome.org"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/libnotify"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/libnotify/issues"
SECTION = "libs"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
DEPENDS = "dbus gtk+3 glib-2.0"
-inherit gnomebase gtk-doc distro_features_check gobject-introspection
+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/0001-Remove-non-reproducible-SRCDIR.patch b/meta/recipes-gnome/librsvg/librsvg/0001-Remove-non-reproducible-SRCDIR.patch
new file mode 100644
index 0000000000..75fc7f9d0b
--- /dev/null
+++ b/meta/recipes-gnome/librsvg/librsvg/0001-Remove-non-reproducible-SRCDIR.patch
@@ -0,0 +1,30 @@
+From bea5156cd7e7122715b26c769c35928141a1da2c Mon Sep 17 00:00:00 2001
+From: Joshua Watt <JPEWhacker@gmail.com>
+Date: Mon, 18 Nov 2019 14:46:34 -0600
+Subject: [PATCH] Remove non-reproducible SRCDIR
+
+Removes SRCDIR as the prefix for finding the test font. This wouldn't
+work anyway, since that path is not present on the target.
+
+This patch is specific to OE, since it appears that this entire method
+of testing was removed when upstream was re-written in rust
+
+Upstream-Status: Inappropriate [OE-specific, no longer present upstream]
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ rsvg-cairo-draw.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rsvg-cairo-draw.c b/rsvg-cairo-draw.c
+index caa9104..cfb7ed2 100644
+--- a/rsvg-cairo-draw.c
++++ b/rsvg-cairo-draw.c
+@@ -398,7 +398,7 @@ set_font_options_for_testing (PangoContext *context)
+ static void
+ create_font_config_for_testing (RsvgCairoRender *render)
+ {
+- const char *font_path = SRCDIR "/tests/resources/LiberationSans-Regular.ttf";
++ const char *font_path = "/tests/resources/LiberationSans-Regular.ttf";
+
+ if (render->font_config_for_testing != NULL)
+ return;
diff --git a/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb b/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
index 6a798e6a91..acdbc1f1b3 100644
--- a/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb
+++ b/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
@@ -1,6 +1,10 @@
SUMMARY = "Library for rendering SVG files"
-HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
+DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \
+associated with the GNOME Project. It renders SVG files to Cairo surfaces. \
+Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \
+the screen or to generate output for printing."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues"
RECIPE_NO_UPDATE_REASON = "Versions from 2.41.0 requires Rust compiler to build it"
@@ -10,16 +14,16 @@ 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
SRC_URI += "file://gtk-option.patch \
file://0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.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.19.0.bb b/meta/recipes-gnome/libsecret/libsecret_0.19.0.bb
deleted file mode 100644
index 7da8e90084..0000000000
--- a/meta/recipes-gnome/libsecret/libsecret_0.19.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
-
-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[archive.md5sum] = "483d293e73e7257c6d9fc18579b0e1ea"
-SRC_URI[archive.sha256sum] = "8049b09a4e737911aa647e50aee3d06b5db7aa902608ca43a0dd10d83e1d67f9"
-
-# 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-gnome/libsecret/libsecret_0.20.3.bb b/meta/recipes-gnome/libsecret/libsecret_0.20.3.bb
new file mode 100644
index 0000000000..533015a1e4
--- /dev/null
+++ b/meta/recipes-gnome/libsecret/libsecret_0.20.3.bb
@@ -0,0 +1,28 @@
+SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets"
+DESCRIPTION = "A GObject-based library for accessing the Secret Service API of \
+the freedesktop.org project, a cross-desktop effort to access passwords, \
+tokens and other types of secrets. libsecret provides a convenient wrapper \
+for these methods so consumers do not have to call the low-level DBus methods."
+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"
+
+SRC_URI += "file://0001-meson-add-option-introspection.patch"
+
+SRC_URI[archive.md5sum] = "47c3fdfeb111a87b509ad271e4a6f496"
+SRC_URI[archive.sha256sum] = "4fcb3c56f8ac4ab9c75b66901fb0104ec7f22aa9a012315a14c0d6dffa5290e4"
+
+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"
diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/meta/recipes-graphics/cairo/cairo_1.16.0.bb
index f32e9ba1bc..68f993d7ca 100644
--- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ b/meta/recipes-graphics/cairo/cairo_1.16.0.bb
@@ -10,12 +10,12 @@ HOMEPAGE = "http://cairographics.org"
BUGTRACKER = "http://bugs.freedesktop.org"
SECTION = "libs"
-LICENSE = "MPL-1.1 & LGPLv2.1 & GPLv3+"
-LICENSE_${PN} = "MPL-1.1 & LGPLv2.1"
-LICENSE_${PN}-dev = "MPL-1.1 & LGPLv2.1"
-LICENSE_${PN}-doc = "MPL-1.1 & LGPLv2.1"
-LICENSE_${PN}-gobject = "MPL-1.1 & LGPLv2.1"
-LICENSE_${PN}-script-interpreter = "MPL-1.1 & LGPLv2.1"
+LICENSE = "(MPL-1.1 | LGPLv2.1) & GPLv3+"
+LICENSE_${PN} = "MPL-1.1 | LGPLv2.1"
+LICENSE_${PN}-dev = "MPL-1.1 | LGPLv2.1"
+LICENSE_${PN}-doc = "MPL-1.1 | LGPLv2.1"
+LICENSE_${PN}-gobject = "MPL-1.1 | LGPLv2.1"
+LICENSE_${PN}-script-interpreter = "MPL-1.1 | LGPLv2.1"
LICENSE_${PN}-perf-utils = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77"
@@ -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 \
@@ -40,7 +40,10 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
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)}"
+ ${@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"
@@ -49,6 +52,7 @@ PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind"
PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl"
PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2"
PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
+PACKAGECONFIG[trace] = "--enable-trace,--disable-trace"
EXTRA_OECONF += " \
${@bb.utils.contains('TARGET_FPU', 'soft', '--disable-some-floating-point', '', d)} \
@@ -66,6 +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*
+ [ ! -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 6dbbf4d803..80472178be 100644
--- a/meta/recipes-graphics/clutter/clutter-1.0.inc
+++ b/meta/recipes-graphics/clutter/clutter-1.0.inc
@@ -1,14 +1,17 @@
SUMMARY = "Graphics library for creating hardware-accelerated user interfaces"
+DESCRIPTION = "Clutter is an Open GL based interactive canvas library, \
+designed for creating fast, mainly 2D single window applications such as media \
+box UIs, presentations, kiosk style applications and so on."
HOMEPAGE = "http://www.clutter-project.org/"
LICENSE = "LGPLv2.1+"
-inherit clutter ptest-gnome distro_features_check upstream-version-is-even gobject-introspection
+inherit clutter ptest-gnome features_check upstream-version-is-even gobject-introspection
# depends on cogl-1.0 which needs opengl
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"
@@ -21,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}"
@@ -34,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/clutter/clutter-gst-3.0.inc b/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
index 4c877982b7..fc3eade886 100644
--- a/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
+++ b/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
@@ -2,7 +2,7 @@ SUMMARY = "GStreamer integration library for Clutter"
HOMEPAGE = "http://www.clutter-project.org/"
LICENSE = "LGPLv2+"
-inherit clutter distro_features_check upstream-version-is-even gobject-introspection
+inherit clutter features_check upstream-version-is-even gobject-introspection
# depends on clutter-1.0 which depends on cogl-1.0
REQUIRED_DISTRO_FEATURES ?= "opengl"
diff --git a/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc b/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
index 11826a6f0c..7bf2278555 100644
--- a/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
+++ b/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.clutter-project.org/"
LICENSE = "LGPLv2+"
CLUTTERBASEBUILDCLASS = "meson"
-inherit clutter distro_features_check upstream-version-is-even gobject-introspection gtk-doc
+inherit clutter features_check upstream-version-is-even gobject-introspection gtk-doc
# depends on clutter-1.0 which depends on cogl-1.0
REQUIRED_DISTRO_FEATURES ?= "opengl"
diff --git a/meta/recipes-graphics/cogl/cogl-1.0.inc b/meta/recipes-graphics/cogl/cogl-1.0.inc
index 4436163168..d581ad1c04 100644
--- a/meta/recipes-graphics/cogl/cogl-1.0.inc
+++ b/meta/recipes-graphics/cogl/cogl-1.0.inc
@@ -1,8 +1,12 @@
SUMMARY = "Modern 3D graphics API with associated utility APIs"
-HOMEPAGE = "http://wiki.clutter-project.org/wiki/Cogl"
+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 = "https://gitlab.gnome.org/GNOME/cogl"
LICENSE = "MIT"
-inherit clutter distro_features_check upstream-version-is-even gobject-introspection
+inherit clutter features_check upstream-version-is-even gobject-introspection
# cogl-1.0 needs opengl to build
REQUIRED_DISTRO_FEATURES ?= "opengl"
@@ -17,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.99.bb b/meta/recipes-graphics/drm/libdrm_2.4.102.bb
index fa3eb08f40..ad512d14a9 100644
--- a/meta/recipes-graphics/drm/libdrm_2.4.99.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] = "72539626815b35159a63d45bc4c14ee6"
-SRC_URI[sha256sum] = "4dbf539c7ed25dbb2055090b77ab87508fc46be39a9379d15fed4b5517e1da5e"
+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 18e6909aa7..8948444e08 100644
--- a/meta/recipes-graphics/glew/glew_2.1.0.bb
+++ b/meta/recipes-graphics/glew/glew_2.2.0.bb
@@ -6,24 +6,23 @@ 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+[\.\-_]*)+)/"
-inherit lib_package pkgconfig distro_features_check
+inherit lib_package pkgconfig features_check
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.1.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.1.bb
deleted file mode 100644
index 99cd4cd708..0000000000
--- a/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.1.bb
+++ /dev/null
@@ -1,40 +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] = "89b758a2eb14d56a94406cf914b62388"
-SRC_URI[sha256sum] = "c651fb3faaa338aeb280726837c2384064cdc17ef40539228d88a1260960844f"
-
-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"
-
-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 \
-"
-
-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 e36655ffc5..fa7e9ef421 100644
--- a/meta/recipes-graphics/images/core-image-weston.bb
+++ b/meta/recipes-graphics/images/core-image-weston.bb
@@ -4,9 +4,11 @@ IMAGE_FEATURES += "splash package-management ssh-server-dropbear hwcodecs"
LICENSE = "MIT"
-inherit core-image distro_features_check
+inherit core-image features_check
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/images/core-image-x11.bb b/meta/recipes-graphics/images/core-image-x11.bb
index cd5374949d..52407759f9 100644
--- a/meta/recipes-graphics/images/core-image-x11.bb
+++ b/meta/recipes-graphics/images/core-image-x11.bb
@@ -4,7 +4,7 @@ IMAGE_FEATURES += "splash package-management x11-base"
LICENSE = "MIT"
-inherit core-image distro_features_check
+inherit core-image features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb b/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb
index 1cf854de62..9729fb5dd5 100644
--- a/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.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] = "bd07fddf26f9def7bab02739eb655116"
-SRC_URI[sha256sum] = "4246de500544d4ee408ee57048aa4aadc6f165fc17f141da87669f20ed3241b7"
+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"
@@ -29,6 +29,8 @@ RCONFLICTS_${PN} += "jpeg"
inherit cmake pkgconfig
+export NASMENV = "--debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
+
# Add nasm-native dependency consistently for all build arches is hard
EXTRA_OECMAKE_append_class-native = " -DWITH_SIMD=False"
EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_SIMD=False"
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 2b6837fef6..c72fbc61a9 100644
--- a/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -6,14 +6,13 @@ DEPENDS = "virtual/libgles2 virtual/egl libdrm"
LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
-SRCREV = "f632b23a528ed6b4e1fddd774db005c30ab65568"
-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"
-inherit meson pkgconfig distro_features_check
+inherit meson pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch b/meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch
new file mode 100644
index 0000000000..7262945181
--- /dev/null
+++ b/meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch
@@ -0,0 +1,26 @@
+From 6f15cc28d17cfdd86f5974f06ad97b8afedd5627 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 25 Oct 2019 11:09:34 +0000
+Subject: [PATCH] dispatch_common.h: define also EGL_NO_X11
+
+MESA_EGL_NO_X11_HEADERS was renamed to EGL_NO_X11 in:
+https://github.com/mesa3d/mesa/commit/6202a13b71e18dc31ba7e2f4ea915b67eacc1ddb
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Pending
+---
+ src/dispatch_common.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/dispatch_common.h b/src/dispatch_common.h
+index dcb3a35..c206253 100644
+--- a/src/dispatch_common.h
++++ b/src/dispatch_common.h
+@@ -52,6 +52,7 @@
+ * should do the same
+ */
+ # define MESA_EGL_NO_X11_HEADERS 1
++# define EGL_NO_X11 1
+ # endif
+ #include "epoxy/egl.h"
+ #endif
diff --git a/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb b/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
index 825453ab28..6646ef79fe 100644
--- a/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb
+++ b/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
@@ -1,4 +1,8 @@
SUMMARY = "OpenGL function pointer management library"
+DESCRIPTION = "It hides the complexity of dlopen(), dlsym(), \
+glXGetProcAddress(), eglGetProcAddress(), etc. from the app developer, with \
+very little knowledge needed on their part. They get to read GL specs and \
+write code using undecorated function names like glCompileShader()."
HOMEPAGE = "https://github.com/anholt/libepoxy/"
SECTION = "libs"
@@ -6,16 +10,15 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=58ef4c80d401e07bd9ee8b6b58cf464b"
SRC_URI = "https://github.com/anholt/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+ file://0001-dispatch_common.h-define-also-EGL_NO_X11.patch \
"
-SRC_URI[md5sum] = "e2845de8d2782b2d31c01ae8d7cd4cbb"
-SRC_URI[sha256sum] = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d"
+SRC_URI[md5sum] = "00f47ad447321f9dc59f85bc1c9d0467"
+SRC_URI[sha256sum] = "0bd2cc681dfeffdef739cb29913f8c3caa47a88a451fd2bc6e606c02997289d2"
UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases"
-inherit meson pkgconfig distro_features_check
+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"
@@ -28,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/libfakekey/libfakekey_git.bb b/meta/recipes-graphics/libfakekey/libfakekey_git.bb
index 4b803dbae5..ab6f5ac9ed 100644
--- a/meta/recipes-graphics/libfakekey/libfakekey_git.bb
+++ b/meta/recipes-graphics/libfakekey/libfakekey_git.bb
@@ -17,7 +17,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN}"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig gettext distro_features_check
+inherit autotools pkgconfig gettext features_check
# The libxtst requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb b/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
index ce45e48147..1a31677978 100644
--- a/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
+++ b/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
@@ -1,4 +1,8 @@
SUMMARY = "Matchbox window manager core library"
+DESCRIPTION = "Matchbox is an Open Source base environment for the X Window \
+System running on non-desktop embedded platforms such as handhelds, set-top \
+boxes, kiosks and anything else for which screen space, input mechanisms or \
+system resources are limited."
SECTION = "x11/libs"
HOMEPAGE = "http://matchbox-project.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.com/"
@@ -17,7 +21,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN}"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
index 3a0654b866..83dce86801 100644
--- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb
+++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
@@ -8,7 +8,11 @@ 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"
@@ -18,8 +22,8 @@ SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
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
@@ -34,20 +38,23 @@ EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \
--enable-sdl-dlopen \
--disable-rpath \
--disable-sndio \
+ --disable-fcitx --disable-ibus \
"
# opengl packageconfig factored out to make it easy for distros
# 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/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch b/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch
deleted file mode 100644
index 01fb71913b..0000000000
--- a/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8fc14e4bc81885b80c3072e549c2e6f59533d7ef Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Fri, 8 Feb 2019 11:45:55 +0800
-Subject: [PATCH] Build sfcsample only when X11 backend is enabled
-
-See: https://github.com/intel/libva-utils/pull/149, and
-https://github.com/intel/libva-utils/issues/150
-
-Upstream-Status: Submitted
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index d28175a..e294e25 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -24,10 +24,11 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
-
- AUTOMAKE_OPTIONS = foreign
-
--SUBDIRS = common decode encode vainfo videoprocess vendor/intel vendor/intel/sfcsample
-+SUBDIRS = common decode encode vainfo videoprocess vendor/intel
-
- if USE_X11
- SUBDIRS += putsurface
-+SUBDIRS += vendor/intel/sfcsample
- else
- if USE_WAYLAND
- SUBDIRS += putsurface
---
-2.17.1
-
diff --git a/meta/recipes-graphics/libva/libva-utils_2.5.0.bb b/meta/recipes-graphics/libva/libva-utils_2.8.0.bb
index fc013d75c3..78e3805339 100644
--- a/meta/recipes-graphics/libva/libva-utils_2.5.0.bb
+++ b/meta/recipes-graphics/libva/libva-utils_2.8.0.bb
@@ -14,22 +14,19 @@ SECTION = "x11"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
-SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2 \
- file://0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch \
- "
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.8-branch"
+SRCREV = "af101a46d24c3f71a12b9f1ddb0c63626b19b3d8"
+S = "${WORKDIR}/git"
-SRC_URI[md5sum] = "c1fada26c286654859eff33b2562cb79"
-SRC_URI[sha256sum] = "9238c9d5110d60f935683390b8383fdac3507346384cd5f117a23c6db1d72a17"
-
-UPSTREAM_CHECK_URI = "https://github.com/intel/libva-utils/releases"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
DEPENDS = "libva"
-inherit autotools pkgconfig distro_features_check
+inherit meson pkgconfig features_check
# depends on libva which requires opengl
REQUIRED_DISTRO_FEATURES = "opengl"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland"
+PACKAGECONFIG[x11] = "-Dx11=true, -Dx11=false,virtual/libx11 libxext libxfixes"
+PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false,wayland-native wayland"
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.5.0.bb b/meta/recipes-graphics/libva/libva_2.5.0.bb
deleted file mode 100644
index e75648b2be..0000000000
--- a/meta/recipes-graphics/libva/libva_2.5.0.bb
+++ /dev/null
@@ -1,46 +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] = "3688212fb7a87947070f3729e91ff7cf"
-SRC_URI[sha256sum] = "3aa89cd369a506ac4dbe5de7c0ef5da4f3d220bf986403f02fa1f6f702af6878"
-
-UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases"
-
-DEPENDS = "libdrm virtual/mesa"
-
-inherit autotools pkgconfig distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-EXTRA_OECONF = "ac_cv_prog_WAYLAND_SCANNER=wayland-scanner"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,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-session/matchbox-session_0.1.bb b/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
index cbaf054365..57a3024ea9 100644
--- a/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
+++ b/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
@@ -1,4 +1,5 @@
SUMMARY = "Custom Matchbox session files"
+DESCRIPTION = "Very simple session manager for matchbox tools"
HOMEPAGE = "http://www.matchbox-project.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
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 815a75f36d..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,11 +13,12 @@ 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"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
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 ddbbd94066..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"
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/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch b/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
new file mode 100644
index 0000000000..15485feb71
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
@@ -0,0 +1,27 @@
+From bb2f0bea553d51d659a9bc46f7ae186885405151 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Jan 2020 15:23:47 -0800
+Subject: [PATCH] meson misdetects 64bit atomics on mips/clang
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/util/u_atomic.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/util/u_atomic.c b/src/util/u_atomic.c
+index e4bffa8..58e1ddd 100644
+--- a/src/util/u_atomic.c
++++ b/src/util/u_atomic.c
+@@ -21,7 +21,7 @@
+ * IN THE SOFTWARE.
+ */
+
+-#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
++#if !defined(__clang__) && defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
+
+ #include <stdint.h>
+ #include <pthread.h>
+--
+2.24.1
+
diff --git a/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
index 9fba5da4b2..085254323c 100644
--- a/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
+++ b/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
@@ -1,8 +1,7 @@
-From ea966884e39aae9571c038fab55f3c1663d17850 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Wed, 12 Jun 2019 13:40:20 -0300
+From 0d9ed002eff176b902da266d89829a9b0cb10946 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair@alistair23.me>
+Date: Thu, 14 Nov 2019 13:04:49 -0800
Subject: [PATCH] meson.build: check for all linux host_os combinations
-Organization: O.S. Systems Software LTDA.
Make sure that we are also looking for our host_os combinations like
linux-musl etc. when assuming support for DRM/KMS.
@@ -14,29 +13,31 @@ Upstream-Status: Pending
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+Signed-off-by: Alistair Francis <alistair@alistair23.me>
+
---
meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
-index 567a81afd6f..b33b430aed4 100644
+index 898d025..09e3759 100644
--- a/meson.build
+++ b/meson.build
-@@ -107,7 +107,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
+@@ -124,7 +124,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
# Only build shared_glapi if at least one OpenGL API is enabled
- with_shared_glapi = get_option('shared-glapi') and with_any_opengl
+ with_shared_glapi = with_shared_glapi and with_any_opengl
--system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux'].contains(host_machine.system())
+-system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos'].contains(host_machine.system())
+system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly'].contains(host_machine.system()) or host_machine.system().startswith('linux')
dri_drivers = get_option('dri-drivers')
if dri_drivers.contains('auto')
-@@ -845,7 +845,7 @@ if cc.compiles('int foo(void) __attribute__((__noreturn__));',
+@@ -884,7 +884,7 @@ if cc.compiles('__uint128_t foo(void) { return 0; }',
endif
# TODO: this is very incomplete
--if ['linux', 'cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system())
+-if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd'].contains(host_machine.system())
+if ['cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system()) or host_machine.system().startswith('linux')
pre_args += '-D_GNU_SOURCE'
- endif
-
+ elif host_machine.system() == 'sunos'
+ pre_args += '-D__EXTENSIONS__'
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
new file mode 100644
index 0000000000..ee171ad1c8
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
@@ -0,0 +1,46 @@
+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
+
+USE_ELF_TLS has replaced GLX_USE_TLS so this patch is the original "make
+TLS GLX optional again" patch updated to the latest mesa.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Alistair Francis <alistair@alistair23.me>
+
+---
+ meson.build | 2 +-
+ meson_options.txt | 6 ++++++
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index c51dde9..c16f78f 100644
+--- a/meson.build
++++ b/meson.build
+@@ -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 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 ab43150..d7b1555 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -355,6 +355,12 @@ option(
+ value : true,
+ description : 'Enable direct rendering in GLX and EGL for DRI',
+ )
++option(
++ 'elf-tls',
++ type : 'boolean',
++ value : true,
++ description : 'Enable TLS support in ELF',
++)
+ option(
+ 'prefer-iris',
+ type : 'boolean',
diff --git a/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch b/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch
deleted file mode 100644
index 641bacf1d9..0000000000
--- a/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-GLX-optional-again.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From cee8e48c5344124e5d84307cb0c48ee0c9b3e684 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Wed, 12 Jun 2019 14:15:57 -0300
-Subject: [PATCH] meson.build: make TLS GLX optional again
-Organization: O.S. Systems Software LTDA.
-
-This was optional with autotools, and needs to be disabled
-when using musl C library, for instance.
-
-Upstream-Status: Pending
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- meson.build | 4 +++-
- meson_options.txt | 7 +++++++
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index b33b430aed4..0e50bb26c0a 100644
---- a/meson.build
-+++ b/meson.build
-@@ -369,7 +369,9 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
- endif
- endif
-
--pre_args += '-DGLX_USE_TLS'
-+if get_option('glx-tls')
-+ pre_args += '-DGLX_USE_TLS'
-+endif
- if with_glx != 'disabled'
- if not (with_platform_x11 and with_any_opengl)
- error('Cannot build GLX support without X11 platform support and at least one OpenGL API')
-diff --git a/meson_options.txt b/meson_options.txt
-index 1f72faabee8..fcd49efea27 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -339,6 +339,13 @@ option(
- value : true,
- description : 'Enable direct rendering in GLX and EGL for DRI',
- )
-+option(
-+ 'glx-tls',
-+ type : 'boolean',
-+ value : true,
-+ description : 'Enable TLS support in GLX',
-+)
-+
- option(
- 'I-love-half-baked-turnips',
- type : 'boolean',
diff --git a/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch b/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
index 3458c19199..a0536c87ac 100644
--- a/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
+++ b/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
@@ -1,37 +1,37 @@
-From f1482e88c2295b9c7288f5b273335a8e18039de8 Mon Sep 17 00:00:00 2001
+From 7eaa21a79ce6d6e92f6bf98c28b68e3fcb4d7874 Mon Sep 17 00:00:00 2001
From: Fabio Berton <fabio.berton@ossystems.com.br>
Date: Wed, 12 Jun 2019 14:18:31 -0300
Subject: [PATCH] Allow enable DRI without DRI drivers
-Organization: O.S. Systems Software LTDA.
Upstream-Status: Pending
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+
---
meson.build | 2 +-
meson_options.txt | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 0e50bb26c0a..de065c290d6 100644
+index a954118..62864c6 100644
--- a/meson.build
+++ b/meson.build
-@@ -137,7 +137,7 @@ with_dri_r200 = dri_drivers.contains('r200')
+@@ -154,7 +154,7 @@ with_dri_r200 = dri_drivers.contains('r200')
with_dri_nouveau = dri_drivers.contains('nouveau')
with_dri_swrast = dri_drivers.contains('swrast')
-with_dri = dri_drivers.length() != 0 and dri_drivers != ['']
-+with_dri = get_option('dri') or (_drivers.length() != 0 and _drivers != [''])
++with_dri = get_option('dri') or (dri_drivers.length() != 0 and dri_drivers != [''])
gallium_drivers = get_option('gallium-drivers')
if gallium_drivers.contains('auto')
diff --git a/meson_options.txt b/meson_options.txt
-index fcd49efea27..0529200b3bb 100644
+index 637ff14..700c34c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -34,6 +34,12 @@ option(
+@@ -35,6 +35,12 @@ option(
choices : ['auto', 'true', 'false'],
description : 'enable support for dri3'
)
diff --git a/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch b/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
new file mode 100644
index 0000000000..8d614e571a
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
@@ -0,0 +1,147 @@
+From 41cd8836d785c79381764e7de59319f87959a5cf Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair@alistair23.me>
+Date: Thu, 14 Nov 2019 09:06:02 -0800
+Subject: [PATCH] Revert "mesa: Enable asm unconditionally, now that
+ gen_matypes is gone."
+
+This reverts commit 20294dceebc23236e33b22578245f7e6f41b6997.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Alistair Francis <alistair@alistair23.me>
+
+---
+ meson.build | 94 ++++++++++++++++++++++++++++++-----------------
+ meson_options.txt | 6 +++
+ 2 files changed, 67 insertions(+), 33 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 62864c6..b53be8d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -49,6 +49,7 @@ with_vulkan_icd_dir = get_option('vulkan-icd-dir')
+ with_tests = get_option('build-tests')
+ with_valgrind = get_option('valgrind')
+ with_libunwind = get_option('libunwind')
++with_asm = get_option('asm')
+ with_glx_read_only_text = get_option('glx-read-only-text')
+ with_glx_direct = get_option('glx-direct')
+ with_osmesa = get_option('osmesa')
+@@ -1093,41 +1094,68 @@ dep_ws2_32 = cc.find_library('ws2_32', required : with_platform_windows)
+
+ # TODO: shared/static? Is this even worth doing?
+
++# When cross compiling we generally need to turn off the use of assembly,
++# because mesa's assembly relies on building an executable for the host system,
++# and running it to get information about struct sizes. There is at least one
++# case of cross compiling where we can use asm, and that's x86_64 -> x86 when
++# host OS == build OS, since in that case the build machine can run the host's
++# binaries.
++if with_asm and meson.is_cross_build()
++ if build_machine.system() != host_machine.system()
++ # TODO: It may be possible to do this with an exe_wrapper (like wine).
++ message('Cross compiling from one OS to another, disabling assembly.')
++ with_asm = false
++ elif not (build_machine.cpu_family().startswith('x86') and host_machine.cpu_family() == 'x86')
++ # FIXME: Gentoo always sets -m32 for x86_64 -> x86 builds, resulting in an
++ # x86 -> x86 cross compile. We use startswith rather than == to handle this
++ # case.
++ # TODO: There may be other cases where the 64 bit version of the
++ # architecture can run 32 bit binaries (aarch64 and armv7 for example)
++ message('''
++ Cross compiling to different architectures, and the host cannot run
++ the build machine's binaries. Disabling assembly.
++ ''')
++ with_asm = false
++ endif
++endif
++
+ with_asm_arch = ''
+-if host_machine.cpu_family() == 'x86'
+- if system_has_kms_drm or host_machine.system() == 'gnu'
+- with_asm_arch = 'x86'
+- pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
+- '-DUSE_SSE_ASM']
+-
+- if with_glx_read_only_text
+- pre_args += ['-DGLX_X86_READONLY_TEXT']
++if with_asm
++ if host_machine.cpu_family() == 'x86'
++ if system_has_kms_drm or host_machine.system() == 'gnu'
++ with_asm_arch = 'x86'
++ pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
++ '-DUSE_SSE_ASM']
++
++ if with_glx_read_only_text
++ pre_args += ['-DGLX_X86_READONLY_TEXT']
++ endif
++ endif
++ elif host_machine.cpu_family() == 'x86_64'
++ if system_has_kms_drm
++ with_asm_arch = 'x86_64'
++ pre_args += ['-DUSE_X86_64_ASM']
++ endif
++ elif host_machine.cpu_family() == 'arm'
++ if system_has_kms_drm
++ with_asm_arch = 'arm'
++ pre_args += ['-DUSE_ARM_ASM']
++ endif
++ elif host_machine.cpu_family() == 'aarch64'
++ if system_has_kms_drm
++ with_asm_arch = 'aarch64'
++ pre_args += ['-DUSE_AARCH64_ASM']
++ endif
++ elif host_machine.cpu_family() == 'sparc64'
++ if system_has_kms_drm
++ with_asm_arch = 'sparc'
++ pre_args += ['-DUSE_SPARC_ASM']
++ endif
++ elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
++ if system_has_kms_drm
++ with_asm_arch = 'ppc64le'
++ pre_args += ['-DUSE_PPC64LE_ASM']
+ endif
+- endif
+-elif host_machine.cpu_family() == 'x86_64'
+- if system_has_kms_drm
+- with_asm_arch = 'x86_64'
+- pre_args += ['-DUSE_X86_64_ASM']
+- endif
+-elif host_machine.cpu_family() == 'arm'
+- if system_has_kms_drm
+- with_asm_arch = 'arm'
+- pre_args += ['-DUSE_ARM_ASM']
+- endif
+-elif host_machine.cpu_family() == 'aarch64'
+- if system_has_kms_drm
+- with_asm_arch = 'aarch64'
+- pre_args += ['-DUSE_AARCH64_ASM']
+- endif
+-elif host_machine.cpu_family() == 'sparc64'
+- if system_has_kms_drm
+- with_asm_arch = 'sparc'
+- pre_args += ['-DUSE_SPARC_ASM']
+- endif
+-elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
+- if system_has_kms_drm
+- with_asm_arch = 'ppc64le'
+- pre_args += ['-DUSE_PPC64LE_ASM']
+ endif
+ endif
+
+diff --git a/meson_options.txt b/meson_options.txt
+index 700c34c..62e8472 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -241,6 +241,12 @@ option(
+ value : false,
+ description : 'Enable GLVND support.'
+ )
++option(
++ 'asm',
++ type : 'boolean',
++ value : true,
++ description : 'Build assembly code if possible'
++)
+ option(
+ 'glx-read-only-text',
+ 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
new file mode 100644
index 0000000000..dacb1ea1c8
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch
@@ -0,0 +1,51 @@
+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
+
+32bit architectures which have 64bit time_t does not fit the assumption
+of time_t being same as system long int
+
+Fixes
+error: format specifies type 'long' but the argument has type 'time_t' (aka 'long long') [-Werror,-Wformat]
+ time.tv_sec);
+ ^~~~~~~~~~~
+
+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 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)
+
+ struct timespec time;
+ clock_gettime(CLOCK_MONOTONIC, &time);
+- fprintf(stderr, " now: %ld\n",
+- (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 a786e8e..975d49e 100644
+--- a/src/gallium/drivers/vc4/vc4_bufmgr.c
++++ b/src/gallium/drivers/vc4/vc4_bufmgr.c
+@@ -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",
+- (long)time.tv_sec);
++ fprintf(stderr, " now: %jd\n",
++ (intmax_t)time.tv_sec);
+ }
+ }
+
diff --git a/meta/recipes-graphics/mesa/libglu_9.0.1.bb b/meta/recipes-graphics/mesa/libglu_9.0.1.bb
index 068fb19e26..703f131f79 100644
--- a/meta/recipes-graphics/mesa/libglu_9.0.1.bb
+++ b/meta/recipes-graphics/mesa/libglu_9.0.1.bb
@@ -21,7 +21,7 @@ S = "${WORKDIR}/glu-${PV}"
DEPENDS = "virtual/libgl"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# Requires libGL.so which is provided by mesa when x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11 opengl"
diff --git a/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb b/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
index 129a47df48..38bdbded29 100644
--- a/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
+++ b/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb
@@ -22,7 +22,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/demos/${BPN}-${PV}.tar.bz2 \
SRC_URI[md5sum] = "6b65a02622765522176d00f553086fa3"
SRC_URI[sha256sum] = "01e99c94a0184e63e796728af89bfac559795fb2a0d6f506fa900455ca5fff7d"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/egl, virtual/libgl ...
REQUIRED_DISTRO_FEATURES = "opengl x11"
diff --git a/meta/recipes-graphics/mesa/mesa-gl_19.1.6.bb b/meta/recipes-graphics/mesa/mesa-gl_19.1.6.bb
deleted file mode 100644
index d4b1c1c454..0000000000
--- a/meta/recipes-graphics/mesa/mesa-gl_19.1.6.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 9e5808ee27..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=725f991a1cc322aa7a0cd3a2016621c4"
+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 = " \
@@ -24,7 +46,7 @@ PROVIDES = " \
virtual/mesa \
"
-inherit meson pkgconfig python3native gettext distro_features_check
+inherit meson pkgconfig python3native gettext features_check
# Unset these to stop python trying to report the target Python setup
_PYTHON_SYSCONFIGDATA_NAME[unexport] = "1"
@@ -46,6 +68,19 @@ export WANT_LLVM_RELEASE = "${MESA_LLVM_RELEASE}"
MESA_LLVM_RELEASE ?= "${LLVMVERSION}"
+# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug'
+# by default the upstream mesa sources build a debug release
+# here we assume the user will want a release build by default
+MESA_BUILD_TYPE ?= "release"
+def check_buildtype(d):
+ _buildtype = d.getVar('MESA_BUILD_TYPE')
+ if _buildtype not in ['release', 'debug']:
+ bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype)
+ if _buildtype == 'debug':
+ return 'debugoptimized'
+ return 'plain'
+MESON_BUILDTYPE = "${@check_buildtype(d)}"
+
EXTRA_OEMESON = " \
-Dshared-glapi=true \
-Dgallium-opencl=disabled \
@@ -54,15 +89,15 @@ EXTRA_OEMESON = " \
"
PACKAGECONFIG_class-target ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland vulkan', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium virgl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \
- glx-tls \
+ elf-tls \
"
-PACKAGECONFIG_class-native ?= "gbm dri egl opengl glx-tls"
-PACKAGECONFIG_class-nativesdk ?= "gbm dri egl opengl glx-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 = "glx-tls"
+PACKAGECONFIG_remove_libc-musl = "elf-tls"
# "gbm" requires "dri", "opengl"
PACKAGECONFIG[gbm] = "-Dgbm=true,-Dgbm=false"
@@ -70,7 +105,7 @@ PACKAGECONFIG[gbm] = "-Dgbm=true,-Dgbm=false"
X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr"
# "x11" requires "opengl"
PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}"
-PACKAGECONFIG[glx-tls] = "-Dglx-tls=true, -Dglx-tls=false"
+PACKAGECONFIG[elf-tls] = "-Delf-tls=true, -Delf-tls=false"
PACKAGECONFIG[xvmc] = "-Dgallium-xvmc=true,-Dgallium-xvmc=false,libxvmc"
PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols"
@@ -87,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"
@@ -119,15 +155,19 @@ GALLIUMDRIVERS_LLVM33_ENABLED = "${@oe.utils.version_less_or_equal('MESA_LLVM_RE
GALLIUMDRIVERS_LLVM = "r300,svga,nouveau${@',${GALLIUMDRIVERS_LLVM33}' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}"
PACKAGECONFIG[r600] = ""
+PACKAGECONFIG[virgl] = ""
GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}"
GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}"
-GALLIUMDRIVERS_append = ",virgl"
+GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}"
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)}"
@@ -147,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 = ""
@@ -164,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 () {
@@ -193,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)
@@ -241,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.*"
@@ -250,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.1.6.bb b/meta/recipes-graphics/mesa/mesa_19.1.6.bb
deleted file mode 100644
index 19221e9e25..0000000000
--- a/meta/recipes-graphics/mesa/mesa_19.1.6.bb
+++ /dev/null
@@ -1,20 +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-GLX-optional-again.patch \
- file://0003-Allow-enable-DRI-without-DRI-drivers.patch \
- "
-
-SRC_URI[md5sum] = "7dbb40b8d10e89bee0a5bfc85350647b"
-SRC_URI[sha256sum] = "2a369b7b48545c6486e7e44913ad022daca097c8bd937bf30dcf3f17a94d3496"
-
-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/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if defined(MESA_EGL_NO_X11_HEADERS) || ${@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/mx/mx.inc b/meta/recipes-graphics/mx/mx.inc
index d304837484..714a06f0af 100644
--- a/meta/recipes-graphics/mx/mx.inc
+++ b/meta/recipes-graphics/mx/mx.inc
@@ -1,7 +1,7 @@
SUMMARY = "Clutter based UI widget library"
LICENSE = "LGPLv2.1"
-inherit clutter autotools distro_features_check gobject-introspection gtk-doc
+inherit clutter autotools features_check gobject-introspection gtk-doc
# depends on clutter-1.0 which depends on cogl-1.0
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
index 87c700e023..2e7b47dd40 100644
--- a/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
+++ b/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
@@ -6,7 +6,7 @@ SUMMARY = "Clutter package groups"
PR = "r6"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on clutter-*
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
index 7ea72d55a7..9ca2705a5f 100644
--- a/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
+++ b/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
@@ -2,7 +2,7 @@ SUMMARY = "Basic X11 session"
DESCRIPTION = "Packages required to set up a basic working X11 session"
PR = "r1"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on matchbox-wm
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
index 97dcac5f79..a0b944a678 100644
--- a/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
+++ b/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
@@ -7,7 +7,7 @@ PR = "r40"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on XSERVER
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
index 001db9e5e2..cddf1932f3 100644
--- a/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
+++ b/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
@@ -4,7 +4,7 @@
PR = "r40"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
PACKAGES = "${PN} ${PN}-utils"
diff --git a/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch b/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch
deleted file mode 100644
index 3f9ebff33e..0000000000
--- a/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 12beb39925b5a4574a7cfd86073b59bceb49f791 Mon Sep 17 00:00:00 2001
-From: Matthias Clasen <mclasen@redhat.com>
-Date: Wed, 4 Sep 2019 15:51:06 -0400
-Subject: [PATCH] Skip thai break tests without libthai
-
-If we don't have libthai, these tests fail.
-
-Closes: https://gitlab.gnome.org/GNOME/pango/issues/420
----
- tests/meson.build | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/tests/meson.build b/tests/meson.build
-index 4c22c12c..c617331f 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -89,9 +89,12 @@ test_breaks_data = [
- 'breaks/one',
- 'breaks/two',
- 'breaks/three',
-- 'breaks/four',
- ]
-
-+if thai_dep.found()
-+ test_breaks_data += [ 'breaks/four', ]
-+endif
-+
- test_items_data = [
- 'itemize/one',
- ]
---
-2.20.1
-
diff --git a/meta/recipes-graphics/pango/pango_1.44.6.bb b/meta/recipes-graphics/pango/pango_1.46.2.bb
index 8138ef72c1..c41d1e8a9b 100644
--- a/meta/recipes-graphics/pango/pango_1.44.6.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-Skip-thai-break-tests-without-libthai.patch"
-SRC_URI[archive.md5sum] = "db0a3243ba33e02aaa775412f8e5f412"
-SRC_URI[archive.sha256sum] = "3e1e41ba838737e200611ff001e3b304c2ca4cdbba63d200a20db0b0ddc0f86c"
+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"
@@ -32,6 +30,10 @@ PACKAGECONFIG[thai] = ",,libthai"
GTKDOC_MESON_OPTION = "gtk_doc"
GIR_MESON_OPTION = 'introspection'
+do_configure_prepend_toolchain-clang() {
+ sed -i -e "/Werror=implicit-fallthrough/d" ${S}/meson.build
+}
+
LEAD_SONAME = "libpango-1.0*"
FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}"
diff --git a/meta/recipes-graphics/piglit/piglit_git.bb b/meta/recipes-graphics/piglit/piglit_git.bb
index d489f82b14..d35117a4f9 100644
--- a/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/meta/recipes-graphics/piglit/piglit_git.bb
@@ -1,4 +1,6 @@
SUMMARY = "OpenGL driver testing framework"
+DESCRIPTION = "Piglit is an open-source test suite for OpenGL and OpenCL \
+implementations."
LICENSE = "MIT & LGPLv2+ & GPLv3 & GPLv2+ & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0"
@@ -8,7 +10,7 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \
"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "0d1a47a4c10d4dd7225bd6510f8191684b31235e"
+SRCREV = "2a6a8f954dcd3f748055f28e019d2eca64635332"
# (when PV goes above 1.0 remove the trailing r)
PV = "1.0+gitr${SRCPV}"
@@ -19,7 +21,7 @@ X11_RDEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa-demos', '', d)
DEPENDS = "libpng waffle libxkbcommon virtual/libgl python3-mako-native python3-numpy-native python3-six-native virtual/egl"
-inherit cmake pkgconfig python3native distro_features_check bash-completion
+inherit cmake pkgconfig python3native features_check bash-completion
# depends on virtual/libgl
REQUIRED_DISTRO_FEATURES += "opengl"
@@ -42,6 +44,7 @@ do_configure_prepend() {
fi
}
+# Forcibly strip because Piglit is *huge*
OECMAKE_TARGET_INSTALL = "install/strip"
RDEPENDS_${PN} = "waffle waffle-bin python3 python3-mako python3-json \
@@ -53,5 +56,9 @@ RDEPENDS_${PN} = "waffle waffle-bin python3 python3-mako python3-json \
INSANE_SKIP_${PN} += "dev-so already-stripped"
+# As nothing builds against Piglit we don't need to have anything in the
+# sysroot, especially when this is ~2GB of test suite
+SYSROOT_DIRS_remove = "${libdir}"
+
# Can't be built with ccache
CCACHE_DISABLE = "1"
diff --git a/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb b/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
index cdfe38a221..c3c237eee7 100644
--- a/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
+++ b/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
@@ -2,7 +2,7 @@ SUMMARY = "A clock combined with a game of pong"
LICENSE = "GPLv2+"
DEPENDS = "virtual/libx11 xdmcp xau"
-inherit distro_features_check pkgconfig
+inherit features_check pkgconfig
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
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 6c1b93cd0a..d10bddb529 100644
--- a/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
+++ b/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
@@ -17,12 +17,13 @@ SECTION = "libs"
DEPENDS = "virtual/libx11 libsm xcb-util"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
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/0001-meson.build-use-python3-directly-for-python.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch
new file mode 100644
index 0000000000..0fd1d511d6
--- /dev/null
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch
@@ -0,0 +1,27 @@
+From 63788c63ed39a3ce9994f4315d8997e1a9300d4d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 6 Jan 2020 12:44:42 +0100
+Subject: [PATCH] meson.build: use 'python3' directly for python
+
+This avoids a dependency on target python (due to meson probing
+its configuration).
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 682d7c8..19d2eae 100644
+--- a/meson.build
++++ b/meson.build
+@@ -60,7 +60,7 @@ foreach w : warnings
+ endif
+ endforeach
+
+-prog_python = import('python').find_installation('python3')
++prog_python = 'python3'
+
+ libdrm_dep = dependency('libdrm', version : '>=2.4.50')
+ thread_dep = dependency('threads')
diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb
deleted file mode 100644
index d2b11c103a..0000000000
--- a/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "VirGL virtual OpenGL renderer"
-HOMEPAGE = "https://virgil3d.github.io/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
-
-DEPENDS = "libdrm mesa libepoxy"
-SRCREV = "48cc96c9aebb9d0164830a157efc8916f08f00c0"
-SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
- file://0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig distro_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/virglrenderer/virglrenderer_0.8.2.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
new file mode 100644
index 0000000000..52821195d1
--- /dev/null
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
@@ -0,0 +1,24 @@
+SUMMARY = "VirGL virtual OpenGL renderer"
+DESCRIPTION = "Virgil is a research project to investigate the possibility of \
+creating a virtual 3D GPU for use inside qemu virtual machines, that allows \
+the guest operating system to use the capabilities of the host GPU to \
+accelerate 3D rendering."
+HOMEPAGE = "https://virgil3d.github.io/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
+
+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 \
+ file://0001-meson.build-use-python3-directly-for-python.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig features_check
+
+BBCLASSEXTEND = "native nativesdk"
+
+REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch b/meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch
new file mode 100644
index 0000000000..34c5bfa857
--- /dev/null
+++ b/meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch
@@ -0,0 +1,68 @@
+From 58f576d6f240b08957a402960cdf06c74201ac7b Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 12 Dec 2019 22:16:15 -0800
+Subject: [PATCH] Use ASSIMP_LIB_INSTALL_DIR to search library
+
+Use ASSIMP_LIB_INSTALL_DIR rather than hardcoded /lib to search library
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+---
+ assimpTargets-release.cmake.in | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/assimpTargets-release.cmake.in b/assimpTargets-release.cmake.in
+index f3db8f1..b8a066a 100644
+--- a/assimpTargets-release.cmake.in
++++ b/assimpTargets-release.cmake.in
+@@ -42,11 +42,11 @@ if(MSVC)
+ # Import target "assimp::assimp" for configuration "Release"
+ set_property(TARGET assimp::assimp APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(assimp::assimp PROPERTIES
+- IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/${importLibraryName}"
++ IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${importLibraryName}"
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/${sharedLibraryName}"
+ )
+ list(APPEND _IMPORT_CHECK_TARGETS assimp::assimp )
+- list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/lib/${importLibraryName}")
++ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${importLibraryName}")
+ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/bin/${sharedLibraryName}" )
+ else()
+ set(staticLibraryName "assimp${ASSIMP_LIBRARY_SUFFIX}@CMAKE_STATIC_LIBRARY_SUFFIX@")
+@@ -54,10 +54,10 @@ if(MSVC)
+ # Import target "assimp::assimp" for configuration "Release"
+ set_property(TARGET assimp::assimp APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(assimp::assimp PROPERTIES
+- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/${staticLibraryName}"
++ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${staticLibraryName}"
+ )
+ list(APPEND _IMPORT_CHECK_TARGETS assimp::assimp )
+- list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/lib/${staticLibraryName}")
++ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${staticLibraryName}")
+ endif()
+
+ else()
+@@ -70,17 +70,17 @@ else()
+ endif()
+ set_target_properties(assimp::assimp PROPERTIES
+ IMPORTED_SONAME_RELEASE "${sharedLibraryName}"
+- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/${sharedLibraryName}"
++ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${sharedLibraryName}"
+ )
+ list(APPEND _IMPORT_CHECK_TARGETS assimp::assimp )
+- list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/lib/${sharedLibraryName}" )
++ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${sharedLibraryName}" )
+ else()
+ set(staticLibraryName "libassimp${ASSIMP_LIBRARY_SUFFIX}@CMAKE_STATIC_LIBRARY_SUFFIX@")
+ set_target_properties(assimp::assimp PROPERTIES
+- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/${staticLibraryName}"
++ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${staticLibraryName}"
+ )
+ list(APPEND _IMPORT_CHECK_TARGETS assimp::assimp )
+- list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/lib/${staticLibraryName}" )
++ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${staticLibraryName}" )
+ endif()
+ endif()
+
diff --git a/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch b/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch
new file mode 100644
index 0000000000..87a1658710
--- /dev/null
+++ b/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch
@@ -0,0 +1,1664 @@
+From 7fc220b2350d78942fb3935cad0b1564418ebe8f Mon Sep 17 00:00:00 2001
+From: Kim Kulling <kim.kulling@googlemail.com>
+Date: Tue, 19 Nov 2019 20:30:40 +0100
+Subject: [PATCH] closes https://github.com/assimp/assimp/issues/2733: update
+ of zlip to fix gcc build for v9.2.0 32 bit
+
+Upstream-Status: Backport [https://github.com/assimp/assimp/commit/f78446b14aff46db2ef27d062a275b6a01fd68b1]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ contrib/zip/.gitignore | 2 +
+ contrib/zip/CMakeLists.txt | 83 +++++-
+ contrib/zip/README.md | 12 +-
+ contrib/zip/appveyor.yml | 2 +-
+ contrib/zip/src/miniz.h | 457 ++++++++++++++++++++++++++++----
+ contrib/zip/src/zip.c | 62 +++--
+ contrib/zip/src/zip.h | 457 ++++++++++++++++----------------
+ contrib/zip/test/CMakeLists.txt | 27 +-
+ contrib/zip/test/test.c | 38 ++-
+ contrib/zip/test/test_miniz.c | 25 +-
+ 10 files changed, 821 insertions(+), 344 deletions(-)
+
+diff --git a/contrib/zip/.gitignore b/contrib/zip/.gitignore
+index a7904a1e..49b2cb2f 100644
+--- a/contrib/zip/.gitignore
++++ b/contrib/zip/.gitignore
+@@ -1,6 +1,7 @@
+ /build/
+ /test/build/
+ /xcodeproj/
++.vscode/
+
+ # Object files
+ *.o
+@@ -54,3 +55,4 @@ zip.dir/
+ test/test.exe.vcxproj.filters
+ test/test.exe.vcxproj
+ test/test.exe.dir/
++
+diff --git a/contrib/zip/CMakeLists.txt b/contrib/zip/CMakeLists.txt
+index b46dbb1d..77916d2e 100644
+--- a/contrib/zip/CMakeLists.txt
++++ b/contrib/zip/CMakeLists.txt
+@@ -1,10 +1,14 @@
+-cmake_minimum_required(VERSION 2.8)
+-project(zip)
+-enable_language(C)
++cmake_minimum_required(VERSION 3.0)
++
++project(zip
++ LANGUAGES C
++ VERSION "0.1.15")
+ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
+
++option(CMAKE_DISABLE_TESTING "Disable test creation" OFF)
++
+ if (MSVC)
+- # Use secure functions by defaualt and suppress warnings about "deprecated" functions
++ # Use secure functions by default and suppress warnings about "deprecated" functions
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1")
+@@ -12,28 +16,80 @@ elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR
+ "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR
+ "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wextra -Werror -pedantic")
++ if(ENABLE_COVERAGE)
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
++ endif()
+ endif (MSVC)
+
+ # zip
+ set(SRC src/miniz.h src/zip.h src/zip.c)
+ add_library(${PROJECT_NAME} ${SRC})
+-target_include_directories(${PROJECT_NAME} INTERFACE src)
++target_include_directories(${PROJECT_NAME} PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
++ $<INSTALL_INTERFACE:include>
++)
+
+ # test
+ if (NOT CMAKE_DISABLE_TESTING)
+ enable_testing()
+ add_subdirectory(test)
+ find_package(Sanitizers)
+- add_sanitizers(${PROJECT_NAME} test.exe)
+- add_sanitizers(${PROJECT_NAME} test_miniz.exe)
++ add_sanitizers(${PROJECT_NAME} ${test_out} ${test_miniz_out})
+ endif()
+
++####
++# Installation (https://github.com/forexample/package-example) {
++
++set(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}")
++set(INCLUDE_INSTALL_DIR "include")
++
++set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
++
++# Configuration
++set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
++set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake")
++set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
++set(NAMESPACE "${PROJECT_NAME}::")
++
++# Include module with fuction 'write_basic_package_version_file'
++include(CMakePackageConfigHelpers)
++
++# Note: PROJECT_VERSION is used as a VERSION
++write_basic_package_version_file(
++ "${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion
++)
++
++# Use variables:
++# * TARGETS_EXPORT_NAME
++# * PROJECT_NAME
++configure_package_config_file(
++ "cmake/Config.cmake.in"
++ "${PROJECT_CONFIG}"
++ INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}"
++)
++
++install(
++ FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}"
++ DESTINATION "${CONFIG_INSTALL_DIR}"
++)
++
++install(
++ EXPORT "${TARGETS_EXPORT_NAME}"
++ NAMESPACE "${NAMESPACE}"
++ DESTINATION "${CONFIG_INSTALL_DIR}"
++)
++
++# }
++
+ install(TARGETS ${PROJECT_NAME}
++ EXPORT ${TARGETS_EXPORT_NAME}
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+- COMPONENT library)
+-install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION include)
++ INCLUDES DESTINATION ${INCLUDE_INSTALL_DIR}
++)
++install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION ${INCLUDE_INSTALL_DIR}/zip)
+
+ # uninstall target (https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake)
+ if(NOT TARGET uninstall)
+@@ -45,3 +101,12 @@ if(NOT TARGET uninstall)
+ add_custom_target(uninstall
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake)
+ endif()
++
++find_package(Doxygen)
++if(DOXYGEN_FOUND)
++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
++ add_custom_target(doc
++ ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ COMMENT "Generating API documentation with Doxygen" VERBATIM)
++endif()
+diff --git a/contrib/zip/README.md b/contrib/zip/README.md
+index d5fb8cd2..14eb9a34 100644
+--- a/contrib/zip/README.md
++++ b/contrib/zip/README.md
+@@ -71,7 +71,7 @@ int arg = 2;
+ zip_extract("foo.zip", "/tmp", on_extract_entry, &arg);
+ ```
+
+-* Extract a zip entry into memory.
++* Extract a zip entry into memory.
+ ```c
+ void *buf = NULL;
+ size_t bufsize;
+@@ -89,7 +89,7 @@ zip_close(zip);
+ free(buf);
+ ```
+
+-* Extract a zip entry into memory (no internal allocation).
++* Extract a zip entry into memory (no internal allocation).
+ ```c
+ unsigned char *buf;
+ size_t bufsize;
+@@ -110,7 +110,7 @@ zip_close(zip);
+ free(buf);
+ ```
+
+-* Extract a zip entry into memory using callback.
++* Extract a zip entry into memory using callback.
+ ```c
+ struct buffer_t {
+ char *data;
+@@ -144,7 +144,7 @@ free(buf.data);
+ ```
+
+
+-* Extract a zip entry into a file.
++* Extract a zip entry into a file.
+ ```c
+ struct zip_t *zip = zip_open("foo.zip", 0, 'r');
+ {
+@@ -157,7 +157,7 @@ struct zip_t *zip = zip_open("foo.zip", 0, 'r');
+ zip_close(zip);
+ ```
+
+-* List of all zip entries
++* List of all zip entries
+ ```c
+ struct zip_t *zip = zip_open("foo.zip", 0, 'r');
+ int i, n = zip_total_entries(zip);
+@@ -174,7 +174,7 @@ for (i = 0; i < n; ++i) {
+ zip_close(zip);
+ ```
+
+-## Bindings
++# Bindings
+ Compile zip library as a dynamic library.
+ ```shell
+ $ mkdir build
+diff --git a/contrib/zip/appveyor.yml b/contrib/zip/appveyor.yml
+index 0be6373c..ea17f5de 100644
+--- a/contrib/zip/appveyor.yml
++++ b/contrib/zip/appveyor.yml
+@@ -1,4 +1,4 @@
+-version: zip-0.1.9.{build}
++version: zip-0.1.15.{build}
+ build_script:
+ - cmd: >-
+ cd c:\projects\zip
+diff --git a/contrib/zip/src/miniz.h b/contrib/zip/src/miniz.h
+index 2c27a94d..c4fcfb83 100644
+--- a/contrib/zip/src/miniz.h
++++ b/contrib/zip/src/miniz.h
+@@ -221,6 +221,7 @@
+ #ifndef MINIZ_HEADER_INCLUDED
+ #define MINIZ_HEADER_INCLUDED
+
++#include <stdint.h>
+ #include <stdlib.h>
+
+ // Defines to completely disable specific portions of miniz.c:
+@@ -284,7 +285,8 @@
+ /* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES only if not set */
+ #if !defined(MINIZ_USE_UNALIGNED_LOADS_AND_STORES)
+ #if MINIZ_X86_OR_X64_CPU
+-/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */
++/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient
++ * integer loads and stores from unaligned addresses. */
+ #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1
+ #define MINIZ_UNALIGNED_USE_MEMCPY
+ #else
+@@ -354,6 +356,44 @@ enum {
+ MZ_FIXED = 4
+ };
+
++/* miniz error codes. Be sure to update mz_zip_get_error_string() if you add or
++ * modify this enum. */
++typedef enum {
++ MZ_ZIP_NO_ERROR = 0,
++ MZ_ZIP_UNDEFINED_ERROR,
++ MZ_ZIP_TOO_MANY_FILES,
++ MZ_ZIP_FILE_TOO_LARGE,
++ MZ_ZIP_UNSUPPORTED_METHOD,
++ MZ_ZIP_UNSUPPORTED_ENCRYPTION,
++ MZ_ZIP_UNSUPPORTED_FEATURE,
++ MZ_ZIP_FAILED_FINDING_CENTRAL_DIR,
++ MZ_ZIP_NOT_AN_ARCHIVE,
++ MZ_ZIP_INVALID_HEADER_OR_CORRUPTED,
++ MZ_ZIP_UNSUPPORTED_MULTIDISK,
++ MZ_ZIP_DECOMPRESSION_FAILED,
++ MZ_ZIP_COMPRESSION_FAILED,
++ MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE,
++ MZ_ZIP_CRC_CHECK_FAILED,
++ MZ_ZIP_UNSUPPORTED_CDIR_SIZE,
++ MZ_ZIP_ALLOC_FAILED,
++ MZ_ZIP_FILE_OPEN_FAILED,
++ MZ_ZIP_FILE_CREATE_FAILED,
++ MZ_ZIP_FILE_WRITE_FAILED,
++ MZ_ZIP_FILE_READ_FAILED,
++ MZ_ZIP_FILE_CLOSE_FAILED,
++ MZ_ZIP_FILE_SEEK_FAILED,
++ MZ_ZIP_FILE_STAT_FAILED,
++ MZ_ZIP_INVALID_PARAMETER,
++ MZ_ZIP_INVALID_FILENAME,
++ MZ_ZIP_BUF_TOO_SMALL,
++ MZ_ZIP_INTERNAL_ERROR,
++ MZ_ZIP_FILE_NOT_FOUND,
++ MZ_ZIP_ARCHIVE_TOO_LARGE,
++ MZ_ZIP_VALIDATION_FAILED,
++ MZ_ZIP_WRITE_CALLBACK_FAILED,
++ MZ_ZIP_TOTAL_ERRORS
++} mz_zip_error;
++
+ // Method
+ #define MZ_DEFLATED 8
+
+@@ -696,6 +736,7 @@ typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs,
+ void *pBuf, size_t n);
+ typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs,
+ const void *pBuf, size_t n);
++typedef mz_bool (*mz_file_needs_keepalive)(void *pOpaque);
+
+ struct mz_zip_internal_state_tag;
+ typedef struct mz_zip_internal_state_tag mz_zip_internal_state;
+@@ -707,13 +748,27 @@ typedef enum {
+ MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3
+ } mz_zip_mode;
+
+-typedef struct mz_zip_archive_tag {
++typedef enum {
++ MZ_ZIP_TYPE_INVALID = 0,
++ MZ_ZIP_TYPE_USER,
++ MZ_ZIP_TYPE_MEMORY,
++ MZ_ZIP_TYPE_HEAP,
++ MZ_ZIP_TYPE_FILE,
++ MZ_ZIP_TYPE_CFILE,
++ MZ_ZIP_TOTAL_TYPES
++} mz_zip_type;
++
++typedef struct {
+ mz_uint64 m_archive_size;
+ mz_uint64 m_central_directory_file_ofs;
+- mz_uint m_total_files;
++
++ /* We only support up to UINT32_MAX files in zip64 mode. */
++ mz_uint32 m_total_files;
+ mz_zip_mode m_zip_mode;
++ mz_zip_type m_zip_type;
++ mz_zip_error m_last_error;
+
+- mz_uint m_file_offset_alignment;
++ mz_uint64 m_file_offset_alignment;
+
+ mz_alloc_func m_pAlloc;
+ mz_free_func m_pFree;
+@@ -722,6 +777,7 @@ typedef struct mz_zip_archive_tag {
+
+ mz_file_read_func m_pRead;
+ mz_file_write_func m_pWrite;
++ mz_file_needs_keepalive m_pNeeds_keepalive;
+ void *m_pIO_opaque;
+
+ mz_zip_internal_state *m_pState;
+@@ -1263,6 +1319,9 @@ mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits,
+ int strategy);
+ #endif // #ifndef MINIZ_NO_ZLIB_APIS
+
++#define MZ_UINT16_MAX (0xFFFFU)
++#define MZ_UINT32_MAX (0xFFFFFFFFU)
++
+ #ifdef __cplusplus
+ }
+ #endif
+@@ -1311,6 +1370,11 @@ typedef unsigned char mz_validate_uint64[sizeof(mz_uint64) == 8 ? 1 : -1];
+ ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U))
+ #endif
+
++#define MZ_READ_LE64(p) \
++ (((mz_uint64)MZ_READ_LE32(p)) | \
++ (((mz_uint64)MZ_READ_LE32((const mz_uint8 *)(p) + sizeof(mz_uint32))) \
++ << 32U))
++
+ #ifdef _MSC_VER
+ #define MZ_FORCEINLINE __forceinline
+ #elif defined(__GNUC__)
+@@ -4160,6 +4224,17 @@ enum {
+ MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30,
+ MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46,
+ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22,
++
++ /* ZIP64 archive identifier and record sizes */
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06064b50,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG = 0x07064b50,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE = 56,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE = 20,
++ MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID = 0x0001,
++ MZ_ZIP_DATA_DESCRIPTOR_ID = 0x08074b50,
++ MZ_ZIP_DATA_DESCRIPTER_SIZE64 = 24,
++ MZ_ZIP_DATA_DESCRIPTER_SIZE32 = 16,
++
+ // Central directory header record offsets
+ MZ_ZIP_CDH_SIG_OFS = 0,
+ MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4,
+@@ -4199,6 +4274,31 @@ enum {
+ MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12,
+ MZ_ZIP_ECDH_CDIR_OFS_OFS = 16,
+ MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20,
++
++ /* ZIP64 End of central directory locator offsets */
++ MZ_ZIP64_ECDL_SIG_OFS = 0, /* 4 bytes */
++ MZ_ZIP64_ECDL_NUM_DISK_CDIR_OFS = 4, /* 4 bytes */
++ MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS = 8, /* 8 bytes */
++ MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS = 16, /* 4 bytes */
++
++ /* ZIP64 End of central directory header offsets */
++ MZ_ZIP64_ECDH_SIG_OFS = 0, /* 4 bytes */
++ MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS = 4, /* 8 bytes */
++ MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS = 12, /* 2 bytes */
++ MZ_ZIP64_ECDH_VERSION_NEEDED_OFS = 14, /* 2 bytes */
++ MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS = 16, /* 4 bytes */
++ MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS = 20, /* 4 bytes */
++ MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 24, /* 8 bytes */
++ MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS = 32, /* 8 bytes */
++ MZ_ZIP64_ECDH_CDIR_SIZE_OFS = 40, /* 8 bytes */
++ MZ_ZIP64_ECDH_CDIR_OFS_OFS = 48, /* 8 bytes */
++ MZ_ZIP_VERSION_MADE_BY_DOS_FILESYSTEM_ID = 0,
++ MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG = 0x10,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED = 1,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG = 32,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION = 64,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED = 8192,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8 = 1 << 11
+ };
+
+ typedef struct {
+@@ -4211,7 +4311,24 @@ struct mz_zip_internal_state_tag {
+ mz_zip_array m_central_dir;
+ mz_zip_array m_central_dir_offsets;
+ mz_zip_array m_sorted_central_dir_offsets;
++
++ /* The flags passed in when the archive is initially opened. */
++ uint32_t m_init_flags;
++
++ /* MZ_TRUE if the archive has a zip64 end of central directory headers, etc.
++ */
++ mz_bool m_zip64;
++
++ /* MZ_TRUE if we found zip64 extended info in the central directory (m_zip64
++ * will also be slammed to true too, even if we didn't find a zip64 end of
++ * central dir header, etc.) */
++ mz_bool m_zip64_has_extended_info_fields;
++
++ /* These fields are used by the file, FILE, memory, and memory/heap read/write
++ * helpers. */
+ MZ_FILE *m_pFile;
++ mz_uint64 m_file_archive_start_ofs;
++
+ void *m_pMem;
+ size_t m_mem_size;
+ size_t m_mem_capacity;
+@@ -4363,6 +4480,13 @@ static mz_bool mz_zip_set_file_times(const char *pFilename, time_t access_time,
+ #endif /* #ifndef MINIZ_NO_STDIO */
+ #endif /* #ifndef MINIZ_NO_TIME */
+
++static MZ_FORCEINLINE mz_bool mz_zip_set_error(mz_zip_archive *pZip,
++ mz_zip_error err_num) {
++ if (pZip)
++ pZip->m_last_error = err_num;
++ return MZ_FALSE;
++}
++
+ static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip,
+ mz_uint32 flags) {
+ (void)flags;
+@@ -4480,127 +4604,346 @@ mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) {
+ }
+ }
+
+-static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip,
+- mz_uint32 flags) {
+- mz_uint cdir_size, num_this_disk, cdir_disk_index;
+- mz_uint64 cdir_ofs;
++static mz_bool mz_zip_reader_locate_header_sig(mz_zip_archive *pZip,
++ mz_uint32 record_sig,
++ mz_uint32 record_size,
++ mz_int64 *pOfs) {
+ mz_int64 cur_file_ofs;
+- const mz_uint8 *p;
+ mz_uint32 buf_u32[4096 / sizeof(mz_uint32)];
+ mz_uint8 *pBuf = (mz_uint8 *)buf_u32;
+- mz_bool sort_central_dir =
+- ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0);
+- // Basic sanity checks - reject files which are too small, and check the first
+- // 4 bytes of the file to make sure a local header is there.
+- if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
++
++ /* Basic sanity checks - reject files which are too small */
++ if (pZip->m_archive_size < record_size)
+ return MZ_FALSE;
+- // Find the end of central directory record by scanning the file from the end
+- // towards the beginning.
++
++ /* Find the record by scanning the file from the end towards the beginning. */
+ cur_file_ofs =
+ MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0);
+ for (;;) {
+ int i,
+ n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs);
++
+ if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n)
+ return MZ_FALSE;
+- for (i = n - 4; i >= 0; --i)
+- if (MZ_READ_LE32(pBuf + i) == MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG)
+- break;
++
++ for (i = n - 4; i >= 0; --i) {
++ mz_uint s = MZ_READ_LE32(pBuf + i);
++ if (s == record_sig) {
++ if ((pZip->m_archive_size - (cur_file_ofs + i)) >= record_size)
++ break;
++ }
++ }
++
+ if (i >= 0) {
+ cur_file_ofs += i;
+ break;
+ }
++
++ /* Give up if we've searched the entire file, or we've gone back "too far"
++ * (~64kb) */
+ if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >=
+- (0xFFFF + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)))
++ (MZ_UINT16_MAX + record_size)))
+ return MZ_FALSE;
++
+ cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0);
+ }
+- // Read and verify the end of central directory record.
++
++ *pOfs = cur_file_ofs;
++ return MZ_TRUE;
++}
++
++static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip,
++ mz_uint flags) {
++ mz_uint cdir_size = 0, cdir_entries_on_this_disk = 0, num_this_disk = 0,
++ cdir_disk_index = 0;
++ mz_uint64 cdir_ofs = 0;
++ mz_int64 cur_file_ofs = 0;
++ const mz_uint8 *p;
++
++ mz_uint32 buf_u32[4096 / sizeof(mz_uint32)];
++ mz_uint8 *pBuf = (mz_uint8 *)buf_u32;
++ mz_bool sort_central_dir =
++ ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0);
++ mz_uint32 zip64_end_of_central_dir_locator_u32
++ [(MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + sizeof(mz_uint32) - 1) /
++ sizeof(mz_uint32)];
++ mz_uint8 *pZip64_locator = (mz_uint8 *)zip64_end_of_central_dir_locator_u32;
++
++ mz_uint32 zip64_end_of_central_dir_header_u32
++ [(MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) /
++ sizeof(mz_uint32)];
++ mz_uint8 *pZip64_end_of_central_dir =
++ (mz_uint8 *)zip64_end_of_central_dir_header_u32;
++
++ mz_uint64 zip64_end_of_central_dir_ofs = 0;
++
++ /* Basic sanity checks - reject files which are too small, and check the first
++ * 4 bytes of the file to make sure a local header is there. */
++ if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
++ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE);
++
++ if (!mz_zip_reader_locate_header_sig(
++ pZip, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG,
++ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE, &cur_file_ofs))
++ return mz_zip_set_error(pZip, MZ_ZIP_FAILED_FINDING_CENTRAL_DIR);
++
++ /* Read and verify the end of central directory record. */
+ if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf,
+ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) !=
+ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
+- return MZ_FALSE;
+- if ((MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) !=
+- MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) ||
+- ((pZip->m_total_files =
+- MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS)) !=
+- MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS)))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED);
++
++ if (MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) !=
++ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG)
++ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE);
++
++ if (cur_file_ofs >= (MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE +
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) {
++ if (pZip->m_pRead(pZip->m_pIO_opaque,
++ cur_file_ofs - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE,
++ pZip64_locator,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) ==
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) {
++ if (MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_SIG_OFS) ==
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG) {
++ zip64_end_of_central_dir_ofs = MZ_READ_LE64(
++ pZip64_locator + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS);
++ if (zip64_end_of_central_dir_ofs >
++ (pZip->m_archive_size - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE))
++ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE);
++
++ if (pZip->m_pRead(pZip->m_pIO_opaque, zip64_end_of_central_dir_ofs,
++ pZip64_end_of_central_dir,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) ==
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) {
++ if (MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIG_OFS) ==
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG) {
++ pZip->m_pState->m_zip64 = MZ_TRUE;
++ }
++ }
++ }
++ }
++ }
+
++ pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS);
++ cdir_entries_on_this_disk =
++ MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS);
+ num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS);
+ cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS);
++ cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS);
++ cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS);
++
++ if (pZip->m_pState->m_zip64) {
++ mz_uint32 zip64_total_num_of_disks =
++ MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS);
++ mz_uint64 zip64_cdir_total_entries = MZ_READ_LE64(
++ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS);
++ mz_uint64 zip64_cdir_total_entries_on_this_disk = MZ_READ_LE64(
++ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS);
++ mz_uint64 zip64_size_of_end_of_central_dir_record = MZ_READ_LE64(
++ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS);
++ mz_uint64 zip64_size_of_central_directory =
++ MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_SIZE_OFS);
++
++ if (zip64_size_of_end_of_central_dir_record <
++ (MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE - 12))
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++
++ if (zip64_total_num_of_disks != 1U)
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK);
++
++ /* Check for miniz's practical limits */
++ if (zip64_cdir_total_entries > MZ_UINT32_MAX)
++ return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES);
++
++ pZip->m_total_files = (mz_uint32)zip64_cdir_total_entries;
++
++ if (zip64_cdir_total_entries_on_this_disk > MZ_UINT32_MAX)
++ return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES);
++
++ cdir_entries_on_this_disk =
++ (mz_uint32)zip64_cdir_total_entries_on_this_disk;
++
++ /* Check for miniz's current practical limits (sorry, this should be enough
++ * for millions of files) */
++ if (zip64_size_of_central_directory > MZ_UINT32_MAX)
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE);
++
++ cdir_size = (mz_uint32)zip64_size_of_central_directory;
++
++ num_this_disk = MZ_READ_LE32(pZip64_end_of_central_dir +
++ MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS);
++
++ cdir_disk_index = MZ_READ_LE32(pZip64_end_of_central_dir +
++ MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS);
++
++ cdir_ofs =
++ MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_OFS_OFS);
++ }
++
++ if (pZip->m_total_files != cdir_entries_on_this_disk)
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK);
++
+ if (((num_this_disk | cdir_disk_index) != 0) &&
+ ((num_this_disk != 1) || (cdir_disk_index != 1)))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK);
+
+- if ((cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS)) <
+- pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)
+- return MZ_FALSE;
++ if (cdir_size < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
+
+- cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS);
+ if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size)
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
+
+ pZip->m_central_directory_file_ofs = cdir_ofs;
+
+ if (pZip->m_total_files) {
+ mz_uint i, n;
+-
+- // Read the entire central directory into a heap block, and allocate another
+- // heap block to hold the unsorted central dir file record offsets, and
+- // another to hold the sorted indices.
++ /* Read the entire central directory into a heap block, and allocate another
++ * heap block to hold the unsorted central dir file record offsets, and
++ * possibly another to hold the sorted indices. */
+ if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size,
+ MZ_FALSE)) ||
+ (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets,
+ pZip->m_total_files, MZ_FALSE)))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED);
+
+ if (sort_central_dir) {
+ if (!mz_zip_array_resize(pZip,
+ &pZip->m_pState->m_sorted_central_dir_offsets,
+ pZip->m_total_files, MZ_FALSE))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED);
+ }
+
+ if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs,
+ pZip->m_pState->m_central_dir.m_p,
+ cdir_size) != cdir_size)
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED);
+
+- // Now create an index into the central directory file records, do some
+- // basic sanity checking on each record, and check for zip64 entries (which
+- // are not yet supported).
++ /* Now create an index into the central directory file records, do some
++ * basic sanity checking on each record */
+ p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p;
+ for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) {
+- mz_uint total_header_size, comp_size, decomp_size, disk_index;
++ mz_uint total_header_size, disk_index, bit_flags, filename_size,
++ ext_data_size;
++ mz_uint64 comp_size, decomp_size, local_header_ofs;
++
+ if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) ||
+ (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++
+ MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32,
+ i) =
+ (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p);
++
+ if (sort_central_dir)
+ MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets,
+ mz_uint32, i) = i;
++
+ comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS);
+ decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS);
+- if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) &&
+- (decomp_size != comp_size)) ||
+- (decomp_size && !comp_size) || (decomp_size == 0xFFFFFFFF) ||
+- (comp_size == 0xFFFFFFFF))
+- return MZ_FALSE;
++ local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS);
++ filename_size = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS);
++ ext_data_size = MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS);
++
++ if ((!pZip->m_pState->m_zip64_has_extended_info_fields) &&
++ (ext_data_size) &&
++ (MZ_MAX(MZ_MAX(comp_size, decomp_size), local_header_ofs) ==
++ MZ_UINT32_MAX)) {
++ /* Attempt to find zip64 extended information field in the entry's extra
++ * data */
++ mz_uint32 extra_size_remaining = ext_data_size;
++
++ if (extra_size_remaining) {
++ const mz_uint8 *pExtra_data;
++ void *buf = NULL;
++
++ if (MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + ext_data_size >
++ n) {
++ buf = MZ_MALLOC(ext_data_size);
++ if (buf == NULL)
++ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED);
++
++ if (pZip->m_pRead(pZip->m_pIO_opaque,
++ cdir_ofs + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE +
++ filename_size,
++ buf, ext_data_size) != ext_data_size) {
++ MZ_FREE(buf);
++ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED);
++ }
++
++ pExtra_data = (mz_uint8 *)buf;
++ } else {
++ pExtra_data = p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size;
++ }
++
++ do {
++ mz_uint32 field_id;
++ mz_uint32 field_data_size;
++
++ if (extra_size_remaining < (sizeof(mz_uint16) * 2)) {
++ MZ_FREE(buf);
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++ }
++
++ field_id = MZ_READ_LE16(pExtra_data);
++ field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16));
++
++ if ((field_data_size + sizeof(mz_uint16) * 2) >
++ extra_size_remaining) {
++ MZ_FREE(buf);
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++ }
++
++ if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) {
++ /* Ok, the archive didn't have any zip64 headers but it uses a
++ * zip64 extended information field so mark it as zip64 anyway
++ * (this can occur with infozip's zip util when it reads
++ * compresses files from stdin). */
++ pZip->m_pState->m_zip64 = MZ_TRUE;
++ pZip->m_pState->m_zip64_has_extended_info_fields = MZ_TRUE;
++ break;
++ }
++
++ pExtra_data += sizeof(mz_uint16) * 2 + field_data_size;
++ extra_size_remaining =
++ extra_size_remaining - sizeof(mz_uint16) * 2 - field_data_size;
++ } while (extra_size_remaining);
++
++ MZ_FREE(buf);
++ }
++ }
++
++ /* I've seen archives that aren't marked as zip64 that uses zip64 ext
++ * data, argh */
++ if ((comp_size != MZ_UINT32_MAX) && (decomp_size != MZ_UINT32_MAX)) {
++ if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) &&
++ (decomp_size != comp_size)) ||
++ (decomp_size && !comp_size))
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++ }
++
+ disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS);
+- if ((disk_index != num_this_disk) && (disk_index != 1))
+- return MZ_FALSE;
+- if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) +
+- MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size)
+- return MZ_FALSE;
++ if ((disk_index == MZ_UINT16_MAX) ||
++ ((disk_index != num_this_disk) && (disk_index != 1)))
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK);
++
++ if (comp_size != MZ_UINT32_MAX) {
++ if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) +
++ MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size)
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++ }
++
++ bit_flags = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS);
++ if (bit_flags & MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED)
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION);
++
+ if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE +
+ MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) +
+ MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) +
+ MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) >
+ n)
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++
+ n -= total_header_size;
+ p += total_header_size;
+ }
+diff --git a/contrib/zip/src/zip.c b/contrib/zip/src/zip.c
+index ff3a8fe1..1abcfd8f 100644
+--- a/contrib/zip/src/zip.c
++++ b/contrib/zip/src/zip.c
+@@ -24,7 +24,6 @@
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) && \
+ (P)[1] == ':')
+ #define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE(P) ? 2 : 0)
+-#define ISSLASH(C) ((C) == '/' || (C) == '\\')
+
+ #else
+
+@@ -48,7 +47,7 @@ int symlink(const char *target, const char *linkpath); // needed on Linux
+ #endif
+
+ #ifndef ISSLASH
+-#define ISSLASH(C) ((C) == '/')
++#define ISSLASH(C) ((C) == '/' || (C) == '\\')
+ #endif
+
+ #define CLEANUP(ptr) \
+@@ -78,26 +77,34 @@ static const char *base_name(const char *name) {
+ return base;
+ }
+
+-static int mkpath(const char *path) {
+- char const *p;
++static int mkpath(char *path) {
++ char *p;
+ char npath[MAX_PATH + 1];
+ int len = 0;
+ int has_device = HAS_DEVICE(path);
+
+ memset(npath, 0, MAX_PATH + 1);
+-
+-#ifdef _WIN32
+- // only on windows fix the path
+- npath[0] = path[0];
+- npath[1] = path[1];
+- len = 2;
+-#endif // _WIN32
+-
++ if (has_device) {
++ // only on windows
++ npath[0] = path[0];
++ npath[1] = path[1];
++ len = 2;
++ }
+ for (p = path + len; *p && len < MAX_PATH; p++) {
+ if (ISSLASH(*p) && ((!has_device && len > 0) || (has_device && len > 2))) {
+- if (MKDIR(npath) == -1)
+- if (errno != EEXIST)
++#if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER) || \
++ defined(__MINGW32__)
++#else
++ if ('\\' == *p) {
++ *p = '/';
++ }
++#endif
++
++ if (MKDIR(npath) == -1) {
++ if (errno != EEXIST) {
+ return -1;
++ }
++ }
+ }
+ npath[len++] = *p;
+ }
+@@ -279,7 +286,14 @@ int zip_entry_open(struct zip_t *zip, const char *entryname) {
+ zip->entry.header_offset = zip->archive.m_archive_size;
+ memset(zip->entry.header, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE * sizeof(mz_uint8));
+ zip->entry.method = 0;
++
++ // UNIX or APPLE
++#if MZ_PLATFORM == 3 || MZ_PLATFORM == 19
++ // regular file with rw-r--r-- persmissions
++ zip->entry.external_attr = (mz_uint32)(0100644) << 16;
++#else
+ zip->entry.external_attr = 0;
++#endif
+
+ num_alignment_padding_bytes =
+ mz_zip_writer_compute_padding_needed_for_file_alignment(pzip);
+@@ -660,7 +674,7 @@ ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize) {
+ }
+
+ if (!mz_zip_reader_extract_to_mem_no_alloc(pzip, (mz_uint)zip->entry.index,
+- buf, bufsize, 0, NULL, 0)) {
++ buf, bufsize, 0, NULL, 0)) {
+ return -1;
+ }
+
+@@ -670,10 +684,7 @@ ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize) {
+ int zip_entry_fread(struct zip_t *zip, const char *filename) {
+ mz_zip_archive *pzip = NULL;
+ mz_uint idx;
+-#if defined(_MSC_VER)
+-#else
+ mz_uint32 xattr = 0;
+-#endif
+ mz_zip_archive_file_stat info;
+
+ if (!zip) {
+@@ -875,12 +886,19 @@ int zip_extract(const char *zipname, const char *dir,
+ goto out;
+ }
+
+- if ((((info.m_version_made_by >> 8) == 3) || ((info.m_version_made_by >> 8) == 19)) // if zip is produced on Unix or macOS (3 and 19 from section 4.4.2.2 of zip standard)
+- && info.m_external_attr & (0x20 << 24)) { // and has sym link attribute (0x80 is file, 0x40 is directory)
++ if ((((info.m_version_made_by >> 8) == 3) ||
++ ((info.m_version_made_by >> 8) ==
++ 19)) // if zip is produced on Unix or macOS (3 and 19 from
++ // section 4.4.2.2 of zip standard)
++ && info.m_external_attr &
++ (0x20 << 24)) { // and has sym link attribute (0x80 is file, 0x40
++ // is directory)
+ #if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER) || \
+ defined(__MINGW32__)
+-#else
+- if (info.m_uncomp_size > MAX_PATH || !mz_zip_reader_extract_to_mem_no_alloc(&zip_archive, i, symlink_to, MAX_PATH, 0, NULL, 0)) {
++#else
++ if (info.m_uncomp_size > MAX_PATH ||
++ !mz_zip_reader_extract_to_mem_no_alloc(&zip_archive, i, symlink_to,
++ MAX_PATH, 0, NULL, 0)) {
+ goto out;
+ }
+ symlink_to[info.m_uncomp_size] = '\0';
+diff --git a/contrib/zip/src/zip.h b/contrib/zip/src/zip.h
+index 5f39df50..a48d64d6 100644
+--- a/contrib/zip/src/zip.h
++++ b/contrib/zip/src/zip.h
+@@ -20,241 +20,240 @@ extern "C" {
+ #endif
+
+ #if !defined(_SSIZE_T_DEFINED) && !defined(_SSIZE_T_DEFINED_) && \
+- !defined(_SSIZE_T) && !defined(_SSIZE_T_) && !defined(__ssize_t_defined)
+-#define _SSIZE_T
++ !defined(__DEFINED_ssize_t) && !defined(__ssize_t_defined) && \
++ !defined(_SSIZE_T) && !defined(_SSIZE_T_)
++
+ // 64-bit Windows is the only mainstream platform
+ // where sizeof(long) != sizeof(void*)
+ #ifdef _WIN64
+-typedef long long ssize_t; /* byte count or error */
++typedef long long ssize_t; /* byte count or error */
+ #else
+-typedef long ssize_t; /* byte count or error */
++typedef long ssize_t; /* byte count or error */
+ #endif
++
++#define _SSIZE_T_DEFINED
++#define _SSIZE_T_DEFINED_
++#define __DEFINED_ssize_t
++#define __ssize_t_defined
++#define _SSIZE_T
++#define _SSIZE_T_
++
+ #endif
+
+ #ifndef MAX_PATH
+ #define MAX_PATH 32767 /* # chars in a path name including NULL */
+ #endif
+
++/**
++ * @mainpage
++ *
++ * Documenation for @ref zip.
++ */
++
++/**
++ * @addtogroup zip
++ * @{
++ */
++
++/**
++ * Default zip compression level.
++ */
++
+ #define ZIP_DEFAULT_COMPRESSION_LEVEL 6
+
+-/*
+- This data structure is used throughout the library to represent zip archive
+- - forward declaration.
+-*/
++/**
++ * @struct zip_t
++ *
++ * This data structure is used throughout the library to represent zip archive -
++ * forward declaration.
++ */
+ struct zip_t;
+
+-/*
+- Opens zip archive with compression level using the given mode.
+-
+- Args:
+- zipname: zip archive file name.
+- level: compression level (0-9 are the standard zlib-style levels).
+- mode: file access mode.
+- 'r': opens a file for reading/extracting (the file must exists).
+- 'w': creates an empty file for writing.
+- 'a': appends to an existing archive.
+-
+- Returns:
+- The zip archive handler or NULL on error
+-*/
++/**
++ * Opens zip archive with compression level using the given mode.
++ *
++ * @param zipname zip archive file name.
++ * @param level compression level (0-9 are the standard zlib-style levels).
++ * @param mode file access mode.
++ * - 'r': opens a file for reading/extracting (the file must exists).
++ * - 'w': creates an empty file for writing.
++ * - 'a': appends to an existing archive.
++ *
++ * @return the zip archive handler or NULL on error
++ */
+ extern struct zip_t *zip_open(const char *zipname, int level, char mode);
+
+-/*
+- Closes the zip archive, releases resources - always finalize.
+-
+- Args:
+- zip: zip archive handler.
+-*/
++/**
++ * Closes the zip archive, releases resources - always finalize.
++ *
++ * @param zip zip archive handler.
++ */
+ extern void zip_close(struct zip_t *zip);
+
+-/*
+- Opens an entry by name in the zip archive.
+- For zip archive opened in 'w' or 'a' mode the function will append
+- a new entry. In readonly mode the function tries to locate the entry
+- in global dictionary.
+-
+- Args:
+- zip: zip archive handler.
+- entryname: an entry name in local dictionary.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Opens an entry by name in the zip archive.
++ *
++ * For zip archive opened in 'w' or 'a' mode the function will append
++ * a new entry. In readonly mode the function tries to locate the entry
++ * in global dictionary.
++ *
++ * @param zip zip archive handler.
++ * @param entryname an entry name in local dictionary.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_open(struct zip_t *zip, const char *entryname);
+
+-/*
+- Opens a new entry by index in the zip archive.
+- This function is only valid if zip archive was opened in 'r' (readonly) mode.
+-
+- Args:
+- zip: zip archive handler.
+- index: index in local dictionary.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Opens a new entry by index in the zip archive.
++ *
++ * This function is only valid if zip archive was opened in 'r' (readonly) mode.
++ *
++ * @param zip zip archive handler.
++ * @param index index in local dictionary.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_openbyindex(struct zip_t *zip, int index);
+
+-/*
+- Closes a zip entry, flushes buffer and releases resources.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Closes a zip entry, flushes buffer and releases resources.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_close(struct zip_t *zip);
+
+-/*
+- Returns a local name of the current zip entry.
+- The main difference between user's entry name and local entry name
+- is optional relative path.
+- Following .ZIP File Format Specification - the path stored MUST not contain
+- a drive or device letter, or a leading slash.
+- All slashes MUST be forward slashes '/' as opposed to backwards slashes '\'
+- for compatibility with Amiga and UNIX file systems etc.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The pointer to the current zip entry name, or NULL on error.
+-*/
++/**
++ * Returns a local name of the current zip entry.
++ *
++ * The main difference between user's entry name and local entry name
++ * is optional relative path.
++ * Following .ZIP File Format Specification - the path stored MUST not contain
++ * a drive or device letter, or a leading slash.
++ * All slashes MUST be forward slashes '/' as opposed to backwards slashes '\'
++ * for compatibility with Amiga and UNIX file systems etc.
++ *
++ * @param zip: zip archive handler.
++ *
++ * @return the pointer to the current zip entry name, or NULL on error.
++ */
+ extern const char *zip_entry_name(struct zip_t *zip);
+
+-/*
+- Returns an index of the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The index on success, negative number (< 0) on error.
+-*/
++/**
++ * Returns an index of the current zip entry.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the index on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_index(struct zip_t *zip);
+
+-/*
+- Determines if the current zip entry is a directory entry.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The return code - 1 (true), 0 (false), negative number (< 0) on error.
+-*/
++/**
++ * Determines if the current zip entry is a directory entry.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the return code - 1 (true), 0 (false), negative number (< 0) on
++ * error.
++ */
+ extern int zip_entry_isdir(struct zip_t *zip);
+
+-/*
+- Returns an uncompressed size of the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The uncompressed size in bytes.
+-*/
++/**
++ * Returns an uncompressed size of the current zip entry.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the uncompressed size in bytes.
++ */
+ extern unsigned long long zip_entry_size(struct zip_t *zip);
+
+-/*
+- Returns CRC-32 checksum of the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The CRC-32 checksum.
+-*/
++/**
++ * Returns CRC-32 checksum of the current zip entry.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the CRC-32 checksum.
++ */
+ extern unsigned int zip_entry_crc32(struct zip_t *zip);
+
+-/*
+- Compresses an input buffer for the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+- buf: input buffer.
+- bufsize: input buffer size (in bytes).
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Compresses an input buffer for the current zip entry.
++ *
++ * @param zip zip archive handler.
++ * @param buf input buffer.
++ * @param bufsize input buffer size (in bytes).
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_write(struct zip_t *zip, const void *buf, size_t bufsize);
+
+-/*
+- Compresses a file for the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+- filename: input file.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Compresses a file for the current zip entry.
++ *
++ * @param zip zip archive handler.
++ * @param filename input file.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_fwrite(struct zip_t *zip, const char *filename);
+
+-/*
+- Extracts the current zip entry into output buffer.
+- The function allocates sufficient memory for a output buffer.
+-
+- Args:
+- zip: zip archive handler.
+- buf: output buffer.
+- bufsize: output buffer size (in bytes).
+-
+- Note:
+- - remember to release memory allocated for a output buffer.
+- - for large entries, please take a look at zip_entry_extract function.
+-
+- Returns:
+- The return code - the number of bytes actually read on success.
+- Otherwise a -1 on error.
+-*/
++/**
++ * Extracts the current zip entry into output buffer.
++ *
++ * The function allocates sufficient memory for a output buffer.
++ *
++ * @param zip zip archive handler.
++ * @param buf output buffer.
++ * @param bufsize output buffer size (in bytes).
++ *
++ * @note remember to release memory allocated for a output buffer.
++ * for large entries, please take a look at zip_entry_extract function.
++ *
++ * @return the return code - the number of bytes actually read on success.
++ * Otherwise a -1 on error.
++ */
+ extern ssize_t zip_entry_read(struct zip_t *zip, void **buf, size_t *bufsize);
+
+-/*
+- Extracts the current zip entry into a memory buffer using no memory
+- allocation.
+-
+- Args:
+- zip: zip archive handler.
+- buf: preallocated output buffer.
+- bufsize: output buffer size (in bytes).
+-
+- Note:
+- - ensure supplied output buffer is large enough.
+- - zip_entry_size function (returns uncompressed size for the current entry)
+- can be handy to estimate how big buffer is needed.
+- - for large entries, please take a look at zip_entry_extract function.
+-
+- Returns:
+- The return code - the number of bytes actually read on success.
+- Otherwise a -1 on error (e.g. bufsize is not large enough).
+-*/
+-extern ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize);
+-
+-/*
+- Extracts the current zip entry into output file.
+-
+- Args:
+- zip: zip archive handler.
+- filename: output file.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Extracts the current zip entry into a memory buffer using no memory
++ * allocation.
++ *
++ * @param zip zip archive handler.
++ * @param buf preallocated output buffer.
++ * @param bufsize output buffer size (in bytes).
++ *
++ * @note ensure supplied output buffer is large enough.
++ * zip_entry_size function (returns uncompressed size for the current
++ * entry) can be handy to estimate how big buffer is needed. for large
++ * entries, please take a look at zip_entry_extract function.
++ *
++ * @return the return code - the number of bytes actually read on success.
++ * Otherwise a -1 on error (e.g. bufsize is not large enough).
++ */
++extern ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf,
++ size_t bufsize);
++
++/**
++ * Extracts the current zip entry into output file.
++ *
++ * @param zip zip archive handler.
++ * @param filename output file.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_fread(struct zip_t *zip, const char *filename);
+
+-/*
+- Extracts the current zip entry using a callback function (on_extract).
+-
+- Args:
+- zip: zip archive handler.
+- on_extract: callback function.
+- arg: opaque pointer (optional argument,
+- which you can pass to the on_extract callback)
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
++/**
++ * Extracts the current zip entry using a callback function (on_extract).
++ *
++ * @param zip zip archive handler.
++ * @param on_extract callback function.
++ * @param arg opaque pointer (optional argument, which you can pass to the
++ * on_extract callback)
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
+ */
+ extern int
+ zip_entry_extract(struct zip_t *zip,
+@@ -262,53 +261,49 @@ zip_entry_extract(struct zip_t *zip,
+ const void *data, size_t size),
+ void *arg);
+
+-/*
+- Returns the number of all entries (files and directories) in the zip archive.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The return code - the number of entries on success,
+- negative number (< 0) on error.
+-*/
++/**
++ * Returns the number of all entries (files and directories) in the zip archive.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the return code - the number of entries on success, negative number
++ * (< 0) on error.
++ */
+ extern int zip_total_entries(struct zip_t *zip);
+
+-/*
+- Creates a new archive and puts files into a single zip archive.
+-
+- Args:
+- zipname: zip archive file.
+- filenames: input files.
+- len: number of input files.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Creates a new archive and puts files into a single zip archive.
++ *
++ * @param zipname zip archive file.
++ * @param filenames input files.
++ * @param len: number of input files.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_create(const char *zipname, const char *filenames[], size_t len);
+
+-/*
+- Extracts a zip archive file into directory.
+-
+- If on_extract_entry is not NULL, the callback will be called after
+- successfully extracted each zip entry.
+- Returning a negative value from the callback will cause abort and return an
+- error. The last argument (void *arg) is optional, which you can use to pass
+- data to the on_extract_entry callback.
+-
+- Args:
+- zipname: zip archive file.
+- dir: output directory.
+- on_extract_entry: on extract callback.
+- arg: opaque pointer.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Extracts a zip archive file into directory.
++ *
++ * If on_extract_entry is not NULL, the callback will be called after
++ * successfully extracted each zip entry.
++ * Returning a negative value from the callback will cause abort and return an
++ * error. The last argument (void *arg) is optional, which you can use to pass
++ * data to the on_extract_entry callback.
++ *
++ * @param zipname zip archive file.
++ * @param dir output directory.
++ * @param on_extract_entry on extract callback.
++ * @param arg opaque pointer.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_extract(const char *zipname, const char *dir,
+ int (*on_extract_entry)(const char *filename, void *arg),
+ void *arg);
+
++/** @} */
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/contrib/zip/test/CMakeLists.txt b/contrib/zip/test/CMakeLists.txt
+index 9b2a8db1..cc060b00 100644
+--- a/contrib/zip/test/CMakeLists.txt
++++ b/contrib/zip/test/CMakeLists.txt
+@@ -1,19 +1,16 @@
+ cmake_minimum_required(VERSION 2.8)
+
+-if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang")
+- if(ENABLE_COVERAGE)
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g ")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage")
+- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
+- endif()
+-endif ()
+-
+ # test
+-include_directories(../src)
+-add_executable(test.exe test.c ../src/zip.c)
+-add_executable(test_miniz.exe test_miniz.c)
++set(test_out test.out)
++set(test_miniz_out test_miniz.out)
++
++add_executable(${test_out} test.c)
++target_link_libraries(${test_out} zip)
++add_executable(${test_miniz_out} test_miniz.c)
++target_link_libraries(${test_miniz_out} zip)
++
++add_test(NAME ${test_out} COMMAND ${test_out})
++add_test(NAME ${test_miniz_out} COMMAND ${test_miniz_out})
+
+-add_test(NAME test COMMAND test.exe)
+-add_test(NAME test_miniz COMMAND test_miniz.exe)
++set(test_out ${test_out} PARENT_SCOPE)
++set(test_miniz_out ${test_miniz_out} PARENT_SCOPE)
+diff --git a/contrib/zip/test/test.c b/contrib/zip/test/test.c
+index 45443053..a9b2ddab 100644
+--- a/contrib/zip/test/test.c
++++ b/contrib/zip/test/test.c
+@@ -29,6 +29,8 @@
+ #define XFILE "7.txt\0"
+ #define XMODE 0100777
+
++#define UNIXMODE 0100644
++
+ #define UNUSED(x) (void)x
+
+ static int total_entries = 0;
+@@ -102,7 +104,8 @@ static void test_read(void) {
+ assert(0 == zip_entry_close(zip));
+ free(buf);
+ buf = NULL;
+-
++ bufsize = 0;
++
+ assert(0 == zip_entry_open(zip, "test/test-2.txt"));
+ assert(strlen(TESTDATA2) == zip_entry_size(zip));
+ assert(CRC32DATA2 == zip_entry_crc32(zip));
+@@ -131,7 +134,8 @@ static void test_read(void) {
+ assert(0 == zip_entry_close(zip));
+ free(buf);
+ buf = NULL;
+-
++ bufsize = 0;
++
+ buftmp = strlen(TESTDATA1);
+ buf = calloc(buftmp, sizeof(char));
+ assert(0 == zip_entry_open(zip, "test/test-1.txt"));
+@@ -433,6 +437,35 @@ static void test_mtime(void) {
+ remove(ZIPNAME);
+ }
+
++static void test_unix_permissions(void) {
++#if defined(_WIN64) || defined(_WIN32) || defined(__WIN32__)
++#else
++ // UNIX or APPLE
++ struct MZ_FILE_STAT_STRUCT file_stats;
++
++ remove(ZIPNAME);
++
++ struct zip_t *zip = zip_open(ZIPNAME, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w');
++ assert(zip != NULL);
++
++ assert(0 == zip_entry_open(zip, RFILE));
++ assert(0 == zip_entry_write(zip, TESTDATA1, strlen(TESTDATA1)));
++ assert(0 == zip_entry_close(zip));
++
++ zip_close(zip);
++
++ remove(RFILE);
++
++ assert(0 == zip_extract(ZIPNAME, ".", NULL, NULL));
++
++ assert(0 == MZ_FILE_STAT(RFILE, &file_stats));
++ assert(UNIXMODE == file_stats.st_mode);
++
++ remove(RFILE);
++ remove(ZIPNAME);
++#endif
++}
++
+ int main(int argc, char *argv[]) {
+ UNUSED(argc);
+ UNUSED(argv);
+@@ -453,6 +486,7 @@ int main(int argc, char *argv[]) {
+ test_write_permissions();
+ test_exe_permissions();
+ test_mtime();
++ test_unix_permissions();
+
+ remove(ZIPNAME);
+ return 0;
+diff --git a/contrib/zip/test/test_miniz.c b/contrib/zip/test/test_miniz.c
+index ebc0564d..babcaecd 100644
+--- a/contrib/zip/test/test_miniz.c
++++ b/contrib/zip/test/test_miniz.c
+@@ -23,16 +23,39 @@ int main(int argc, char *argv[]) {
+ uint step = 0;
+ int cmp_status;
+ uLong src_len = (uLong)strlen(s_pStr);
+- uLong cmp_len = compressBound(src_len);
+ uLong uncomp_len = src_len;
++ uLong cmp_len;
+ uint8 *pCmp, *pUncomp;
++ size_t sz;
+ uint total_succeeded = 0;
+ (void)argc, (void)argv;
+
+ printf("miniz.c version: %s\n", MZ_VERSION);
+
+ do {
++ pCmp = (uint8 *)tdefl_compress_mem_to_heap(s_pStr, src_len, &cmp_len, 0);
++ if (!pCmp) {
++ printf("tdefl_compress_mem_to_heap failed\n");
++ return EXIT_FAILURE;
++ }
++ if (src_len <= cmp_len) {
++ printf("tdefl_compress_mem_to_heap failed: from %u to %u bytes\n",
++ (mz_uint32)uncomp_len, (mz_uint32)cmp_len);
++ free(pCmp);
++ return EXIT_FAILURE;
++ }
++
++ sz = tdefl_compress_mem_to_mem(pCmp, cmp_len, s_pStr, src_len, 0);
++ if (sz != cmp_len) {
++ printf("tdefl_compress_mem_to_mem failed: expected %u, got %u\n",
++ (mz_uint32)cmp_len, (mz_uint32)sz);
++ free(pCmp);
++ return EXIT_FAILURE;
++ }
++
+ // Allocate buffers to hold compressed and uncompressed data.
++ free(pCmp);
++ cmp_len = compressBound(src_len);
+ pCmp = (mz_uint8 *)malloc((size_t)cmp_len);
+ pUncomp = (mz_uint8 *)malloc((size_t)src_len);
+ if ((!pCmp) || (!pUncomp)) {
diff --git a/meta/recipes-graphics/vulkan/assimp_4.1.0.bb b/meta/recipes-graphics/vulkan/assimp_5.0.1.bb
index 194cbe33cc..5a8c62e64d 100644
--- a/meta/recipes-graphics/vulkan/assimp_4.1.0.bb
+++ b/meta/recipes-graphics/vulkan/assimp_5.0.1.bb
@@ -8,10 +8,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2119edef0916b0bd511cb3c731076271"
DEPENDS = "zlib"
-SRC_URI = "git://github.com/assimp/assimp.git"
+SRC_URI = "git://github.com/assimp/assimp.git;branch=assimp_5.0_release \
+ file://0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch \
+ file://0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch \
+ "
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))"
-SRCREV = "80799bdbf90ce626475635815ee18537718a05b1"
+SRCREV = "8f0c6b04b2257a520aaab38421b2e090204b69df"
S = "${WORKDIR}/git"
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 93bcfbf851..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 0a27144d43b70121f57f6036514d069ca9d2b971 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
@@ -38,11 +38,11 @@ Signed-off-by: Maxin B. John <maxin.john@intel.com>
1 file changed, 14 deletions(-)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-index 8eee3a4..698d3b3 100644
+index a53c834..71a12e7 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
-@@ -47,18 +47,12 @@ set(EXAMPLES
- computeshader
+@@ -55,9 +55,6 @@ set(EXAMPLES
+ conditionalrender
conservativeraster
debugmarker
- deferred
@@ -51,16 +51,17 @@ index 8eee3a4..698d3b3 100644
descriptorsets
displacement
distancefieldfonts
- dynamicuniformbuffer
+@@ -65,9 +62,6 @@ set(EXAMPLES
gears
geometryshader
+ gltfscene
- hdr
- imgui
- indirectdraw
+ inlineuniformblocks
inputattachments
instancing
- mesh
-@@ -70,8 +64,6 @@ set(EXAMPLES
+@@ -83,23 +77,16 @@ set(EXAMPLES
parallaxmapping
particlefire
pbrbasic
@@ -69,9 +70,8 @@ index 8eee3a4..698d3b3 100644
pipelines
pipelinestatistics
pushconstants
-@@ -79,15 +71,10 @@ set(EXAMPLES
+ pushdescriptors
radialblur
- raytracing
renderheadless
- scenerendering
screenshot
@@ -85,7 +85,7 @@ index 8eee3a4..698d3b3 100644
stencilbuffer
subpasses
terraintessellation
-@@ -101,7 +88,6 @@ set(EXAMPLES
+@@ -113,7 +100,6 @@ set(EXAMPLES
texturesparseresidency
triangle
viewportarray
@@ -94,5 +94,5 @@ index 8eee3a4..698d3b3 100644
buildExamples()
--
-2.4.0
+2.17.1
diff --git a/meta/recipes-graphics/vulkan/vulkan-demos_git.bb b/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
index d2041d7d4c..4175a56157 100644
--- a/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
@@ -5,23 +5,23 @@ DEPENDS = "zlib"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=dcf473723faabf17baa9b5f2207599d0 \
file://examples/triangle/triangle.cpp;endline=12;md5=bccd1bf9cadd9e10086cf7872157e4fa"
-SRCREV_glm = "01f9ab5b6d21e5062ac0f6e0f205c7fa2ca9d769"
-SRCREV_gli = "8e43030b3e12bb58a4663d85adc5c752f89099c0"
+SRCREV_glm = "1ad55c5016339b83b7eec98c31007e0aee57d2bf"
+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 = "ae0b59c6e2e8630a2ae26f4a0b7a72cbe7547948"
+SRCREV = "4818f85916bf88c1ca8c2ed1a46e0e758651489e"
UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for"
S = "${WORKDIR}/git"
REQUIRED_DISTRO_FEATURES = 'vulkan'
-inherit cmake distro_features_check
-DEPENDS = "vulkan-loader assimp"
+inherit cmake features_check
+DEPENDS = "vulkan-loader assimp wayland-protocols wayland-native"
do_install_append () {
# Remove assets that have uncertain licenses
@@ -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.108.bb b/meta/recipes-graphics/vulkan/vulkan-headers_1.2.135.0.bb
index 284c19d797..d21c3d62b9 100644
--- a/meta/recipes-graphics/vulkan/vulkan-headers_1.1.108.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-${PV}"
+# 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 = "097a1045098213919fd56442f52c716fc78eeb27"
+SRCREV = "fb7f9c9bcd1d1544ea203a1f3d4253d0e90c5a90"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb b/meta/recipes-graphics/vulkan/vulkan-loader_1.2.135.0.bb
index 2fd6c44480..8bab58f0b9 100644
--- a/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-loader_1.2.135.0.bb
@@ -9,14 +9,14 @@ 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-${PV}"
-SRCREV = "ecb0b1e69fb2f4d3cae262e6da24c170ce62ae13"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-1.2.135"
+SRCREV = "86429d9e7f3542e88fb98ffa7d8a82c10c9828ac"
S = "${WORKDIR}/git"
REQUIRED_DISTRO_FEATURES = "vulkan"
-inherit cmake distro_features_check
+inherit cmake features_check
ANY_OF_DISTRO_FEATURES = "x11 wayland"
DEPENDS += "vulkan-headers"
@@ -24,6 +24,7 @@ DEPENDS += "vulkan-headers"
EXTRA_OECMAKE = "\
-DBUILD_TESTS=OFF \
-DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \
+ -DASSEMBLER_WORKS=FALSE \
"
# must choose x11 or wayland or both
diff --git a/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb b/meta/recipes-graphics/vulkan/vulkan-tools_1.2.135.0.bb
index 26cdee3c14..085c0e27e9 100644
--- a/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-tools_1.2.135.0.bb
@@ -5,12 +5,12 @@ 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-${PV}"
-SRCREV = "3ccd7f6ebae3e1919adf837718c04feb6c2acc61"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-1.2.135"
+SRCREV = "6d8197fd6c91d352a601587ffdde28f4cd7bc399"
S = "${WORKDIR}/git"
-inherit cmake distro_features_check
+inherit cmake features_check
ANY_OF_DISTRO_FEATURES = "x11 wayland"
REQUIRED_DISTRO_FEATURES = "vulkan"
diff --git a/meta/recipes-graphics/waffle/waffle_1.6.0.bb b/meta/recipes-graphics/waffle/waffle_1.6.1.bb
index 8a1d5748f6..3f3c0e9028 100644
--- a/meta/recipes-graphics/waffle/waffle_1.6.0.bb
+++ b/meta/recipes-graphics/waffle/waffle_1.6.1.bb
@@ -4,12 +4,14 @@ 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"
-inherit meson distro_features_check lib_package bash-completion
+inherit meson features_check lib_package bash-completion
+
+DEPENDS_append = " python3"
# This should be overridden per-machine to reflect the capabilities of the GL
# stack.
diff --git a/meta/recipes-graphics/wayland/libinput/determinism.patch b/meta/recipes-graphics/wayland/libinput/determinism.patch
new file mode 100644
index 0000000000..cb554030cf
--- /dev/null
+++ b/meta/recipes-graphics/wayland/libinput/determinism.patch
@@ -0,0 +1,21 @@
+This finds our outer git tree and that version information breaks
+determinism of this recipe. Disable it.
+
+RP 2020/2/6
+
+Upstream-Status: Pending
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: libinput-1.14.3/meson.build
+===================================================================
+--- libinput-1.14.3.orig/meson.build
++++ libinput-1.14.3/meson.build
+@@ -387,7 +387,7 @@ pkgconfig.generate(
+ libraries : lib_libinput
+ )
+
+-git_version_h = vcs_tag(command : ['git', 'describe'],
++git_version_h = vcs_tag(command : ['false'],
+ fallback : 'unknown',
+ input : 'src/libinput-git-version.h.in',
+ output :'libinput-git-version.h')
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.1.bb b/meta/recipes-graphics/wayland/libinput_1.14.1.bb
deleted file mode 100644
index 38bc8d2c33..0000000000
--- a/meta/recipes-graphics/wayland/libinput_1.14.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Library to handle input devices in Wayland compositors"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63"
-
-DEPENDS = "libevdev udev mtdev"
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "da29a704dc6f7ea2d5aac754db046340"
-SRC_URI[sha256sum] = "e333a3242835c019ca37d2cef8b51a87d3138eb47444119c0153dc7a8656ee70"
-
-UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
-
-inherit meson pkgconfig lib_package
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom"
-PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3"
-
-UDEVDIR = "`pkg-config --variable=udevdir udev`"
-
-EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \
- -Ddocumentation=false \
- -Dtests=false \
- -Dzshcompletiondir=no"
-
-# package name changed in 1.8.1 upgrade: make sure package upgrades work
-RPROVIDES_${PN} = "libinput"
-RREPLACES_${PN} = "libinput"
-RCONFLICTS_${PN} = "libinput"
diff --git a/meta/recipes-graphics/wayland/libinput_1.16.1.bb b/meta/recipes-graphics/wayland/libinput_1.16.1.bb
new file mode 100644
index 0000000000..1497609183
--- /dev/null
+++ b/meta/recipes-graphics/wayland/libinput_1.16.1.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Library to handle input devices in Wayland compositors"
+DESCRIPTION = "libinput is a library to handle input devices in Wayland \
+compositors and to provide a generic X.Org input driver. It provides \
+device detection, device handling, input device event processing and \
+abstraction so minimize the amount of custom input code compositors need to \
+provide the common set of functionality that users expect."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63"
+
+DEPENDS = "libevdev udev mtdev libcheck"
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
+ file://run-ptest \
+ file://determinism.patch \
+ "
+SRC_URI[sha256sum] = "7ba7d1aeedd15168bb21d17e9e628aa1c27957963a423a3fea3938a501758539"
+
+UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
+
+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"
+PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3"
+
+UDEVDIR = "`pkg-config --variable=udevdir udev`"
+
+EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \
+ -Ddocumentation=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/mtdev_1.1.5.bb b/meta/recipes-graphics/wayland/mtdev_1.1.6.bb
index ccd0ebbfce..7c1cb5e4ec 100644
--- a/meta/recipes-graphics/wayland/mtdev_1.1.5.bb
+++ b/meta/recipes-graphics/wayland/mtdev_1.1.6.bb
@@ -12,7 +12,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=ea6bd0268bb0fcd6b27698616ceee5d6"
SRC_URI = "http://bitmath.org/code/${BPN}/${BP}.tar.bz2"
-SRC_URI[md5sum] = "52c9610b6002f71d1642dc1a1cca5ec1"
-SRC_URI[sha256sum] = "6677d5708a7948840de734d8b4675d5980d4561171c5a8e89e54adf7a13eba7f"
+SRC_URI[md5sum] = "bf8ef2482e84a00b5db8fbd3ce00e249"
+SRC_URI[sha256sum] = "15d7b28da8ac71d8bc8c9287c2045fd174267bc740bec10cfda332dc1204e0e0"
inherit autotools pkgconfig
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
new file mode 100644
index 0000000000..c2ceae4a47
--- /dev/null
+++ b/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
@@ -0,0 +1,34 @@
+From e6783c99f051c6d8252db5f388d805cef0e16357 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <JPEWhacker@gmail.com>
+Date: Thu, 20 Feb 2020 15:20:45 -0600
+Subject: [PATCH] build: Fix strndup detection on MinGW
+
+GCC and meson conspire together to incorrectly detect that strndup()
+exists on MinGW as __builtin_strndup, when no such function exists. As a
+work around, meson will skip looking for __builtin functions if an
+'#include' is in the prefix, so add '#include <string.h>' when looking
+for strndup().
+
+See: https://github.com/mesonbuild/meson/issues/3672
+
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/merge_requests/63]
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/meson.build
++++ b/meson.build
+@@ -36,11 +36,11 @@ have_funcs = [
+ 'posix_fallocate',
+ 'prctl',
+ 'memfd_create',
+- 'strndup',
+ ]
+ 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') and cc.has_header_symbol('string.h', 'strndup'))
+
+ if get_option('libraries')
+ ffi_dep = dependency('libffi')
diff --git a/meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch b/meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch
new file mode 100644
index 0000000000..61de0e04e8
--- /dev/null
+++ b/meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch
@@ -0,0 +1,115 @@
+From b2c74f6a3dbe0aee2413800837314136947a4985 Mon Sep 17 00:00:00 2001
+From: Jan Beich <jbeich@FreeBSD.org>
+Date: Sat, 15 Feb 2020 02:03:45 +0000
+Subject: [PATCH] meson/tests: add missing dependencies on protocol headers
+
+In file included from ../tests/connection-test.c:43:
+In file included from ../tests/test-compositor.h:30:
+../src/wayland-client.h:40:10: fatal error: 'wayland-client-protocol.h' file not found
+ #include "wayland-client-protocol.h"
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
+In file included from ../tests/display-test.c:45:
+In file included from ../src/wayland-server.h:104:
+src/wayland-server-protocol.h:4454:2: error: unterminated /* comment
+ /**
+ ^
+In file included from ../tests/cpp-compile-test.cpp:2:
+In file included from src/wayland-server-protocol.h:8:
+In file included from ../src/wayland-server.h:104:
+src/wayland-server-protocol.h:3:2: error: unterminated conditional directive
+ #ifndef WAYLAND_SERVER_PROTOCOL_H
+ ^
+../tests/headers-protocol-test.c:33:2: error: including wayland-server-protocol.h did not include wayland-server.h!
+ #error including wayland-server-protocol.h did not include wayland-server.h!
+ ^
+In file included from ../tests/headers-protocol-test.c:26:
+In file included from src/wayland-client-protocol.h:8:
+In file included from ../src/wayland-client.h:40:
+src/wayland-client-protocol.h:1358:2: error: unterminated conditional directive
+ #ifndef WL_SHM_FORMAT_ENUM
+ ^
+In file included from ../tests/protocol-logger-test.c:34:
+In file included from ../src/wayland-client.h:40:
+src/wayland-client-protocol.h:2613:1: error: unterminated /* comment
+/**
+^
+../tests/resources-test.c:49:36: error: use of undeclared identifier 'wl_seat_interface'
+ res = wl_resource_create(client, &wl_seat_interface, 4, 0);
+ ^
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ tests/meson.build | 26 ++++++++++++++++++--------
+ 1 file changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/tests/meson.build b/tests/meson.build
+index c28a2a3..f1af7b4 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -69,7 +69,7 @@ test(
+ executable(
+ 'cpp-compile-test',
+ 'cpp-compile-test.cpp',
+- wayland_server_protocol_core_h,
++ wayland_server_protocol_h,
+ include_directories: src_inc
+ )
+ )
+@@ -91,17 +91,25 @@ tests = {
+ 'array-test': [],
+ 'client-test': [ wayland_server_protocol_h ],
+ 'display-test': [
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
+ tests_server_protocol_h,
+ tests_client_protocol_c,
+ tests_protocol_c,
+ ],
+- 'connection-test': [ wayland_server_protocol_h ],
++ 'connection-test': [
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
++ ],
+ 'event-loop-test': [ wayland_server_protocol_h ],
+ 'fixed-test': [],
+ 'interface-test': [ wayland_client_protocol_h ],
+ 'list-test': [],
+ 'map-test': [],
+- 'sanity-test' : [ wayland_server_protocol_h ],
++ 'sanity-test' : [
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
++ ],
+ 'socket-test': [
+ wayland_client_protocol_h,
+ wayland_server_protocol_h,
+@@ -116,7 +124,7 @@ tests = {
+ files('../src/wayland-server.c'),
+ wayland_server_protocol_h,
+ ],
+- 'resources-test': [ wayland_server_protocol_core_h ],
++ 'resources-test': [ wayland_server_protocol_h ],
+ 'message-test': [
+ wayland_client_protocol_h,
+ wayland_server_protocol_h,
+@@ -126,14 +134,16 @@ tests = {
+ wayland_server_protocol_h,
+ ],
+ 'protocol-logger-test': [
+- wayland_server_protocol_core_h,
+- wayland_client_protocol_core_h,
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
+ ],
+ 'headers-test': [
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
+ 'headers-protocol-test.c',
+- 'headers-protocol-core-test.c',
+- wayland_server_protocol_core_h,
+ wayland_client_protocol_core_h,
++ wayland_server_protocol_core_h,
++ 'headers-protocol-core-test.c',
+ ],
+ 'os-wrappers-test': [],
+ }
diff --git a/meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch b/meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch
new file mode 100644
index 0000000000..2199548bdf
--- /dev/null
+++ b/meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch
@@ -0,0 +1,26 @@
+From cbb28635a1079d68e62dbaa1e21791a20dbbbaf4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 17 Feb 2020 21:46:18 +0100
+Subject: [PATCH] Do not hardcode the path to wayland-scanner
+
+This results in host contamination during builds.
+
+Upstream-Status: Inappropriate [oe-core specific]
+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 294aee0..7e410fa 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -49,7 +49,7 @@ pkgconfig.generate(
+ 'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
+ 'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()),
+ 'bindir=' + join_paths('${prefix}', get_option('bindir')),
+- 'wayland_scanner=${bindir}/wayland-scanner'
++ 'wayland_scanner=wayland-scanner'
+ ],
+ filebase: 'wayland-scanner'
+ )
diff --git a/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch b/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch
new file mode 100644
index 0000000000..f98037a850
--- /dev/null
+++ b/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch
@@ -0,0 +1,27 @@
+From 2582d2653ba80917d7bc47088e1a5f49530fddaa Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sun, 16 Feb 2020 16:29:53 +0100
+Subject: [PATCH] meson.build: find the native wayland-scanner directly in PATH
+
+Otherwise, meson attempts to use the target pkg-config and fails.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/meson.build | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 3e8c9bf..294aee0 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -55,8 +55,7 @@ pkgconfig.generate(
+ )
+
+ if meson.is_cross_build()
+- scanner_dep = dependency('wayland-scanner', native: true, version: '>=1.14.0')
+- wayland_scanner_for_build = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
++ wayland_scanner_for_build = find_program('wayland-scanner')
+ else
+ wayland_scanner_for_build = wayland_scanner
+ endif
diff --git a/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch b/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch
deleted file mode 100644
index ad3526d984..0000000000
--- a/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Fix wayland-client and wayland-scanner pc files
-
-Upstream-Status: Pending
-
-Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk>
-
-Index: wayland-1.14.0/src/wayland-client.pc.in
-===================================================================
---- wayland-1.14.0.orig/src/wayland-client.pc.in
-+++ wayland-1.14.0/src/wayland-client.pc.in
-@@ -1,7 +1,7 @@
- prefix=@prefix@
- exec_prefix=@exec_prefix@
- datarootdir=@datarootdir@
--pkgdatadir=@datadir@/@PACKAGE@
-+pkgdatadir=${pc_sysrootdir}@datadir@/@PACKAGE@
- libdir=@libdir@
- includedir=@includedir@
-
-Index: wayland-1.14.0/src/wayland-scanner.pc.in
-===================================================================
---- wayland-1.14.0.orig/src/wayland-scanner.pc.in
-+++ wayland-1.14.0/src/wayland-scanner.pc.in
-@@ -2,7 +2,7 @@ prefix=@prefix@
- exec_prefix=@exec_prefix@
- datarootdir=@datarootdir@
- pkgdatadir=@datadir@/@PACKAGE@
--wayland_scanner=@bindir@/wayland-scanner
-+wayland_scanner=wayland-scanner
-
- Name: Wayland Scanner
- Description: Wayland scanner
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.17.0.bb b/meta/recipes-graphics/wayland/wayland_1.18.0.bb
index d34bb39747..00be3aac27 100644
--- a/meta/recipes-graphics/wayland/wayland_1.17.0.bb
+++ b/meta/recipes-graphics/wayland/wayland_1.18.0.bb
@@ -10,20 +10,27 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \
file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce"
-DEPENDS = "expat libxml2 libffi wayland-native"
+DEPENDS = "expat libffi wayland-native"
SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
- file://fixpathinpcfiles.patch \
+ 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 \
+ file://0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch \
"
-SRC_URI[md5sum] = "d91f970aea11fd549eae023d06f91af3"
-SRC_URI[sha256sum] = "72aa11b8ac6e22f4777302c9251e8fec7655dc22f9d94ee676c6b276f95f91a4"
+SRC_URI[md5sum] = "23317697b6e3ff2e1ac8c5ba3ed57b65"
+SRC_URI[sha256sum] = "4675a79f091020817a98fd0484e7208c8762242266967f55a67776936c2e294d"
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
-inherit autotools pkgconfig
+inherit meson pkgconfig ptest
-EXTRA_OECONF = "--disable-documentation --with-host-scanner"
-EXTRA_OECONF_class-native = "--disable-documentation --disable-libraries"
+PACKAGECONFIG ??= "dtd-validation"
+PACKAGECONFIG[dtd-validation] = "-Ddtd_validation=true,-Ddtd_validation=false,libxml2,,"
+
+EXTRA_OEMESON = "-Ddocumentation=false"
+EXTRA_OEMESON_class-native = "-Ddocumentation=false -Dlibraries=false"
# Wayland installs a M4 macro for other projects to use, which uses the target
# pkg-config to find files. Replace pkg-config with pkg-config-native.
@@ -33,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/
@@ -42,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 8b6689717c..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,9 +42,12 @@ 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 distro_features_check systemd
+inherit update-rc.d features_check systemd
# rdepends on weston which depends on virtual/egl
REQUIRED_DISTRO_FEATURES = "opengl"
@@ -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/qemux86-64/weston.ini b/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini
deleted file mode 100644
index 17ebd7fdab..0000000000
--- a/meta/recipes-graphics/wayland/weston-init/qemux86-64/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 17ebd7fdab..0000000000
--- a/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[core]
-backend=fbdev-backend.so
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/weston.env b/meta/recipes-graphics/wayland/weston-init/weston.env
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ 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 9ecf2ab069..ce8f4fb71a 100644
--- a/meta/recipes-graphics/wayland/weston-init/weston@.service
+++ b/meta/recipes-graphics/wayland/weston-init/weston@.service
@@ -1,37 +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 (on tty7)
-RequiresMountsFor=/run
-Conflicts=getty@tty7.service plymouth-quit.service
-After=systemd-user-sessions.service getty@tty7.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
-PermissionsStartOnly=true
+# Requires systemd-notify.so Weston plugin.
+Type=notify
+EnvironmentFile=/etc/default/weston
+ExecStart=/usr/bin/weston --modules=systemd-notify.so
-# Log us in via PAM so we get our XDG & co. environment and
-# are treated as logged in so we can use the tty:
-PAMName=login
+# Optional watchdog setup
+TimeoutStartSec=60
+WatchdogSec=20
-# Grab tty7
-UtmpIdentifier=tty7
+# 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
-# stderr to journal so our logging doesn't get thrown into /dev/null
-StandardOutput=tty
-StandardInput=tty
+# Fail to start if not controlling the tty.
+StandardInput=tty-fail
+StandardOutput=journal
StandardError=journal
-EnvironmentFile=-/etc/default/weston
-
-# Weston does not successfully change VT, nor does systemd place us on
-# the VT it just activated for us. Switch manually:
-ExecStartPre=/usr/bin/chvt 7
-ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log $OPTARGS
-
-IgnoreSIGPIPE=no
+# Log this user with utmp, letting it show up with commands 'w' and 'who'.
+UtmpIdentifier=tty7
+UtmpMode=user
-#[Install]
-#Alias=multi-user.target.wants/weston.service
+[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 e50845b17a..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 682b7d79a7b81ec8e38760381104b24ad549e8c0 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.
@@ -16,6 +17,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ming Liu <ming.liu@toradex.com>
+
---
libweston/meson.build | 16 ++++++++++++----
libweston/weston-launch.c | 21 +++++++++++++++++++++
@@ -23,10 +25,10 @@ Signed-off-by: Ming Liu <ming.liu@toradex.com>
3 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/libweston/meson.build b/libweston/meson.build
-index d8d3fc0..326683f 100644
+index 08d23ec..cb9fd3f 100644
--- a/libweston/meson.build
+++ b/libweston/meson.build
-@@ -199,16 +199,24 @@ dep_vertex_clipping = declare_dependency(
+@@ -216,16 +216,24 @@ dep_vertex_clipping = declare_dependency(
)
if get_option('weston-launch')
@@ -52,11 +54,11 @@ index d8d3fc0..326683f 100644
'weston-launch.c',
- dependencies: [dep_pam, systemd_dep, dep_libdrm],
+ dependencies: deps_weston_launch,
- include_directories: include_directories('..'),
+ include_directories: common_inc,
install: true
)
diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
-index 4962bd6..fc531c5 100644
+index 521cb2c..2d42d33 100644
--- a/libweston/weston-launch.c
+++ b/libweston/weston-launch.c
@@ -51,7 +51,9 @@
@@ -96,7 +98,7 @@ index 4962bd6..fc531c5 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]);
@@ -104,15 +106,15 @@ index 4962bd6..fc531c5 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))
-@@ -660,6 +668,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);
@@ -120,7 +122,7 @@ index 4962bd6..fc531c5 100644
env = pam_getenvlist(wl->ph);
if (env) {
for (i = 0; env[i]; ++i) {
-@@ -668,6 +677,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);
}
@@ -128,7 +130,7 @@ index 4962bd6..fc531c5 100644
/*
* We open a new session, so it makes sense
-@@ -739,8 +749,10 @@ static void
+@@ -789,8 +799,10 @@ static void
help(const char *name)
{
fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name);
@@ -139,7 +141,7 @@ index 4962bd6..fc531c5 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");
-@@ -754,7 +766,9 @@ main(int argc, char *argv[])
+@@ -804,7 +816,9 @@ main(int argc, char *argv[])
int i, c;
char *tty = NULL;
struct option opts[] = {
@@ -149,7 +151,7 @@ index 4962bd6..fc531c5 100644
{ "tty", required_argument, NULL, 't' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
-@@ -766,11 +780,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':
@@ -166,7 +168,7 @@ index 4962bd6..fc531c5 100644
break;
case 't':
tty = optarg;
-@@ -822,8 +841,10 @@ main(int argc, char *argv[])
+@@ -872,8 +891,10 @@ main(int argc, char *argv[])
if (setup_tty(&wl, tty) < 0)
exit(EXIT_FAILURE);
@@ -178,7 +180,7 @@ index 4962bd6..fc531c5 100644
if (setup_launcher_socket(&wl) < 0)
exit(EXIT_FAILURE);
diff --git a/meson_options.txt b/meson_options.txt
-index d5bf1d5..254eb2b 100644
+index 239bd2d..99e4ec3 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -73,6 +73,13 @@ option(
@@ -195,6 +197,3 @@ index d5bf1d5..254eb2b 100644
'xwayland',
type: 'boolean',
value: true,
---
-2.7.4
-
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_7.0.0.bb b/meta/recipes-graphics/wayland/weston_9.0.0.bb
index d21275414e..75f9fb05fd 100644
--- a/meta/recipes-graphics/wayland/weston_7.0.0.bb
+++ b/meta/recipes-graphics/wayland/weston_9.0.0.bb
@@ -10,28 +10,37 @@ 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] = "cbfda483bc2501d0831af3f33c707850"
-SRC_URI[sha256sum] = "a00a6d207b6a45f95f4401c604772a307c3767e5e2beecf3d879110c43909a64"
+
+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"
-inherit meson pkgconfig useradd distro_features_check
+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
@@ -93,7 +112,8 @@ do_install_append() {
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \
libweston-${WESTON_MAJOR_VERSION} ${PN}-examples"
-FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}"
+FILES_${PN}-dev += "${libdir}/${BPN}/libexec_weston.so"
+FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}"
FILES_libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so"
SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'."
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf b/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf
new file mode 100644
index 0000000000..7ab7460816
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf
@@ -0,0 +1,2 @@
+cap_sys_admin @USER@
+none *
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
index 6c548551b8..116bb278bc 100755
--- a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
+++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
@@ -38,6 +38,14 @@ case "$1" in
if [ -e /dev/hidraw0 ]; then
chmod o+rw /dev/hidraw*
fi
+ # Make sure that the Xorg has the cap_sys_admin capability which is
+ # needed for setting the drm master
+ if ! grep -q "^auth.*pam_cap\.so" /etc/pam.d/su; then
+ echo "auth optional pam_cap.so" >>/etc/pam.d/su
+ fi
+ if ! /usr/sbin/getcap $XSERVER | grep -q cap_sys_admin; then
+ /usr/sbin/setcap cap_sys_admin+eip $XSERVER
+ fi
fi
# Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211]
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb b/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
index a77c56445c..c2995f99ff 100644
--- a/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
+++ b/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
@@ -10,6 +10,7 @@ SRC_URI = "file://xserver-nodm \
file://gplv2-license.patch \
file://xserver-nodm.service.in \
file://xserver-nodm.conf.in \
+ file://capability.conf \
"
S = "${WORKDIR}"
@@ -17,9 +18,9 @@ S = "${WORKDIR}"
# Since we refer to ROOTLESS_X which is normally enabled per-machine
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit update-rc.d systemd distro_features_check
+inherit update-rc.d systemd features_check
-REQUIRED_DISTRO_FEATURES = "x11"
+REQUIRED_DISTRO_FEATURES = "x11 ${@oe.utils.conditional('ROOTLESS_X', '1', 'pam', '', d)}"
PACKAGECONFIG ??= "blank"
# dpms and screen saver will be on only if 'blank' is in PACKAGECONFIG
@@ -40,6 +41,8 @@ do_install() {
if [ "${ROOTLESS_X}" = "1" ] ; then
XUSER_HOME="/home/xuser"
XUSER="xuser"
+ install -D capability.conf ${D}${sysconfdir}/security/capability.conf
+ sed -i "s:@USER@:${XUSER}:" ${D}${sysconfdir}/security/capability.conf
else
XUSER_HOME=${ROOT_HOME}
XUSER="root"
@@ -60,7 +63,7 @@ do_install() {
fi
}
-RDEPENDS_${PN} = "xinit ${@oe.utils.conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}"
+RDEPENDS_${PN} = "xinit ${@oe.utils.conditional('ROOTLESS_X', '1', 'xuser-account libcap libcap-bin', '', d)}"
INITSCRIPT_NAME = "xserver-nodm"
INITSCRIPT_PARAMS = "start 9 5 . stop 20 0 1 2 3 6 ."
diff --git a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 9873d3f33f..d2a16643fe 100644
--- a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -7,12 +7,12 @@ DEPENDS = "virtual/libx11 libxi libxrandr"
PV = "0.7.5+git${SRCPV}"
PR = "r6"
-inherit autotools pkgconfig distro_features_check
+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/mkfontdir_1.0.7.bb b/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb
deleted file mode 100644
index a453e24876..0000000000
--- a/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require xorg-app-common.inc
-
-SUMMARY = "A program to create an index of X font files in a directory"
-
-DESCRIPTION = "For each directory argument, mkfontdir reads all of the \
-font files in the directory. The font names and related data are written \
-out to the files \"fonts.dir\", \"fonts.scale\", and \"fonts.alias\". \
-The X server and font server use these files to find the available font \
-files."
-
-PE = "1"
-PR = "${INC_PR}.0"
-
-RDEPENDS_${PN} += "mkfontscale"
-RDEPENDS_${PN}_class-native += "mkfontscale-native"
-
-BBCLASSEXTEND = "native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b4fcf2b90cadbfc15009b9e124dc3a3f"
-
-SRC_URI[md5sum] = "18c429148c96c2079edda922a2b67632"
-SRC_URI[sha256sum] = "56d52a482df130484e51fd066d1b6eda7c2c02ddbc91fe6e2be1b9c4e7306530"
diff --git a/meta/recipes-graphics/xorg-app/mkfontscale_1.1.3.bb b/meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb
index 2a6bec1649..a767ee847b 100644
--- a/meta/recipes-graphics/xorg-app/mkfontscale_1.1.3.bb
+++ b/meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb
@@ -10,9 +10,12 @@ is used by the mkfontdir program."
DEPENDS = "util-macros-native zlib libfontenc freetype xorgproto"
+PROVIDES += "mkfontdir"
+RPROVIDES_${PN} += "mkfontdir"
+
BBCLASSEXTEND = "native"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2e0d129d05305176d1a790e0ac1acb7f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=99b1e1269aba5179139b9e4380fc0934"
-SRC_URI[md5sum] = "987c438e79f5ddb84a9c5726a1610819"
-SRC_URI[sha256sum] = "1e98df69ee5f4542d711e140e1d93e2c3f2775407ccbb7849110d52b91782a6a"
+SRC_URI[md5sum] = "215940de158b1a3d8b3f8b442c606e2f"
+SRC_URI[sha256sum] = "ca0495eb974a179dd742bfa6199d561bda1c8da4a0c5a667f21fd82aaab6bac7"
diff --git a/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb b/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
index 33c0c8a95c..c4d443bfb9 100644
--- a/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
+++ b/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
@@ -13,6 +13,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=428ca4d67a41fcd4fc3283dce9bbda7e \
PE = "1"
+inherit multilib_script
+
+MULTILIB_SCRIPTS = "${PN}:${bindir}/x11perfcomp"
+
do_install_append_class-target () {
sed -i -e 's:${HOSTTOOLS_DIR}/::g' ${D}${bindir}/x11perfcomp
}
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 eaf8eaaf74..2fa79c8438 100644
--- a/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb
+++ b/meta/recipes-graphics/xorg-app/xkbcomp_1.4.3.bb
@@ -13,5 +13,7 @@ DEPENDS += "libxkbfile"
BBCLASSEXTEND = "native"
-SRC_URI[md5sum] = "12610df19df2af3797f2c130ee2bce97"
-SRC_URI[sha256sum] = "6dd8bcb9be7e85bd7294abe261b8c7b0539d2fc93e41b80fb8bd013767ce8424"
+EXTRA_OECONF += "--disable-selective-werror"
+
+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 3529cb26ef..cb8cf4f5fa 100644
--- a/meta/recipes-graphics/xorg-app/xorg-app-common.inc
+++ b/meta/recipes-graphics/xorg-app/xorg-app-common.inc
@@ -8,10 +8,8 @@ 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 distro_features_check
+inherit autotools pkgconfig features_check
FILES_${PN} += " ${libdir}/X11/${BPN} ${datadir}/X11/app-defaults/"
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-input-synaptics/64bit_time_t_support.patch b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
new file mode 100644
index 0000000000..4bb7fb3e23
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
@@ -0,0 +1,51 @@
+This patch avoids using time field of input_event structure which is not available
+on 32bit arches supporting 64bit time_t structs, Patch makes it compatible with new
+and keeps old input.h implementation functional as well.
+
+See https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/eventcomm.c
++++ b/src/eventcomm.c
+@@ -575,10 +575,12 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
+ ev->type = EV_SYN;
+ ev->code = SYN_REPORT;
+ ev->value = 0;
+- ev->time = last_event_time;
+- } else if (ev->type == EV_SYN)
+- last_event_time = ev->time;
+-
++ ev->input_event_sec = last_event_time.tv_sec;
++ ev->input_event_usec = last_event_time.tv_usec;
++ } else if (ev->type == EV_SYN) {
++ last_event_time.tv_sec = ev->input_event_sec;
++ last_event_time.tv_usec = ev->input_event_usec;
++ }
+ return TRUE;
+ }
+
+@@ -725,7 +727,7 @@ EventReadHwState(InputInfoPtr pInfo,
+ case SYN_REPORT:
+ hw->numFingers = count_fingers(pInfo, comm);
+ if (proto_data->have_monotonic_clock)
+- hw->millis = 1000 * ev.time.tv_sec + ev.time.tv_usec / 1000;
++ hw->millis = 1000 * ev.input_event_sec + ev.input_event_usec / 1000;
+ else
+ hw->millis = GetTimeInMillis();
+ SynapticsCopyHwState(hwRet, hw);
+--- a/src/eventcomm.h
++++ b/src/eventcomm.h
+@@ -34,6 +34,11 @@
+ #include <xf86Xinput.h>
+ #include "synproto.h"
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ /* for auto-dev: */
+ #define DEV_INPUT_EVENT "/dev/input"
+ #define EVENT_DEV_NAME "event"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
index dc31890f69..388350c96e 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
@@ -10,6 +10,8 @@ advanced features of the touchpad to become available."
LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398"
+SRC_URI += "file://64bit_time_t_support.patch"
+
SRC_URI[md5sum] = "cfb79d3c975151f9bbf30b727c260cb9"
SRC_URI[sha256sum] = "7af83526eff1c76e8b9e1553b34245c203d029028d8044dd9dcf71eef1001576"
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/01_Fix-build-on-i686.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch
deleted file mode 100644
index 52916f8b4a..0000000000
--- a/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From a414d4e24461da1cb4cef8ee910bc57bab360ceb Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 6 Mar 2018 12:07:46 -0500
-Subject: [PATCH] Fix build on i686
-
-Presumably this only matters for i686 because amd64 implies sse2, but:
-
-BUILDSTDERR: In file included from gen4_vertex.c:34:
-BUILDSTDERR: gen4_vertex.c: In function 'emit_vertex':
-BUILDSTDERR: sna_render_inline.h:40:26: error: inlining failed in call to always_inline 'vertex_emit_2s': target specific option mismatch
-BUILDSTDERR: static force_inline void vertex_emit_2s(struct sna *sna, int16_t x, int16_t y)
-BUILDSTDERR: ^~~~~~~~~~~~~~
-BUILDSTDERR: gen4_vertex.c:308:25: note: called from here
-BUILDSTDERR: #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX assert(!too_large(x, y)); */
-BUILDSTDERR: ^~~~~~~~~~~~~~~~~~~~~~~~
-BUILDSTDERR: gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX'
-BUILDSTDERR: OUT_VERTEX(dstX, dstY);
-BUILDSTDERR: ^~~~~~~~~~
-
-The bug here appears to be that emit_vertex() is declared 'sse2' but
-vertex_emit_2s is merely always_inline. gcc8 decides that since you said
-always_inline you need to have explicitly cloned it for every
-permutation of targets. Merely saying inline seems to do the job of
-cloning vertex_emit_2s as much as necessary.
-
-So to reiterate: if you say always-inline, it won't, but if you just say
-maybe inline, it will. Thanks gcc, that's helpful.
-
-- ajax
-
-Patch taken from Fedora.
-
-Upstream-Status: Pending
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- src/sna/compiler.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/sna/compiler.h b/src/sna/compiler.h
-index 3c176a16..bc447c7a 100644
---- a/src/sna/compiler.h
-+++ b/src/sna/compiler.h
-@@ -32,7 +32,7 @@
- #define likely(expr) (__builtin_expect (!!(expr), 1))
- #define unlikely(expr) (__builtin_expect (!!(expr), 0))
- #define noinline __attribute__((noinline))
--#define force_inline inline __attribute__((always_inline))
-+#define force_inline inline
- #define fastcall __attribute__((regparm(3)))
- #define must_check __attribute__((warn_unused_result))
- #define constant __attribute__((const))
---
-2.16.2
-
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 bf9009bda0..161371b118 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
@@ -9,14 +9,14 @@ Infrastructure (DRI)."
LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e"
-SRCREV = "33ee0c3b21ea279e08d0863fcb2e874f0974b00e"
+SRCREV = "f66d39544bb8339130c96d282a80f87ca1606caf"
PV = "2.99.917+git${SRCPV}"
S = "${WORKDIR}/git"
SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \
- "
-
-SRC_URI_append_qemux86 = "file://01_Fix-build-on-i686.patch"
+ 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 e657c65b4c..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"
@@ -13,7 +12,9 @@ SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2"
FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so"
-inherit autotools pkgconfig distro_features_check
+XORGBUILDCLASS ??= "autotools"
+inherit ${XORGBUILDCLASS} pkgconfig features_check
+
# depends on virtual/xserver
REQUIRED_DISTRO_FEATURES = "x11"
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 cdbebcf788..7ca5c76a66 100644
--- a/meta/recipes-graphics/xorg-font/xorg-font-common.inc
+++ b/meta/recipes-graphics/xorg-font/xorg-font-common.inc
@@ -8,13 +8,11 @@ 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}"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The mkfontscale-native requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
index 9bcd1b2fa6..1ea08a6c99 100644
--- a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
@@ -13,7 +13,7 @@ SRC_URI = "file://misc"
PE = "1"
PR = "r2"
-inherit allarch distro_features_check
+inherit allarch features_check
# The font-alias requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch b/meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch
new file mode 100644
index 0000000000..3f97143082
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch
@@ -0,0 +1,56 @@
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/lib/libx11/merge_requests/33]
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From b41469c5f08b1f3365667ff3c430b104c9b8e25f Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Wed, 22 Jan 2020 17:11:23 +0000
+Subject: [PATCH libX11] cpprules.in: squash whitespace in generated files
+
+CPP is used to generate files, but as cpp reads files from the build host the
+output has a number of blank lines at the beginning which varies depending on
+what GCC and friends is used.
+
+Pathalogical example:
+
+ $ cpp -undef -traditional /dev/null
+ # 1 "/dev/null"
+ # 1 "<built-in>"
+ # 1 "<command-line>"
+ # 31 "<command-line>"
+ # 1 "/usr/include/stdc-predef.h" 1 3 4
+
+ # 17 "/usr/include/stdc-predef.h" 3 4
+
+ [ 40 blank line ]
+
+ # 32 "<command-line>" 2
+ # 1 "/dev/null"
+
+So depending on the content of stdc-predef.h and what other headers CPP will
+load, the amount of whitespace in the generates files varies. This can result in
+differences in reproducible environments, and file conflicts in multilib
+environments.
+
+As whitespace is irrelevant to these machine-readable files, extend the sed to
+just delete blank lines.
+---
+ cpprules.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/cpprules.in b/cpprules.in
+index 03d6701e..ce6b3c98 100644
+--- a/cpprules.in
++++ b/cpprules.in
+@@ -23,7 +23,8 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
+ -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
+ -e '/^[ ]*XHASH/s/XHASH/\#/' \
+ -e 's,X11_LOCALEDATADIR,$(X11_LOCALEDATADIR),g' \
+- -e '/\@\@$$/s/\@\@$$/\\/'
++ -e '/\@\@$$/s/\@\@$$/\\/' \
++ -e '/^$$/d'
+
+ .pre:
+ @$(MKDIR_P) $(@D)
+--
+2.20.1
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb b/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
index cabb84e686..3d97ad78d2 100644
--- a/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
@@ -14,7 +14,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7"
SRC_URI[md5sum] = "c5fa5a86a20e3591bed6c046498d4b8f"
SRC_URI[sha256sum] = "b289a845c189e251e0e884cc0f9269bbe97c238df3741e854ec4c17c21e473d5"
-SRC_URI += "file://0001-Drop-x11-dependencies.patch"
+SRC_URI += "file://0001-Drop-x11-dependencies.patch \
+ file://libx11-whitespace.patch"
XORG_PN = "libX11"
diff --git a/meta/recipes-graphics/xorg-lib/libx11/no-host-libtool.patch b/meta/recipes-graphics/xorg-lib/libx11/no-host-libtool.patch
deleted file mode 100644
index 56d9983b13..0000000000
--- a/meta/recipes-graphics/xorg-lib/libx11/no-host-libtool.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/lib/libx11/merge_requests/22]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From edc7680ed5a03cedb5facf14693823455e12c29c Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Tue, 6 Aug 2019 14:53:43 +0100
-Subject: [PATCH libX11] src/util/Makefile: explicitly reset LINK to not use
- libtool
-
-Simply looking at libtool redefines LINK globally to use libtool, which when
-you're trying to cross-compile to Windows can cause complications.
-
-As in src/util/ we're simply building a small binary for the build host, reset
-LINK to the automake default so that the traditional compile/link steps occur
-without libtool.
-
-Also remove -all-static from LDFLAGS as that is a libtool-specific argument
-intended to solve this problem.
-
-Closes: #100
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- src/util/Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/util/Makefile.am b/src/util/Makefile.am
-index 37314370..b7236530 100644
---- a/src/util/Makefile.am
-+++ b/src/util/Makefile.am
-@@ -7,10 +7,11 @@ AM_CFLAGS = \
- AM_CPPFLAGS = \
- -I$(top_srcdir)/include
-
-+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
- CC = @CC_FOR_BUILD@
- CPPFLAGS = @CPPFLAGS_FOR_BUILD@
- CFLAGS = @CFLAGS_FOR_BUILD@
--LDFLAGS = @LDFLAGS_FOR_BUILD@ -all-static
-+LDFLAGS = @LDFLAGS_FOR_BUILD@
- LIBS =
- EXEEXT = @EXEEXT_FOR_BUILD@
-
---
-2.20.1
-
diff --git a/meta/recipes-graphics/xorg-lib/libx11/no-host-x.patch b/meta/recipes-graphics/xorg-lib/libx11/no-host-x.patch
deleted file mode 100644
index 803f8b408c..0000000000
--- a/meta/recipes-graphics/xorg-lib/libx11/no-host-x.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From cf2ef27831173c5ed6f98be3c39caff18fd4e7f1 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Mon, 17 Jun 2019 13:36:08 -0400
-Subject: [PATCH 1/2] makekeys: Detach ourselves from X headers entirely
-
-Subsequent to a121b7b0c210efe10bf93453b29050282324c906 we are no longer
-building makekeys with enough -I/foo/bar to find the X11 headers, so if
-they're not in a system include path, things fail. Since this utility is
-only needed at build time, there's no real reason to demand the X
-headers be installed for both the build and target machines if cross-
-compiling, we can just assume a vaguely ANSI environment instead.
-
-Tested-by: Niclas Zeising <zeising@daemonic.se>
-Reviewed-by: Keith Packard <keithp@keithp.com>
-Reviewed-by: Matt Turner <mattst88@gmail.com>
----
- src/util/makekeys.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/util/makekeys.c b/src/util/makekeys.c
-index bcb5b7d5..07563315 100644
---- a/src/util/makekeys.c
-+++ b/src/util/makekeys.c
-@@ -35,8 +35,10 @@ from The Open Group.
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <stdint.h>
-+#include <inttypes.h>
-
--#include "../Xresinternal.h"
-+typedef uint32_t Signature;
-
- #define KTNUM 4000
-
---
-2.20.1
diff --git a/meta/recipes-graphics/xorg-lib/libx11.inc b/meta/recipes-graphics/xorg-lib/libx11_1.6.12.bb
index cce0cb9929..de7f1c366e 100644
--- a/meta/recipes-graphics/xorg-lib/libx11.inc
+++ b/meta/recipes-graphics/xorg-lib/libx11_1.6.12.bb
@@ -11,11 +11,10 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:"
PE = "1"
SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \
- file://no-host-libtool.patch \
- file://no-host-x.patch"
+ file://disable_tests.patch \
+ file://libx11-whitespace.patch"
-SRC_URI[md5sum] = "c5fa5a86a20e3591bed6c046498d4b8f"
-SRC_URI[sha256sum] = "b289a845c189e251e0e884cc0f9269bbe97c238df3741e854ec4c17c21e473d5"
+SRC_URI[sha256sum] = "f108227469419ac04d196df0f3b80ce1f7f65059bb54c0de811f4d8e03fd6ec7"
PROVIDES = "virtual/libx11"
@@ -37,6 +36,10 @@ CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE"
PACKAGES =+ "${PN}-xcb"
+inherit gettext
+
FILES_${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt"
FILES_${PN}-xcb += "${libdir}/libX11-xcb.so.*"
FILES_${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.6.8.bb b/meta/recipes-graphics/xorg-lib/libx11_1.6.8.bb
deleted file mode 100644
index 0d27bc2bce..0000000000
--- a/meta/recipes-graphics/xorg-lib/libx11_1.6.8.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require libx11.inc
-
-SRC_URI += "file://disable_tests.patch"
-
-inherit gettext
-
-BBCLASSEXTEND = "native nativesdk"
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 b0afc01dfd..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"
@@ -25,7 +23,7 @@ PACKAGES_DYNAMIC = "^libxcb-.*"
FILES_${PN} = "${libdir}/libxcb.so.*"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The libxau and others requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/xorg-lib/libxfont2_2.0.3.bb b/meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb
index 6994d79e89..1c9cc0a21d 100644
--- a/meta/recipes-graphics/xorg-lib/libxfont2_2.0.3.bb
+++ b/meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb
@@ -15,8 +15,8 @@ XORG_PN = "libXfont2"
BBCLASSEXTEND = "native"
-SRC_URI[md5sum] = "b7ca87dfafeb5205b28a1e91ac3efe85"
-SRC_URI[sha256sum] = "0e8ab7fd737ccdfe87e1f02b55f221f0bd4503a1c5f28be4ed6a54586bac9c4e"
+SRC_URI[md5sum] = "00516bed7ec1453d56974560379fff2f"
+SRC_URI[sha256sum] = "6d151b3368e5035efede4b6264c0fdc6662c1c99dbc2de425e3480cababc69e6"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb b/meta/recipes-graphics/xorg-lib/libxkbcommon_0.10.0.bb
index 0608fd5af8..16d9c36eae 100644
--- a/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libxkbcommon_0.10.0.bb
@@ -9,17 +9,18 @@ DEPENDS = "util-macros flex-native bison-native"
SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "3c4409058dfd203f641a563358e0187d"
-SRC_URI[sha256sum] = "60ddcff932b7fd352752d51a5c4f04f3d0403230a584df9a2e0d5ed87c486c8b"
+SRC_URI[md5sum] = "2d9ad3a46b317138b5e72a91cf105451"
+SRC_URI[sha256sum] = "57c3630cdc38fb4734cd57fa349e92244f5ae3862813e533cedbd86721a0b6f2"
UPSTREAM_CHECK_URI = "http://xkbcommon.org/"
-inherit autotools pkgconfig
+inherit meson pkgconfig
-EXTRA_OECONF = "--disable-docs"
+EXTRA_OEMESON = "-Denable-docs=false"
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxcb xkeyboard-config,"
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)}"
+PACKAGECONFIG[x11] = "-Denable-x11=true,-Denable-x11=false,libxcb xkeyboard-config,"
+PACKAGECONFIG[wayland] = "-Denable-wayland=true,-Denable-wayland=false,wayland-native wayland wayland-protocols,"
# Fix a following runtime error:
# xkbcommon: ERROR: couldn't find a Compose file for locale "C"
diff --git a/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb b/meta/recipes-graphics/xorg-lib/libxpm_3.5.13.bb
index 57b202cae3..fda8e32d2c 100644
--- a/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb
+++ b/meta/recipes-graphics/xorg-lib/libxpm_3.5.13.bb
@@ -10,7 +10,7 @@ pixmap format, which is commonly used in legacy X applications. XPM is \
an extension of the monochrome XBM bitmap specificied in the X \
protocol."
-LICENSE = "BSD"
+LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=51f4270b012ecd4ab1a164f5f4ed6cf7"
DEPENDS += "libxext libsm libxt gettext-native"
PE = "1"
@@ -21,7 +21,7 @@ PACKAGES =+ "sxpm cxpm"
FILES_cxpm = "${bindir}/cxpm"
FILES_sxpm = "${bindir}/sxpm"
-SRC_URI[md5sum] = "20f4627672edb2bd06a749f11aa97302"
-SRC_URI[sha256sum] = "fd6a6de3da48de8d1bb738ab6be4ad67f7cb0986c39bd3f7d51dd24f7854bdec"
+SRC_URI[md5sum] = "6f0ecf8d103d528cfc803aa475137afa"
+SRC_URI[sha256sum] = "9cd1da57588b6cb71450eff2273ef6b657537a9ac4d02d0014228845b935ac25"
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb b/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
index 85a48e4c58..cc45696530 100644
--- a/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
+++ b/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
@@ -11,6 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=47e508ca280fde97906eacb77892c3ac"
DEPENDS += "virtual/libx11"
+EXTRA_OECONF += "--with-shared-memory-dir=/dev/shm"
+
BBCLASSEXTEND = "native nativesdk"
SRC_URI[md5sum] = "42dda8016943dc12aff2c03a036e0937"
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/libxvmc_1.0.11.bb b/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb
index d95f809ed6..29ed0c43d1 100644
--- a/meta/recipes-graphics/xorg-lib/libxvmc_1.0.11.bb
+++ b/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb
@@ -15,5 +15,5 @@ PE = "1"
XORG_PN = "libXvMC"
-SRC_URI[md5sum] = "707175185a2e0490b8173686c657324f"
-SRC_URI[sha256sum] = "4a2e34d444a683a7c010b01b23cefe2b8043a063ce4dc6a9b855836b5262622d"
+SRC_URI[md5sum] = "3569ff7f3e26864d986d6a21147eaa58"
+SRC_URI[sha256sum] = "6b3da7977b3f7eaf4f0ac6470ab1e562298d82c4e79077765787963ab7966dcd"
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 782c1db022..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
-
- 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 82c2e73e50..5a3bb22ec3 100644
--- a/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb
+++ b/meta/recipes-graphics/xorg-lib/pixman_0.40.0.bb
@@ -1,40 +1,35 @@
SUMMARY = "Pixman: Pixel Manipulation library"
-
DESCRIPTION = "Pixman provides a library for manipulating pixel regions \
-- a set of Y-X banded rectangles, image compositing using the \
Porter/Duff model and implicit mask generation for geometric primitives \
including trapezoids, triangles, and rectangles."
+HOMEPAGE = "http://www.pixman.org"
+SECTION = "x11/libs"
+DEPENDS = "zlib"
-require xorg-lib-common.inc
+SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.gz \
+ file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \
+ "
+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+)+)"
+PE = "1"
+
LICENSE = "MIT & MIT-style & PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3 \
file://pixman/pixman-matrix.c;endline=21;md5=4a018dff3e4e25302724c88ff95c2456 \
file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \
"
-DEPENDS += "zlib libpng"
-BBCLASSEXTEND = "native nativesdk"
-PE = "1"
+inherit meson pkgconfig
-IWMMXT = "--disable-arm-iwmmxt"
-LOONGSON_MMI = "--disable-loongson-mmi"
-# If target supports neon then disable the 'simd' (ie VFPv2) fallback, otherwise disable neon.
-NEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--disable-arm-simd", "--disable-arm-neon" ,d)}"
+# These are for the tests and demos, which we don't install
+EXTRA_OEMESON = "-Dgtk=disabled -Dlibpng=disabled"
+# ld: pixman/libpixman-mmx.a(pixman-mmx.c.o):
+# linking mips:loongson_2f module with previous mips:isa64 modules
+EXTRA_OEMESON += "-Dloongson-mmi=disabled"
-EXTRA_OECONF = "--disable-gtk ${IWMMXT} ${LOONGSON_MMI} ${NEON}"
-EXTRA_OECONF_class-native = "--disable-gtk"
-EXTRA_OECONF_class-nativesdk = "--disable-gtk"
-
-SRC_URI += "\
- 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] = "16a350a8a40116ddf67632a1d2623711"
-SRC_URI[sha256sum] = "84abb7fa2541af24d9c3b34bf75d6ac60cc94ac4410061bbb295b66a29221550"
-
-REQUIRED_DISTRO_FEATURES = ""
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/xcb-util.inc b/meta/recipes-graphics/xorg-lib/xcb-util.inc
index 99d04f9d44..0e5ab70b2d 100644
--- a/meta/recipes-graphics/xorg-lib/xcb-util.inc
+++ b/meta/recipes-graphics/xorg-lib/xcb-util.inc
@@ -18,6 +18,6 @@ DEPENDS += "gperf-native"
SRC_URI = "http://xcb.freedesktop.org/dist/${BPN}-${PV}.tar.bz2"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.30.bb
index 02156ad75b..a4d67cd2ce 100644
--- a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.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] = "316753e35d3906d042c74230612eab9f"
-SRC_URI[sha256sum] = "690daec8fea63526c07620c90e6f3f10aae34e94b6db6e30906173480721901f"
+SRC_URI[sha256sum] = "095a524f7b633ed257617202d06c9c71fe020c8897b106cf0dcdd0c6e8b797d4"
SECTION = "x11/libs"
DEPENDS = "util-macros libxslt-native"
diff --git a/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc b/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
index 09df0109cb..a566eaa45e 100644
--- a/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
+++ b/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc
@@ -11,7 +11,7 @@ SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
-inherit autotools distro_features_check pkgconfig
+inherit autotools features_check pkgconfig
EXTRA_OECONF = "--disable-specs --without-groff --without-ps2pdf --without-fop"
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/xorg-proto-common.inc b/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc
deleted file mode 100644
index 7a417c9742..0000000000
--- a/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "X protocol headers: ${XORG_PN}"
-HOMEPAGE = "http://www.x.org"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
-
-SECTION = "x11/libs"
-LICENSE = "MIT-X"
-
-XORG_PN = "${BPN}"
-
-SRC_URI = "${XORG_MIRROR}/individual/proto/${XORG_PN}-${PV}.tar.bz2"
-
-S = "${WORKDIR}/${XORG_PN}-${PV}"
-
-DEPENDS = "util-macros"
-
-inherit autotools pkgconfig
-EXTRA_OECONF = "--without-fop"
-
-UNKNOWN_CONFIGURE_WHITELIST += "--without-fop --without-xmlto --with-xmlto"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
-
-# ${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-proto/xorgproto_2019.1.bb b/meta/recipes-graphics/xorg-proto/xorgproto_2019.1.bb
deleted file mode 100644
index 2c7ce2a56c..0000000000
--- a/meta/recipes-graphics/xorg-proto/xorgproto_2019.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require xorg-proto-common.inc
-
-SUMMARY = "XCalibrate: Touchscreen calibration headers"
-
-DESCRIPTION = "This package provides the headers and specification documents defining \
-the core protocol and (many) extensions for the X Window System"
-
-LICENSE = "MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676"
-
-SRC_URI[md5sum] = "802ccb9e977ba3cf94ba798ddb2898a4"
-SRC_URI[sha256sum] = "a6daaa7a6cbc8e374032d83ff7f47d41be98f1e0f4475d66a4da3aa766a0d49b"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb b/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb
new file mode 100644
index 0000000000..c71bc9038f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb
@@ -0,0 +1,27 @@
+
+SUMMARY = "X Window System unified protocol definitions"
+DESCRIPTION = "This package provides the headers and specification documents defining \
+the core protocol and (many) extensions for the X Window System"
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+SECTION = "x11/libs"
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676"
+
+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})"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf
deleted file mode 100644
index 1d3c64f620..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-
-Section "Files"
-EndSection
-
-Section "Device"
- Identifier "Graphics Controller"
- Driver "fbdev"
-EndSection
-
-Section "Monitor"
- Identifier "Generic Monitor"
- Option "DPMS"
- # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz
- Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync
- # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
- ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
- # 640x480 @ 72Hz (VESA) hsync: 37.9kHz
- ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
- # 640x480 @ 75Hz (VESA) hsync: 37.5kHz
- ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
- # 640x480 @ 85Hz (VESA) hsync: 43.3kHz
- ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
-EndSection
-
-Section "Screen"
- Identifier "Default Screen"
- Device "Graphics Controller"
- Monitor "Generic Monitor"
- DefaultDepth 16
- SubSection "Display"
- Modes "640x480"
- EndSubSection
-EndSection
-
-Section "ServerLayout"
- Identifier "Default Layout"
- Screen "Default Screen"
- Option "AllowEmptyInput" "no"
-EndSection
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf
deleted file mode 100644
index 03b94dc3af..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-
-Section "Files"
-EndSection
-
-Section "Device"
- Identifier "Graphics Controller"
- Driver "fbdev"
-EndSection
-
-Section "Monitor"
- Identifier "Generic Monitor"
- Option "DPMS"
- # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz
- Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync
- # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
- ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
- # 640x480 @ 72Hz (VESA) hsync: 37.9kHz
- ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
- # 640x480 @ 75Hz (VESA) hsync: 37.5kHz
- ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
- # 640x480 @ 85Hz (VESA) hsync: 43.3kHz
- ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
-EndSection
-
-Section "Screen"
- Identifier "Default Screen"
- Device "Graphics Controller"
- Monitor "Generic Monitor"
- DefaultDepth 16
- SubSection "Display"
- Modes "640x480"
- EndSubSection
-EndSection
-
-Section "ServerLayout"
- Identifier "Default Layout"
- Screen "Default Screen"
- Option "AllowEmptyInput" "no"
-EndSection
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index 44315f59dc..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"
@@ -24,7 +23,7 @@ S = "${WORKDIR}/${XORG_PN}-${PV}"
inherit autotools pkgconfig
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "x11"
LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess"
@@ -117,6 +116,7 @@ EXTRA_OECONF += "--with-fop=no \
--sysconfdir=/etc/X11 \
--localstatedir=/var \
--with-xkb-output=/var/lib/xkb \
+ --with-os-name=Linux \
"
OPENGL_PKGCONFIGS = "dri glx glamor dri3 xshmfence"
@@ -151,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/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch
deleted file mode 100644
index da9a4f2b25..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 2ba9510721b7a76cb7fe507449fa0ac997a4cce3 Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Mon, 1 Jul 2019 13:20:39 +0200
-Subject: [PATCH] compiler.h: Do not include sys/io.h on ARM with glibc
-
-<sys/io.h> on ARM hasn't worked for a long, long time, so it was removed
-it from glibc upstream.
-
-Remove the include to avoid a compilation failure on ARM with glibc.
-
-Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
-Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/840
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/commit/fe4cd0e7f5c58fa94db36326aadc1bd4e6d73eba]
----
- hw/xfree86/common/compiler.h | 30 ------------------------------
- 1 file changed, 30 deletions(-)
-
-diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
-index 7144c6a..2b2008b 100644
---- a/hw/xfree86/common/compiler.h
-+++ b/hw/xfree86/common/compiler.h
-@@ -758,36 +758,6 @@ inl(unsigned short port)
- return xf86ReadMmio32Le((void *) ioBase, port);
- }
-
--#elif defined(__arm__) && defined(__linux__)
--
--/* for Linux on ARM, we use the LIBC inx/outx routines */
--/* note that the appropriate setup via "ioperm" needs to be done */
--/* *before* any inx/outx is done. */
--
--#include <sys/io.h>
--
--static __inline__ void
--xf_outb(unsigned short port, unsigned char val)
--{
-- outb(val, port);
--}
--
--static __inline__ void
--xf_outw(unsigned short port, unsigned short val)
--{
-- outw(val, port);
--}
--
--static __inline__ void
--xf_outl(unsigned short port, unsigned int val)
--{
-- outl(val, port);
--}
--
--#define outb xf_outb
--#define outw xf_outw
--#define outl xf_outl
--
- #elif defined(__nds32__)
-
- /*
---
-2.22.0
-
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch
new file mode 100644
index 0000000000..4b8e43f1e4
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch
@@ -0,0 +1,23 @@
+From 84338444179cab7ede1252a11b66e3b8f657e6a4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 7 Feb 2020 20:36:45 +0100
+Subject: [PATCH] drmmode_display.c: add missing mi.h include
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ hw/xfree86/drivers/modesetting/drmmode_display.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
+index e18cc37..3445cce 100644
+--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
++++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
+@@ -46,6 +46,7 @@
+ #include "xf86Crtc.h"
+ #include "drmmode_display.h"
+ #include "present.h"
++#include "mi.h"
+
+ #include <cursorstr.h>
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.5.bb b/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.9.bb
index 3de6d22e57..c83e43ed99 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.5.bb
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.9.bb
@@ -1,13 +1,14 @@
require xserver-xorg.inc
SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \
- file://pkgconfig.patch \
- file://0001-test-xtest-Initialize-array-with-braces.patch \
- file://0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch \
- file://sdksyms-no-build-path.patch \
- "
-SRC_URI[md5sum] = "c9fc7e21e11286dbedd22c00df652130"
-SRC_URI[sha256sum] = "a81d8243f37e75a03d4f8c55f96d0bc25802be6ec45c3bfa5cb614c6d01bac9d"
+ file://pkgconfig.patch \
+ 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[sha256sum] = "e219f2e0dfe455467939149d7cd2ee53b79b512cc1d2094ae4f5c9ed9ccd3571"
# These extensions are now integrated into the server, so declare the migration
# path for in-place upgrades.
diff --git a/meta/recipes-graphics/xrestop/xrestop_0.4.bb b/meta/recipes-graphics/xrestop/xrestop_0.4.bb
index ce5df03936..c7b8716f6f 100644
--- a/meta/recipes-graphics/xrestop/xrestop_0.4.bb
+++ b/meta/recipes-graphics/xrestop/xrestop_0.4.bb
@@ -19,6 +19,6 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/xrestop/xrestop-${PV}.tar.
SRC_URI[md5sum] = "d8a54596cbaf037e62b80c4585a3ca9b"
SRC_URI[sha256sum] = "67c2fc94a7ecedbaae0d1837e82e93d1d98f4a6d759828860e552119af3ce257"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
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 9d8ba44058..c050eda49e 100644
--- a/meta/recipes-kernel/cryptodev/cryptodev.inc
+++ b/meta/recipes-kernel/cryptodev/cryptodev.inc
@@ -4,9 +4,8 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux \
- file://0001-Fix-module-loading-with-Linux-v5.0-rc5.patch \
"
-SRCREV = "fd8b15ef1c8398a69a37932ee48c74ab40329a29"
+SRCREV = "fabe5989a3dc9fba0cd0a40b612247cdde351c01"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-kernel/cryptodev/files/0001-Fix-module-loading-with-Linux-v5.0-rc5.patch b/meta/recipes-kernel/cryptodev/files/0001-Fix-module-loading-with-Linux-v5.0-rc5.patch
deleted file mode 100644
index 34ec87272f..0000000000
--- a/meta/recipes-kernel/cryptodev/files/0001-Fix-module-loading-with-Linux-v5.0-rc5.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-Upstream-Status: Backport [https://github.com/cryptodev-linux/cryptodev-linux/commit/f971e0c]
-
-Backport patch from upstream to fix module cryptodev loading error.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-From f971e0cd4a0ebe59fb2e8e17240399bf6901b09b Mon Sep 17 00:00:00 2001
-From: "Derald D. Woods" <woods.technical@gmail.com>
-Date: Sun, 10 Feb 2019 13:22:19 -0600
-Subject: [PATCH] Fix module loading with Linux v5.0-rc5
-
-This commit fixes this module load error:
-[...]
-[ 29.112091] cryptodev: loading out-of-tree module taints kernel.
-[ 29.128906] cryptodev: Unknown symbol crypto_givcipher_type (err -2)
-[ 29.188842] cryptodev: Unknown symbol crypto_givcipher_type (err -2)
-modprobe: can't load module cryptodev (extra/cryptodev.ko): unknown symbol in module, or unknown parameter
-[...]
-
-Upstream Linux support for unused GIVCIPHER, and others, was dropped here:
-
-c79b411eaa72 (crypto: skcipher - remove remnants of internal IV generators)
-
-Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
----
- cryptlib.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/cryptlib.c b/cryptlib.c
-index 6e66698..4a87037 100644
---- a/cryptlib.c
-+++ b/cryptlib.c
-@@ -38,7 +38,9 @@
- #include "cryptodev_int.h"
- #include "cipherapi.h"
-
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0))
- extern const struct crypto_type crypto_givcipher_type;
-+#endif
-
- static void cryptodev_complete(struct crypto_async_request *req, int err)
- {
-@@ -157,8 +159,11 @@ int cryptodev_cipher_init(struct cipher_data *out, const char *alg_name,
-
- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0))
- tfm = crypto_skcipher_tfm(out->async.s);
-- if ((tfm->__crt_alg->cra_type == &crypto_ablkcipher_type) ||
-- (tfm->__crt_alg->cra_type == &crypto_givcipher_type)) {
-+ if ((tfm->__crt_alg->cra_type == &crypto_ablkcipher_type)
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0))
-+ || (tfm->__crt_alg->cra_type == &crypto_givcipher_type)
-+#endif
-+ ) {
- struct ablkcipher_alg *alg;
-
- alg = &tfm->__crt_alg->cra_ablkcipher;
---
-2.20.0
-
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 8ca7193c8c..ea33732a3e 100644
--- a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
+++ b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
@@ -1,24 +1,27 @@
SUMMARY = "Tools for managing Yocto Project style branched kernels"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249624278c3e343e501"
+LIC_FILES_CHKSUM = "file://tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249624278c3e343e501"
DEPENDS = "git-native"
-SRCREV = "bb6df0ef2365689cd3df6f76a8838cddae0d9343"
+SRCREV = "df4390b18a500a1a7d4695e1856971f8e36ce517"
PR = "r12"
PV = "0.2+git${SRCPV}"
inherit native
SRC_URI = "git://git.yoctoproject.org/yocto-kernel-tools.git"
-S = "${WORKDIR}"
+S = "${WORKDIR}/git"
UPSTREAM_CHECK_COMMITS = "1"
+do_configure() {
+ :
+}
+
do_compile() {
:
}
do_install() {
- cd ${S}/git
- make DESTDIR=${D}${bindir} install
+ oe_runmake DESTDIR=${D}${bindir} install
}
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/0007-kexec-un-break-the-build-on-32-bit-x86.patch b/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch
new file mode 100644
index 0000000000..b91608e52b
--- /dev/null
+++ b/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch
@@ -0,0 +1,42 @@
+From d294c5039753a36506949ba5dc782a4c0b307b74 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 20 Dec 2019 17:21:08 +0100
+Subject: [PATCH] kexec: un-break the build on 32 bit x86
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ kexec/arch/i386/Makefile | 1 +
+ kexec/arch/i386/kexec-x86.h | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/kexec/arch/i386/Makefile b/kexec/arch/i386/Makefile
+index 105cefd..25df57a 100644
+--- a/kexec/arch/i386/Makefile
++++ b/kexec/arch/i386/Makefile
+@@ -11,6 +11,7 @@ i386_KEXEC_SRCS += kexec/arch/i386/kexec-beoboot-x86.c
+ i386_KEXEC_SRCS += kexec/arch/i386/kexec-nbi.c
+ i386_KEXEC_SRCS += kexec/arch/i386/x86-linux-setup.c
+ i386_KEXEC_SRCS += kexec/arch/i386/crashdump-x86.c
++i386_KEXEC_SRCS += kexec/arch/i386/kexec-mb2-x86.c
+
+ dist += kexec/arch/i386/Makefile $(i386_KEXEC_SRCS) \
+ kexec/arch/i386/crashdump-x86.h \
+diff --git a/kexec/arch/i386/kexec-x86.h b/kexec/arch/i386/kexec-x86.h
+index 1b58c3b..d6b10c0 100644
+--- a/kexec/arch/i386/kexec-x86.h
++++ b/kexec/arch/i386/kexec-x86.h
+@@ -56,9 +56,13 @@ struct arch_options_t {
+ };
+
+ int multiboot_x86_probe(const char *buf, off_t len);
++int multiboot2_x86_probe(const char *buf, off_t len);
+ int multiboot_x86_load(int argc, char **argv, const char *buf, off_t len,
+ struct kexec_info *info);
++int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len,
++ struct kexec_info *info);
+ void multiboot_x86_usage(void);
++void multiboot2_x86_usage(void);
+
+ int elf_x86_probe(const char *buf, off_t len);
+ int elf_x86_load(int argc, char **argv, const char *buf, off_t len,
diff --git a/meta/recipes-kernel/kexec/kexec-tools_2.0.19.bb b/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb
index c3f74359f1..1e81ecc2c7 100644
--- a/meta/recipes-kernel/kexec/kexec-tools_2.0.19.bb
+++ b/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb
@@ -10,19 +10,21 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \
DEPENDS = "zlib xz"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \
- file://kdump \
- file://kdump.conf \
- file://kdump.service \
- file://0001-powerpc-change-the-memory-size-limit.patch \
- file://0002-purgatory-Pass-r-directly-to-linker.patch \
- file://0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch \
- file://0004-x86_64-Add-support-to-build-kexec-tools-with-x32-ABI.patch \
- file://0005-Disable-PIE-during-link.patch \
- file://0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch \
-"
-
-SRC_URI[md5sum] = "052458f0a35c2a3b0d2302caa3318e9f"
-SRC_URI[sha256sum] = "913c8dee918e5855a4ba60d609371390978144b4c8d15d6446ca0057b7bc5e58"
+ file://kdump \
+ file://kdump.conf \
+ file://kdump.service \
+ file://0001-powerpc-change-the-memory-size-limit.patch \
+ file://0002-purgatory-Pass-r-directly-to-linker.patch \
+ file://0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch \
+ file://0004-x86_64-Add-support-to-build-kexec-tools-with-x32-ABI.patch \
+ 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"
+SRC_URI[sha256sum] = "cb16d79818e0c9de3bb3e33ede5677c34a1d28c646379c7ab44e0faa3eb57a16"
inherit autotools update-rc.d systemd
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_20190815.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb
index 518638806f..5c9d4c3e04 100644
--- a/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.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 \
@@ -66,7 +67,7 @@ LICENSE = "\
LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \
file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \
- file://LICENSE.amdgpu;md5=ab515ef6495ab5c5a3b08ab2db62df11 \
+ file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \
file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \
file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \
@@ -88,6 +89,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \
file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \
file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \
+ file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \
file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \
file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \
file://LICENCE.iwlwifi_firmware;md5=3fd842911ea93c29cd32679aa23e1c88 \
@@ -98,6 +100,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \
file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \
file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \
+ file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \
file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \
file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \
file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \
@@ -123,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=37a01e379219d1e06dbccfa90a8fc0ad \
+ file://WHENCE;md5=4d229f79f8770b5b2c4aac655b9fabef \
"
# These are not common licenses, set NO_GENERIC_LICENSE for them
@@ -153,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"
@@ -192,13 +196,9 @@ NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
PE = "1"
-SRCREV = "07b925b450bfb4cf3e141c612ec5b104658cd020"
+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
@@ -209,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/
}
@@ -273,6 +254,7 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
${PN}-bcm4358 \
${PN}-bcm43602 \
${PN}-bcm4366b \
+ ${PN}-bcm4366c \
${PN}-bcm4371 \
${PN}-bcm4373 \
${PN}-bcm43xx \
@@ -296,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 \
"
@@ -530,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* \
"
@@ -571,7 +564,7 @@ FILES_${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw
FILES_${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin"
FILES_${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin"
FILES_${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin"
-FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.bin"
+FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*"
FILES_${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin"
FILES_${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin"
FILES_${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin"
@@ -582,8 +575,8 @@ FILES_${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin
FILES_${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \
${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \
"
-FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.bin"
-FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.bin"
+FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*"
+FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.*"
FILES_${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin"
FILES_${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin"
FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.bin"
@@ -594,6 +587,7 @@ FILES_${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.
${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \
"
FILES_${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin"
+FILES_${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin"
FILES_${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin"
# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE_\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done
@@ -647,6 +641,8 @@ LICENSE_${PN}-bcm43602 = "Firmware-broadcom_bcm43xx"
RDEPENDS_${PN}-bcm43602 += "${PN}-broadcom-license"
LICENSE_${PN}-bcm4366b = "Firmware-broadcom_bcm43xx"
RDEPENDS_${PN}-bcm4366b += "${PN}-broadcom-license"
+LICENSE_${PN}-bcm4366c = "Firmware-broadcom_bcm43xx"
+RDEPENDS_${PN}-bcm4366c += "${PN}-broadcom-license"
LICENSE_${PN}-bcm4371 = "Firmware-broadcom_bcm43xx"
RDEPENDS_${PN}-bcm4371 += "${PN}-broadcom-license"
@@ -656,11 +652,11 @@ LICENSE_${PN}-cypress-license = "Firmware-cypress"
FILES_${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress"
FILES_${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd"
-FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.bin"
-FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.bin"
-FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.bin"
+FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.*"
+FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.*"
+FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.*"
FILES_${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin"
-FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.bin"
+FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.*"
FILES_${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \
${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \
"
@@ -812,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"
@@ -820,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"
@@ -838,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"
@@ -851,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} = "\
@@ -872,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 7f838f623e..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
}
@@ -91,4 +105,4 @@ RDEPENDS_${PN}-dev = ""
RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
INHIBIT_DEFAULT_DEPS = "1"
-DEPENDS += "unifdef-native bison-native"
+DEPENDS += "unifdef-native bison-native rsync-native"
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/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch
index 78ebd31e66..54528b6e6a 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch
@@ -24,18 +24,15 @@ Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.h
scripts/headers_install.sh | 1 +
1 file changed, 1 insertion(+)
-diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
-index 593f8879c641..fe1d3fc0d33a 100755
---- a/scripts/headers_install.sh
-+++ b/scripts/headers_install.sh
-@@ -38,6 +38,7 @@ do
- -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
- -e 's/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g' \
- -e 's@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @' \
-+ -e ':1;s/(#(if|elif)(.*[^A-Za-z0-9_])defined\([[:space:]]*)_UAPI/\1/;t1' \
- "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || exit 1
- scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \
- > "$OUTDIR/$FILE"
---
-2.5.0
-
+Index: linux-5.4/scripts/headers_install.sh
+===================================================================
+--- linux-5.4.orig/scripts/headers_install.sh
++++ linux-5.4/scripts/headers_install.sh
+@@ -36,6 +36,7 @@
+ s/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g
+ s/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g
+ s@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @
++ :1;s/(#(if|elif)(.*[^A-Za-z0-9_])defined\([[:space:]]*)_UAPI/\1/;t1
+ ' $INFILE > $TMPFILE || exit 1
+
+ scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $TMPFILE > $OUTFILE
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.2.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.8.bb
index 9d18df76c6..d76a8a36f8 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.2.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] = "ddf994de00d7b18395886dd9b30b9262"
-SRC_URI[sha256sum] = "54ad66f672e1a831b574f5e704e8a05f1e6180a8245d4bdd811208a6cb0ac1e7"
+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 b68d945a8f..aa8e162f4f 100644
--- a/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -78,7 +78,7 @@ do_install() {
cp Module.markers $kerneldir/build
fi
- cp .config $kerneldir/build
+ cp -a .config $kerneldir/build
# This scripts copy blow up QA, so for now, we require a more
# complex 'make scripts' to restore these, versus copying them
@@ -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
@@ -128,11 +133,12 @@ do_install() {
# extra files, just in case
cp -a --parents tools/objtool/* $kerneldir/build/
- cp -a --parents tools/lib/str_error_r.c $kerneldir/build/
- cp -a --parents tools/lib/string.c $kerneldir/build/
+ cp -a --parents tools/lib/* $kerneldir/build/
cp -a --parents tools/lib/subcmd/* $kerneldir/build/
cp -a --parents tools/include/* $kerneldir/build/
+
+ cp -a --parents $(find tools/arch/${ARCH}/ -type f) $kerneldir/build/
fi
if [ "${ARCH}" = "arm64" ]; then
@@ -146,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
@@ -185,19 +191,21 @@ do_install() {
cp -a --parents tools/include/tools/be_byteshift.h $kerneldir/build/
# required for generate missing syscalls prepare phase
- cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $kerneldir/build
+ 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 2>/dev/null || :
if [ "${ARCH}" = "x86" ]; then
# files for 'make prepare' to succeed with kernel-devel
- cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $kerneldir/build/
- cp -a --parents arch/x86/entry/syscalls/syscalltbl.sh $kerneldir/build/
- cp -a --parents arch/x86/entry/syscalls/syscallhdr.sh $kerneldir/build/
- cp -a --parents arch/x86/entry/syscalls/syscall_64.tbl $kerneldir/build/
+ cp -a --parents $(find arch/x86 -type f -name "syscall_32.tbl") $kerneldir/build/
+ cp -a --parents $(find arch/x86 -type f -name "syscalltbl.sh") $kerneldir/build/
+ cp -a --parents $(find arch/x86 -type f -name "syscallhdr.sh") $kerneldir/build/
+ cp -a --parents $(find arch/x86 -type f -name "syscall_64.tbl") $kerneldir/build/
cp -a --parents arch/x86/tools/relocs_32.c $kerneldir/build/
cp -a --parents arch/x86/tools/relocs_64.c $kerneldir/build/
cp -a --parents arch/x86/tools/relocs.c $kerneldir/build/
cp -a --parents arch/x86/tools/relocs_common.c $kerneldir/build/
cp -a --parents arch/x86/tools/relocs.h $kerneldir/build/
+ cp -a --parents arch/x86/tools/gen-insn-attr-x86.awk $kerneldir/build/ 2>/dev/null || :
cp -a --parents arch/x86/purgatory/purgatory.c $kerneldir/build/
# 4.18 + have unified the purgatory files, so we ignore any errors if
@@ -213,6 +221,10 @@ do_install() {
cp -a --parents arch/x86/boot/string.c $kerneldir/build/
cp -a --parents arch/x86/boot/compressed/string.c $kerneldir/build/ 2>/dev/null || :
cp -a --parents arch/x86/boot/ctype.h $kerneldir/build/
+
+ # objtool requires these files
+ cp -a --parents arch/x86/lib/inat.c $kerneldir/build/ 2>/dev/null || :
+ cp -a --parents arch/x86/lib/insn.c $kerneldir/build/ 2>/dev/null || :
fi
if [ "${ARCH}" = "mips" ]; then
@@ -242,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)
@@ -265,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 163f280560..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.3-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"
@@ -48,7 +48,7 @@ KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/ta
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"
-KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
+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_VERSION_SANITY_SKIP = "1"
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
index e3fe54441f..13f7246f46 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
@@ -1,4 +1,4 @@
-KBRANCH ?= "v5.2/standard/preempt-rt/base"
+KBRANCH ?= "v5.4/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "0a9f6ee2443b54c614107728ca76485916010023"
-SRCREV_meta ?= "b867b78b5019ae455af97dec7794cff7527d7624"
+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.2;destsuffix=${KMETA}"
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.2.17"
+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_4.19.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb
index 1edcd7edae..3d6d750c86 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb
@@ -1,4 +1,4 @@
-KBRANCH ?= "v4.19/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 ?= "02f0c38dd20819c0e9d279e3b1e95280101ea8ab"
-SRCREV_meta ?= "a7cb57afb9fb9787079c28a1028d797632105e56"
+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-4.19;destsuffix=${KMETA}"
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}"
-LINUX_VERSION ?= "4.19.72"
+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.2.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
index f3f546866b..00e1b65782 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
@@ -1,12 +1,12 @@
-KBRANCH ?= "v5.2/standard/tiny/base"
-KBRANCH_qemuarm ?= "v5.2/standard/tiny/arm-versatile-926ejs"
+KBRANCH ?= "v5.4/standard/tiny/base"
+KBRANCH_qemuarm ?= "v5.4/standard/tiny/arm-versatile-926ejs"
LINUX_KERNEL_TYPE = "tiny"
KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.2.17"
+LINUX_VERSION ?= "5.4.69"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,14 +15,14 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine_qemuarm ?= "aaa66d462ec17345dadd69b1ec0f3fcc83e82536"
-SRCREV_machine ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_meta ?= "b867b78b5019ae455af97dec7794cff7527d7624"
+SRCREV_machine_qemuarm ?= "58f39df46d9daf12a095ffe225032ec325612960"
+SRCREV_machine ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c"
+SRCREV_meta ?= "7f765dcb29003bafc9c0ac770147940be6c420b2"
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.4;destsuffix=${KMETA}"
COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb
index 446bce3a82..764264f637 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb
@@ -1,13 +1,13 @@
-KBRANCH ?= "v4.19/standard/tiny/base"
-KBRANCH_qemuarm ?= "v4.19/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 ?= "4.19.72"
-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 ?= "283b870cef5f79a6f07465828a51f27a6aed4c50"
-SRCREV_machine ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_meta ?= "a7cb57afb9fb9787079c28a1028d797632105e56"
+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-4.19;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 f191946f2a..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
@@ -39,22 +39,6 @@ KERNEL_FEATURES_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'numa', 'fea
# and it can be specific to the machine or shared
# KMACHINE = "UNDEFINED"
-# The distro or local.conf should set this, but if nobody cares...
-LINUX_KERNEL_TYPE ??= "standard"
-
-# KMETA ?= ""
-KBRANCH ?= "master"
-KMACHINE ?= "${MACHINE}"
-SRCREV_FORMAT ?= "meta_machine"
-
-# LEVELS:
-# 0: no reporting
-# 1: report options that are specified, but not in the final config
-# 2: report options that are not hardware related, but set by a BSP
-KCONF_AUDIT_LEVEL ?= "1"
-KCONF_BSP_AUDIT_LEVEL ?= "0"
-KMETA_AUDIT ?= "yes"
-
LINUX_VERSION_EXTENSION ??= "-yocto-${LINUX_KERNEL_TYPE}"
# Pick up shared functions
@@ -69,10 +53,5 @@ do_install_append(){
fi
}
-# extra tasks
-addtask kernel_version_sanity_check after do_kernel_metadata do_kernel_checkout before do_compile
-addtask validate_branches before do_patch after do_kernel_checkout
-addtask kernel_configcheck after do_configure before do_compile
-
# enable kernel-sample for oeqa/runtime/cases's ksample.py test
KERNEL_FEATURES_append_qemuall=" features/kernel-sample/kernel-sample.scc"
diff --git a/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/meta/recipes-kernel/linux/linux-yocto_4.19.bb
deleted file mode 100644
index 96debc42d8..0000000000
--- a/meta/recipes-kernel/linux/linux-yocto_4.19.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-KBRANCH ?= "v4.19/standard/base"
-
-require recipes-kernel/linux/linux-yocto.inc
-
-# board specific branches
-KBRANCH_qemuarm ?= "v4.19/standard/arm-versatile-926ejs"
-KBRANCH_qemuarm64 ?= "v4.19/standard/qemuarm64"
-KBRANCH_qemumips ?= "v4.19/standard/mti-malta32"
-KBRANCH_qemuppc ?= "v4.19/standard/qemuppc"
-KBRANCH_qemux86 ?= "v4.19/standard/base"
-KBRANCH_qemux86-64 ?= "v4.19/standard/base"
-KBRANCH_qemumips64 ?= "v4.19/standard/mti-malta64"
-
-SRCREV_machine_qemuarm ?= "b0be447bc9053d07f3438999778bd077679ae756"
-SRCREV_machine_qemuarm64 ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_machine_qemumips ?= "3c8b21d0a335b5f418682969448574dfd0011f02"
-SRCREV_machine_qemuppc ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_machine_qemux86 ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_machine_qemux86-64 ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_machine_qemumips64 ?= "2854797711fee4061fb760c2b6e0e3d3135195ab"
-SRCREV_machine ?= "2d7c98a6748a64ca36fd1d2e60c517b16326df61"
-SRCREV_meta ?= "a7cb57afb9fb9787079c28a1028d797632105e56"
-
-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-4.19;destsuffix=${KMETA} \
- "
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "4.19.72"
-
-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"
-
-# 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.2.bb b/meta/recipes-kernel/linux/linux-yocto_5.2.bb
deleted file mode 100644
index 1a2c3ffcd2..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 ?= "47b80ef7bd932830f299ed76e2302df631ae4fbe"
-SRCREV_machine_qemuarm64 ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemumips ?= "45ff64cb3f87c38db6f46353ea93005d049b0cf6"
-SRCREV_machine_qemuppc ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemuriscv64 ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemux86 ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemux86-64 ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_machine_qemumips64 ?= "ea0fd387a459803ac60e9b8a1729f2fc7d3215f1"
-SRCREV_machine ?= "255a750d28cd45df8923c3aba1e82c322757a50d"
-SRCREV_meta ?= "b867b78b5019ae455af97dec7794cff7527d7624"
-
-# 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.17"
-
-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
new file mode 100644
index 0000000000..bcc5003268
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto_5.4.bb
@@ -0,0 +1,54 @@
+KBRANCH ?= "v5.4/standard/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# board specific branches
+KBRANCH_qemuarm ?= "v5.4/standard/arm-versatile-926ejs"
+KBRANCH_qemuarm64 ?= "v5.4/standard/qemuarm64"
+KBRANCH_qemumips ?= "v5.4/standard/mti-malta32"
+KBRANCH_qemuppc ?= "v5.4/standard/qemuppc"
+KBRANCH_qemuriscv64 ?= "v5.4/standard/base"
+KBRANCH_qemux86 ?= "v5.4/standard/base"
+KBRANCH_qemux86-64 ?= "v5.4/standard/base"
+KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
+
+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"
+
+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.4;destsuffix=${KMETA}"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+LINUX_VERSION ?= "5.4.69"
+
+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 = "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/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/babeltrace/run-ptest b/meta/recipes-kernel/lttng/babeltrace/run-ptest
new file mode 100755
index 0000000000..f4b7ce11e2
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace/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 top_srcdir=$PWD top_builddir=$PWD"
+
+exec make -C tests -k -s $makeargs $target 2>/dev/null
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.7.bb b/meta/recipes-kernel/lttng/babeltrace_1.5.7.bb
deleted file mode 100644
index 05ef6d099c..0000000000
--- a/meta/recipes-kernel/lttng/babeltrace_1.5.7.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Babeltrace - 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://www.efficios.com/babeltrace/"
-BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace"
-LICENSE = "MIT & GPLv2"
-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"
-SRCREV = "d4014aeef4b89a4aaab1af42d7b0d143d62da0ff"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)$"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-debug-info"
-
-ASNEEDED = ""
diff --git a/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb b/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb
new file mode 100644
index 0000000000..9e5d3a7a97
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb
@@ -0,0 +1,98 @@
+SUMMARY = "Babeltrace - 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"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa"
+
+DEPENDS = "glib-2.0 util-linux popt bison-native flex-native"
+
+SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.5 \
+ file://run-ptest \
+ "
+SRCREV = "054a54ae10b01a271afc4f19496c041b10fb414c"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>1(\.\d+)+)$"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig ptest
+
+EXTRA_OECONF = "--disable-debug-info"
+
+ASNEEDED = ""
+
+RDEPENDS_${PN}-ptest += "bash gawk"
+
+addtask do_patch_ptest_path after do_patch before do_configure
+do_patch_ptest_path () {
+ for f in $(grep -l -r abs_top_srcdir ${S}/tests); do
+ sed -i 's:\@abs_top_srcdir\@:${PTEST_PATH}:' ${f}
+ done
+
+ for f in $(grep -l -r abs_top_builddir ${S}/tests); do
+ sed -i 's:\@abs_top_builddir\@:${PTEST_PATH}:' ${f}
+ done
+ for f in $(grep -l -r GREP ${S}/tests); do
+ sed -i 's:\@GREP\@:grep:' ${f}
+ done
+
+ for f in $(grep -l -r SED ${S}/tests); do
+ sed -i 's:\@SED\@:sed:' ${f}
+ done
+}
+
+do_compile_ptest () {
+ make -C tests all
+}
+
+do_install_ptest () {
+ # Copy required files from source directory
+ for f in config/tap-driver.sh config/test-driver; do
+ install -D "${S}/$f" "${D}${PTEST_PATH}/$f"
+ done
+ install -d "$f" "${D}${PTEST_PATH}/tests/ctf-traces/"
+ cp -a ${S}/tests/ctf-traces/* ${D}${PTEST_PATH}/tests/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
+
+ install -D ${B}/formats/ctf/metadata/.libs/ctf-parser-test \
+ ${D}${PTEST_PATH}/formats/ctf/metadata/ctf-parser-test
+
+ # 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 '/$(check_SCRIPTS)/s/^/#/' \
+ -e '/%: %.in/,/^$/d' \
+ -e '/echo "Making $$target in $$subdir"; \\/d' \
+ -e 's/^srcdir = \(.*\)/srcdir = ./' \
+ -e 's/^builddir = \(.*\)/builddir = ./' \
+ -e 's/^all-am:.*/all-am:/' \
+ {} +
+
+ # Remove path to babeltrace.
+ for f in $(grep -l -r "^BABELTRACE_BIN" ${D}${PTEST_PATH}); do
+ sed -i 's:^BABELTRACE_BIN.*:BABELTRACE_BIN=/usr/bin/babeltrace:' ${f}
+ done
+ for f in $(grep -l -r "^BTBIN" ${D}${PTEST_PATH}); do
+ sed -i 's:^BTBIN.*:BTBIN=/usr/bin/babeltrace:' ${f}
+ done
+}
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.10.11.bb b/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
index 789a3be850..e36b327a08 100644
--- a/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb
+++ b/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
@@ -2,22 +2,28 @@ SECTION = "devel"
SUMMARY = "Linux Trace Toolkit KERNEL MODULE"
DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules"
LICENSE = "LGPLv2.1 & GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3 \
- file://gpl-2.0.txt;md5=751419260aa954499f7abaabaa882bbe \
- file://lgpl-2.1.txt;md5=243b725d71bb5df4a1e5920b344b86ad \
- "
+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] = "c618fb646514dfc1bf910cfd7cda4256"
-SRC_URI[sha256sum] = "7f91e39b2e8e46d8bbba2b4c8c1614f1fb380611cd1a1fccc1d1859be26112f1"
+SRC_URI[sha256sum] = "df50bc3bd58679705714f17721acf619a8b0cedc694f8a97052aa5099626feca"
export INSTALL_MOD_DIR="kernel/lttng-modules"
@@ -34,13 +40,13 @@ python do_package_prepend() {
}
BBCLASSEXTEND = "devupstream:target"
-LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3"
+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.10 \
+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 = "624aca5d7507fbd11ea4a1a474c3aa1031bd9a31"
-PV_class-devupstream = "2.10.10+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-Skip-when-testapp-is-not-present.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-Skip-when-testapp-is-not-present.patch
deleted file mode 100644
index 6c9f7e462c..0000000000
--- a/meta/recipes-kernel/lttng/lttng-tools/0001-Skip-when-testapp-is-not-present.patch
+++ /dev/null
@@ -1,610 +0,0 @@
-From 95c27e6acceaeda55c729b9e92e594322adef13f Mon Sep 17 00:00:00 2001
-From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Date: Wed, 3 Apr 2019 16:31:18 -0400
-Subject: [PATCH lttng-tools] Skip when testapp is not present
-
-We expect lttng-ust do be present, this is a wrong assumptions.
-
-This is a quick fix. The real fix is to either detect at runtime
-lttng-ust support or at build time (HAVE_LIBLTTNG_UST_CTL).
-
-This prevent hang for make check done on a build configured with
---without-lttng-ust.
-
-Upstream-Status: Inappropriate [other]
-Reason: This patch is inappropriate for upstream for 2.10 stable release
-since we do not backport "superficial" fix to the test suite. We do
-backport when a test is broken. The fact that on --without-lttng-ust
-hang is not a "broken" test per-see. Still, a variation of this fix will
-be upstreamed in our master branch and possibly 2.11. The upstreamed
-version will split the test in kernel/ust test and skip them at the
-build system level. This patch is more succinct.
-
-Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
----
- tests/regression/tools/crash/test_crash | 4 ++
- .../regression/tools/exclusion/test_exclusion | 4 ++
- .../tools/filtering/test_valid_filter | 21 ++++--
- tests/regression/tools/health/test_thread_ok | 29 +++++---
- tests/regression/tools/live/Makefile.am | 2 -
- tests/regression/tools/live/test_lttng_ust | 4 ++
- tests/regression/tools/live/test_ust | 4 ++
- .../tools/live/test_ust_tracefile_count | 4 ++
- tests/regression/tools/mi/test_mi | 4 ++
- .../notification/test_notification_multi_app | 18 +++--
- .../tools/notification/test_notification_ust | 4 ++
- .../regression/tools/regen-metadata/test_ust | 2 +-
- .../regression/tools/regen-statedump/test_ust | 2 +-
- .../regression/tools/save-load/test_autoload | 7 ++
- tests/regression/tools/save-load/test_load | 8 +++
- tests/regression/tools/save-load/test_save | 7 ++
- .../regression/tools/snapshots/test_ust_fast | 2 +-
- .../regression/tools/snapshots/test_ust_long | 2 +-
- .../tools/snapshots/test_ust_streaming | 2 +-
- tests/regression/tools/snapshots/ust_test | 2 +-
- .../streaming/test_high_throughput_limits | 2 +-
- tests/regression/tools/streaming/test_ust | 2 +-
- .../tracefile-limits/test_tracefile_count | 2 +-
- .../tracefile-limits/test_tracefile_size | 2 +-
- .../tools/wildcard/test_event_wildcard | 67 ++++++++++---------
- 25 files changed, 147 insertions(+), 60 deletions(-)
-
-diff --git a/tests/regression/tools/crash/test_crash b/tests/regression/tools/crash/test_crash
-index 8c62c513d..3cbe97688 100755
---- a/tests/regression/tools/crash/test_crash
-+++ b/tests/regression/tools/crash/test_crash
-@@ -35,6 +35,10 @@ NUM_TESTS=77
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- # Global declaration for simplification
- LTTNG_CRASH=$TESTDIR/../src/bin/lttng-crash/$CRASH_BIN
-
-diff --git a/tests/regression/tools/exclusion/test_exclusion b/tests/regression/tools/exclusion/test_exclusion
-index 949cd41df..42e4d72fb 100755
---- a/tests/regression/tools/exclusion/test_exclusion
-+++ b/tests/regression/tools/exclusion/test_exclusion
-@@ -30,6 +30,10 @@ NUM_TESTS=149
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- function enable_ust_lttng_all_event_exclusion()
- {
- sess_name="$1"
-diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter
-index 163b32182..1e8da630b 100755
---- a/tests/regression/tools/filtering/test_valid_filter
-+++ b/tests/regression/tools/filtering/test_valid_filter
-@@ -418,12 +418,18 @@ issue_356_filter+="intfield > 4 && intfield > 5 && "
- issue_356_filter+="intfield > 6 && intfield > 7 && "
- issue_356_filter+="intfield > 8 || intfield > 0"
-
-+BIN_NAME="gen-ust-events"
-+
-+skip_ust=1
-+if [ ! -x "$CURDIR/$BIN_NAME" ]; then
-+ skip_ust=0
-+ skip 0 "No UST nevents binary detected." $NUM_UST_TESTS
-+fi
-+
- start_lttng_sessiond
-
- ### UST TESTS
-
--BIN_NAME="gen-ust-events"
--
- KIRK_KRAUSS_TESTS=(
- # the tests below were written by Kirk Krauss in this article:
- # http://www.drdobbs.com/architecture-and-design/matching-wildcards-an-empirical-way-to-t/240169123
-@@ -897,9 +903,6 @@ UST_STR_FILTERS=(
- END
- )
-
--if [ ! -x "$CURDIR/$BIN_NAME" ]; then
-- BAIL_OUT "No UST nevents binary detected."
--fi
-
- IFS="$OLDIFS"
-
-@@ -910,6 +913,10 @@ i=0
- while true; do
- validator="${UST_FILTERS[$i]}"
-
-+ if [ $skip_ust -eq 0 ]; then
-+ break
-+ fi
-+
- if [ "$validator" = END ]; then
- break
- fi
-@@ -929,6 +936,10 @@ i=0
- while true; do
- validator="${UST_STR_FILTERS[$i]}"
-
-+ if [ $skip_ust -eq 0 ]; then
-+ break
-+ fi
-+
- if [ "$validator" = END ]; then
- break
- fi
-diff --git a/tests/regression/tools/health/test_thread_ok b/tests/regression/tools/health/test_thread_ok
-index e81d6ed24..849b7e71f 100755
---- a/tests/regression/tools/health/test_thread_ok
-+++ b/tests/regression/tools/health/test_thread_ok
-@@ -27,6 +27,9 @@ CHANNEL_NAME="testchan"
- HEALTH_CHECK_BIN="health_check"
- NUM_TESTS=17
- SLEEP_TIME=30
-+TESTAPP_PATH="$TESTDIR/utils/testapp"
-+TESTAPP_NAME="gen-ust-events"
-+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
-
- source $TESTDIR/utils/utils.sh
-
-@@ -76,15 +79,19 @@ function test_thread_ok
- $CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH}
- report_errors
-
-- diag "With UST consumer daemons"
-- create_lttng_session_no_output $SESSION_NAME
-- enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $CHANNEL_NAME
-- start_lttng_tracing_ok $SESSION_NAME
-- destroy_lttng_session_ok $SESSION_NAME
-+ skip $skip_ust "Ust does not seems to be supported" "5" ||
-+ {
-+ diag "With UST consumer daemons"
-+ create_lttng_session_no_output $SESSION_NAME
-+ enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $CHANNEL_NAME
-+ start_lttng_tracing_ok $SESSION_NAME
-+ destroy_lttng_session_ok $SESSION_NAME
-
-- # Check health status
-- $CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH}
-- report_errors
-+
-+ # Check health status
-+ $CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH}
-+ report_errors
-+ }
-
- skip $isroot "Root access is needed. Skipping kernel consumer health check test." "5" ||
- {
-@@ -141,6 +148,12 @@ else
- isroot=0
- fi
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ skip_ust=0
-+else
-+ skip_ust=1
-+fi
-+
- test_thread_ok
-
- rm -rf ${HEALTH_PATH}
-diff --git a/tests/regression/tools/live/Makefile.am b/tests/regression/tools/live/Makefile.am
-index 46186d383..db74de8d5 100644
---- a/tests/regression/tools/live/Makefile.am
-+++ b/tests/regression/tools/live/Makefile.am
-@@ -16,9 +16,7 @@ LIVE=$(top_builddir)/src/bin/lttng-sessiond/session.$(OBJEXT) \
- noinst_PROGRAMS = live_test
- EXTRA_DIST = test_kernel test_lttng_kernel
-
--if HAVE_LIBLTTNG_UST_CTL
- EXTRA_DIST += test_ust test_ust_tracefile_count test_lttng_ust
--endif
-
- live_test_SOURCES = live_test.c
- live_test_LDADD = $(LIBTAP) $(LIBCOMMON) $(LIBRELAYD) $(LIBSESSIOND_COMM) \
-diff --git a/tests/regression/tools/live/test_lttng_ust b/tests/regression/tools/live/test_lttng_ust
-index 06017d01d..be9b3d7f7 100755
---- a/tests/regression/tools/live/test_lttng_ust
-+++ b/tests/regression/tools/live/test_lttng_ust
-@@ -38,6 +38,10 @@ NUM_TESTS=12
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- # MUST set TESTDIR before calling those functions
- plan_tests $NUM_TESTS
-
-diff --git a/tests/regression/tools/live/test_ust b/tests/regression/tools/live/test_ust
-index 0384a706f..add521bfc 100755
---- a/tests/regression/tools/live/test_ust
-+++ b/tests/regression/tools/live/test_ust
-@@ -36,6 +36,10 @@ DIR=$(readlink -f $TESTDIR)
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- echo "$TEST_DESC"
-
- function setup_live_tracing()
-diff --git a/tests/regression/tools/live/test_ust_tracefile_count b/tests/regression/tools/live/test_ust_tracefile_count
-index 6da368fc6..10504f8c6 100755
---- a/tests/regression/tools/live/test_ust_tracefile_count
-+++ b/tests/regression/tools/live/test_ust_tracefile_count
-@@ -36,6 +36,10 @@ DIR=$(readlink -f $TESTDIR)
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- echo "$TEST_DESC"
-
- function setup_live_tracing()
-diff --git a/tests/regression/tools/mi/test_mi b/tests/regression/tools/mi/test_mi
-index 48dda7da6..2cc30b29a 100755
---- a/tests/regression/tools/mi/test_mi
-+++ b/tests/regression/tools/mi/test_mi
-@@ -61,6 +61,10 @@ NUM_TESTS=228
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- #Overwrite the lttng_bin to get mi output
- LTTNG_BIN="lttng --mi xml"
-
-diff --git a/tests/regression/tools/notification/test_notification_multi_app b/tests/regression/tools/notification/test_notification_multi_app
-index 0a05ea6a0..29b0f62fa 100755
---- a/tests/regression/tools/notification/test_notification_multi_app
-+++ b/tests/regression/tools/notification/test_notification_multi_app
-@@ -52,6 +52,11 @@ plan_tests $NUM_TESTS
-
- print_test_banner "$TEST_DESC"
-
-+skip_ust=1
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ skip_ust=0
-+fi
-+
- app_pids=()
-
- function kernel_event_generator_toogle_state
-@@ -468,10 +473,15 @@ function test_on_register_evaluation ()
- }
-
-
--TESTS=(
-- test_multi_app_ust
-- test_on_register_evaluation_ust
--)
-+TESTS=()
-+if [ $skip_ust -eq "1" ]; then
-+ TESTS+=(
-+ test_multi_app_ust
-+ test_on_register_evaluation_ust
-+ )
-+else
-+ skip 0 "No UST events binary detected." $NUM_TEST_UST
-+fi
-
- if [ "$(id -u)" == "0" ]; then
- TESTS+=(
-diff --git a/tests/regression/tools/notification/test_notification_ust b/tests/regression/tools/notification/test_notification_ust
-index 8941e476d..eb2e15cad 100755
---- a/tests/regression/tools/notification/test_notification_ust
-+++ b/tests/regression/tools/notification/test_notification_ust
-@@ -46,6 +46,10 @@ DIR=$(readlink -f $TESTDIR)
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- function ust_event_generator_toogle_state
- {
- ust_event_generator_suspended=$((ust_event_generator_suspended==0))
-diff --git a/tests/regression/tools/regen-metadata/test_ust b/tests/regression/tools/regen-metadata/test_ust
-index b7f1af1d8..312c8a40d 100755
---- a/tests/regression/tools/regen-metadata/test_ust
-+++ b/tests/regression/tools/regen-metadata/test_ust
-@@ -34,7 +34,7 @@ NUM_TESTS=33
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST events binary detected."
-+ plan_skip_all "No UST events binary detected."
- fi
-
- function lttng_create_session_uri
-diff --git a/tests/regression/tools/regen-statedump/test_ust b/tests/regression/tools/regen-statedump/test_ust
-index 486b9a560..8d455b26a 100755
---- a/tests/regression/tools/regen-statedump/test_ust
-+++ b/tests/regression/tools/regen-statedump/test_ust
-@@ -34,7 +34,7 @@ NUM_TESTS=11
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST events binary detected."
-+ plan_skip_all "No UST events binary detected."
- fi
-
- function test_ust_local ()
-diff --git a/tests/regression/tools/save-load/test_autoload b/tests/regression/tools/save-load/test_autoload
-index 7ee5e9906..ec376cfb3 100755
---- a/tests/regression/tools/save-load/test_autoload
-+++ b/tests/regression/tools/save-load/test_autoload
-@@ -21,6 +21,9 @@ CURDIR=$(dirname $0)/
- CONFIG_DIR="${CURDIR}/configuration"
- TESTDIR=$CURDIR/../../../
- export LTTNG_SESSION_CONFIG_XSD_PATH=$(readlink -m ${TESTDIR}../src/common/config/)
-+TESTAPP_PATH="$TESTDIR/utils/testapp"
-+TESTAPP_NAME="gen-ust-events"
-+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
-
- DIR=$(readlink -f $TESTDIR)
-
-@@ -28,6 +31,10 @@ NUM_TESTS=9
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- # MUST set TESTDIR before calling those functions
- plan_tests $NUM_TESTS
-
-diff --git a/tests/regression/tools/save-load/test_load b/tests/regression/tools/save-load/test_load
-index 5e38b46b6..b6fdd8192 100755
---- a/tests/regression/tools/save-load/test_load
-+++ b/tests/regression/tools/save-load/test_load
-@@ -20,6 +20,10 @@ TEST_DESC="Load session(s)"
- CURDIR=$(dirname $0)/
- CONFIG_DIR="${CURDIR}/configuration"
- TESTDIR=$CURDIR/../../../
-+TESTAPP_PATH="$TESTDIR/utils/testapp"
-+TESTAPP_NAME="gen-ust-events"
-+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
-+
- export LTTNG_SESSION_CONFIG_XSD_PATH=$(readlink -m ${TESTDIR}../src/common/config/)
-
- SESSION_NAME="load-42"
-@@ -31,6 +35,10 @@ NUM_TESTS=67
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "$TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- # MUST set TESTDIR before calling those functions
- plan_tests $NUM_TESTS
-
-diff --git a/tests/regression/tools/save-load/test_save b/tests/regression/tools/save-load/test_save
-index c5f6b1341..cfaf67b7a 100755
---- a/tests/regression/tools/save-load/test_save
-+++ b/tests/regression/tools/save-load/test_save
-@@ -23,6 +23,9 @@ TESTDIR=$CURDIR/../../../
- SESSION_NAME="save-42"
- CHANNEL_NAME="chan-save"
- EVENT_NAME="tp:tptest"
-+TESTAPP_PATH="$TESTDIR/utils/testapp"
-+TESTAPP_NAME="gen-ust-events"
-+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
-
- DIR=$(readlink -f $TESTDIR)
-
-@@ -30,6 +33,10 @@ NUM_TESTS=41
-
- source $TESTDIR/utils/utils.sh
-
-+if [ ! -x "TESTAPP_BIN" ]; then
-+ plan_skip_all "No UST events binary detected."
-+fi
-+
- # MUST set TESTDIR before calling those functions
- plan_tests $NUM_TESTS
-
-diff --git a/tests/regression/tools/snapshots/test_ust_fast b/tests/regression/tools/snapshots/test_ust_fast
-index edb435c52..5a68ec56d 100755
---- a/tests/regression/tools/snapshots/test_ust_fast
-+++ b/tests/regression/tools/snapshots/test_ust_fast
-@@ -23,7 +23,7 @@ TEST_BIN="ust_test"
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$CURDIR/$TEST_BIN" ]; then
-- BAIL_OUT "No UST test found: $TEST_BIN"
-+ plan_skip_all "No UST test found: $TEST_BIN"
- fi
-
- ./$CURDIR/$TEST_BIN $NR_SNAPSHOT
-diff --git a/tests/regression/tools/snapshots/test_ust_long b/tests/regression/tools/snapshots/test_ust_long
-index 9e1a0c262..afa019f6a 100755
---- a/tests/regression/tools/snapshots/test_ust_long
-+++ b/tests/regression/tools/snapshots/test_ust_long
-@@ -23,7 +23,7 @@ TEST_BIN="ust_test"
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$CURDIR/$TEST_BIN" ]; then
-- BAIL_OUT "No UST test found: $TEST_BIN"
-+ plan_skip_all "No UST test found: $TEST_BIN"
- fi
-
- ./$CURDIR/$TEST_BIN $NR_SNAPSHOT
-diff --git a/tests/regression/tools/snapshots/test_ust_streaming b/tests/regression/tools/snapshots/test_ust_streaming
-index 93b0957f3..69291ab4d 100755
---- a/tests/regression/tools/snapshots/test_ust_streaming
-+++ b/tests/regression/tools/snapshots/test_ust_streaming
-@@ -37,7 +37,7 @@ NUM_TESTS=75
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST events binary detected."
-+ plan_skip_all "No UST events binary detected."
- fi
-
- function snapshot_add_output ()
-diff --git a/tests/regression/tools/snapshots/ust_test b/tests/regression/tools/snapshots/ust_test
-index 755cef9e0..92f9f6cff 100755
---- a/tests/regression/tools/snapshots/ust_test
-+++ b/tests/regression/tools/snapshots/ust_test
-@@ -34,7 +34,7 @@ TRACE_PATH=$(mktemp -d)
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST events binary detected."
-+ plan_skip_all "No UST events binary detected."
- fi
-
- # Need the number of snapshot to do.
-diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits
-index 32c3f1f2b..f54178923 100755
---- a/tests/regression/tools/streaming/test_high_throughput_limits
-+++ b/tests/regression/tools/streaming/test_high_throughput_limits
-@@ -38,7 +38,7 @@ NUM_TESTS=104
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST events binary detected."
-+ plan_skip_all "No UST events binary detected."
- fi
-
- function set_bw_limit
-diff --git a/tests/regression/tools/streaming/test_ust b/tests/regression/tools/streaming/test_ust
-index a5d5b5e92..e1dd98ee7 100755
---- a/tests/regression/tools/streaming/test_ust
-+++ b/tests/regression/tools/streaming/test_ust
-@@ -34,7 +34,7 @@ NUM_TESTS=16
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST events binary detected."
-+ plan_skip_all "No UST events binary detected."
- fi
-
- function lttng_create_session_uri
-diff --git a/tests/regression/tools/tracefile-limits/test_tracefile_count b/tests/regression/tools/tracefile-limits/test_tracefile_count
-index 6ada8580f..7553c7d1f 100755
---- a/tests/regression/tools/tracefile-limits/test_tracefile_count
-+++ b/tests/regression/tools/tracefile-limits/test_tracefile_count
-@@ -33,7 +33,7 @@ PAGE_SIZE=$(getconf PAGE_SIZE)
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST events binary detected."
-+ plan_skip_all "No UST events binary detected."
- fi
-
- function enable_lttng_channel_count_limit ()
-diff --git a/tests/regression/tools/tracefile-limits/test_tracefile_size b/tests/regression/tools/tracefile-limits/test_tracefile_size
-index 3dddbe613..1089487ff 100755
---- a/tests/regression/tools/tracefile-limits/test_tracefile_size
-+++ b/tests/regression/tools/tracefile-limits/test_tracefile_size
-@@ -33,7 +33,7 @@ NUM_TESTS=66
- source $TESTDIR/utils/utils.sh
-
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST events binary detected."
-+ plan_skip_all "No UST events binary detected."
- fi
-
- function enable_lttng_channel_size_limit ()
-diff --git a/tests/regression/tools/wildcard/test_event_wildcard b/tests/regression/tools/wildcard/test_event_wildcard
-index 61ea67a72..921a2301d 100755
---- a/tests/regression/tools/wildcard/test_event_wildcard
-+++ b/tests/regression/tools/wildcard/test_event_wildcard
-@@ -97,42 +97,47 @@ print_test_banner "$TEST_DESC"
-
- start_lttng_sessiond
-
--diag "Test UST wildcard"
--
- if [ ! -x "$TESTAPP_BIN" ]; then
-- BAIL_OUT "No UST nevents binary detected."
-+ skip_ust=0
-+else
-+ skip_ust=1
- fi
-
--EVENT_NAME="tp:tptest"
-+skip $skip_ust "No UST nevents binary detected." $NUM_UST_TESTS ||
-+{
-+ diag "Test UST wildcard"
-
--# non-matching
--test_event_wildcard ust 0 'tp:abc*'
--test_event_wildcard ust 0 '*abc'
--test_event_wildcard ust 0 '*z*'
--test_event_wildcard ust 0 '*\**'
--test_event_wildcard ust 0 '*\*'
--test_event_wildcard ust 0 '\**'
--test_event_wildcard ust 0 '*:*tpte*s'
--test_event_wildcard ust 0 'tp**tpTest'
-+ EVENT_NAME="tp:tptest"
-
--# matching
--test_event_wildcard ust 1 'tp:tp*'
--test_event_wildcard ust 1 '*'
--test_event_wildcard ust 1 'tp:tptest*'
--test_event_wildcard ust 1 '**'
--test_event_wildcard ust 1 '***'
--test_event_wildcard ust 1 '*tptest'
--test_event_wildcard ust 1 '**tptest'
--test_event_wildcard ust 1 '*tpte*'
--test_event_wildcard ust 1 '*tp*'
--test_event_wildcard ust 1 '*tp**'
--test_event_wildcard ust 1 '*:*tptest'
--test_event_wildcard ust 1 '*:*tpte*t'
--test_event_wildcard ust 1 't*p*:*t*e*s*t'
--test_event_wildcard ust 1 '*t*p*:*t*e*s*t*'
--test_event_wildcard ust 1 'tp*tptest'
--test_event_wildcard ust 1 'tp**tptest'
--test_event_wildcard ust 1 'tp*test'
-+ # non-matching
-+ test_event_wildcard ust 0 'tp:abc*'
-+ test_event_wildcard ust 0 '*abc'
-+ test_event_wildcard ust 0 '*z*'
-+ test_event_wildcard ust 0 '*\**'
-+ test_event_wildcard ust 0 '*\*'
-+ test_event_wildcard ust 0 '\**'
-+ test_event_wildcard ust 0 '*:*tpte*s'
-+ test_event_wildcard ust 0 'tp**tpTest'
-+
-+ # matching
-+ test_event_wildcard ust 1 'tp:tp*'
-+ test_event_wildcard ust 1 '*'
-+ test_event_wildcard ust 1 'tp:tptest*'
-+ test_event_wildcard ust 1 '**'
-+ test_event_wildcard ust 1 '***'
-+ test_event_wildcard ust 1 '*tptest'
-+ test_event_wildcard ust 1 '**tptest'
-+ test_event_wildcard ust 1 '*tpte*'
-+ test_event_wildcard ust 1 '*tp*'
-+ test_event_wildcard ust 1 '*tp**'
-+ test_event_wildcard ust 1 '*:*tptest'
-+ test_event_wildcard ust 1 '*:*tpte*t'
-+ test_event_wildcard ust 1 't*p*:*t*e*s*t'
-+ test_event_wildcard ust 1 '*t*p*:*t*e*s*t*'
-+ test_event_wildcard ust 1 'tp*tptest'
-+ test_event_wildcard ust 1 'tp**tptest'
-+ test_event_wildcard ust 1 'tp*test'
-+}
-
- if [ "$(id -u)" == "0" ]; then
- isroot=1
---
-2.17.1
-
diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch
deleted file mode 100644
index c494cee604..0000000000
--- a/meta/recipes-kernel/lttng/lttng-tools/0001-check-for-gettid-API-during-configure.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 69c62f5f3cc424b7dd0c8e4097743b39a9c48306 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 27 Jul 2019 08:48:13 -0700
-Subject: [lttng-tools][PATCH] check for gettid API during configure
-
-Add support for gettid() provided by glibc 2.30+
-
-Since version 2.30 glibc provides gettid and it causes conflicts with
-locally defined gettid(). Use the local definition of
-gettid only if system gettid is not available.
-
-https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;hb=HEAD<Paste>
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- src/common/compat/tid.h | 3 ++-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7b99f5c..e4bd82c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -190,7 +190,7 @@ AC_CHECK_HEADERS([ \
- # Basic functions check
- AC_CHECK_FUNCS([ \
- atexit bzero clock_gettime dup2 fdatasync fls ftruncate \
-- gethostbyname gethostname getpagesize localtime_r memchr memset \
-+ gethostbyname gethostname getpagesize gettid localtime_r memchr memset \
- mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \
- strncasecmp strndup strnlen strpbrk strrchr strstr strtol strtoul \
- strtoull dirfd gethostbyname2 getipnodebyname epoll_create1 \
-diff --git a/src/common/compat/tid.h b/src/common/compat/tid.h
-index 40f562f..aa07a85 100644
---- a/src/common/compat/tid.h
-+++ b/src/common/compat/tid.h
-@@ -25,6 +25,7 @@
- #ifndef LTTNG_TID_H
- #define LTTNG_TID_H
-
-+#if !HAVE_GETTID
- #ifdef __linux__
- #include <syscall.h>
- #endif
-@@ -47,5 +48,5 @@ static inline pid_t gettid(void)
- return getpid();
- }
- #endif
--
-+#endif /* HAVE_GETTID */
- #endif /* LTTNG_TID_H */
---
-2.22.0
-
diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch
new file mode 100644
index 0000000000..2d08b08879
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch
@@ -0,0 +1,27 @@
+From ab238c213fac190972f55e73cf3e0bb1c7846eb8 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 12 Dec 2019 16:52:07 +0100
+Subject: [PATCH] tests: do not strip a helper library
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ tests/utils/testapp/userspace-probe-elf-binary/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am b/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am
+index 03f5d5a..d12c343 100644
+--- a/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am
++++ b/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am
+@@ -12,7 +12,7 @@ userspace_probe_elf_binary_LDADD = libfoo.la
+ libfoo.strip: libfoo.la
+ $(OBJCOPY) --strip-all .libs/libfoo.so
+
+-all-local: libfoo.strip
++all-local:
+ @if [ x"$(srcdir)" != x"$(builddir)" ]; then \
+ for script in $(EXTRA_DIST); do \
+ cp -f $(srcdir)/$$script $(builddir); \
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..f2c14ecc94
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch
@@ -0,0 +1,34 @@
+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
+
+They have been found to sporadically fail; the issue has been
+reported upstream and they will work to investigate and fix:
+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 | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/tests/regression/Makefile.am b/tests/regression/Makefile.am
+index 73eb9f7..b92bdbd 100644
+--- a/tests/regression/Makefile.am
++++ b/tests/regression/Makefile.am
+@@ -9,14 +9,10 @@ TESTS = tools/filtering/test_invalid_filter \
+ tools/filtering/test_valid_filter \
+ tools/streaming/test_ust \
+ tools/health/test_thread_ok \
+- tools/live/test_ust \
+- tools/live/test_ust_tracefile_count \
+- tools/live/test_lttng_ust \
+ 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/0002-Fix-check-for-lttng-modules-presence-before-testing.patch b/meta/recipes-kernel/lttng/lttng-tools/0002-Fix-check-for-lttng-modules-presence-before-testing.patch
deleted file mode 100644
index 784a07940a..0000000000
--- a/meta/recipes-kernel/lttng/lttng-tools/0002-Fix-check-for-lttng-modules-presence-before-testing.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 58e4dcce48b48b68b65bffc0cd51d9e26b44c75d Mon Sep 17 00:00:00 2001
-From: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
-Date: Wed, 22 May 2019 16:44:54 -0400
-Subject: [PATCH] Fix: check for lttng modules presence before testing
-
-Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2019-May/028987.html]
-
-Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
----
- tests/regression/tools/notification/test_notification_multi_app | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/regression/tools/notification/test_notification_multi_app b/tests/regression/tools/notification/test_notification_multi_app
-index 29b0f62..a6baf65 100755
---- a/tests/regression/tools/notification/test_notification_multi_app
-+++ b/tests/regression/tools/notification/test_notification_multi_app
-@@ -484,6 +484,7 @@ else
- fi
-
- if [ "$(id -u)" == "0" ]; then
-+ validate_lttng_modules_present
- TESTS+=(
- test_multi_app_kernel
- test_on_register_evaluation_kernel
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.10.7.bb b/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
index aa6d19d0fa..0787e04d19 100644
--- a/meta/recipes-kernel/lttng/lttng-tools_2.10.7.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"
+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,24 +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-Skip-when-testapp-is-not-present.patch \
- file://0002-Fix-check-for-lttng-modules-presence-before-testing.patch \
- file://0001-check-for-gettid-API-during-configure.patch \
+ file://0001-tests-regression-disable-the-tools-live-tests.patch \
"
-SRC_URI[md5sum] = "e7804d10e4cade381e241601f6047373"
-SRC_URI[sha256sum] = "ed71ebe00c5d985c74f30e97b614e909573cbd9276c85e05d9557a0b817a1312"
+SRC_URI[sha256sum] = "9ed9161795ff023b076f9f95afaa4f1f822ec42495c0fa04c586ab8fa74e84f1"
inherit autotools ptest pkgconfig useradd python3-dir manpages systemd
@@ -59,6 +58,8 @@ FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
INSANE_SKIP_${PN} = "libexec dev-so"
INSANE_SKIP_${PN}-dbg = "libexec"
+PRIVATE_LIBS_${PN}-ptest = "libfoo.so"
+
do_install_append () {
# install systemd unit file
install -d ${D}${systemd_unitdir}/system
@@ -66,11 +67,11 @@ do_install_append () {
}
do_install_ptest () {
- for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/load-42*.lttng tests/regression/tools/save-load/configuration/load-42*.lttng ; do
+ for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/load-42*.lttng tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh; do
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
@@ -111,6 +112,8 @@ do_install_ptest () {
done
done
+ chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary
+
#
# Use the versioned libs of liblttng-ust-dl.
#
diff --git a/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch b/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch
deleted file mode 100644
index bff852799d..0000000000
--- a/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Don't build the doc examples - we don't need them and in fact they
-never successfully built in previous iterations of the lttng-ust
-recipe anyway.
-
-Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
-
-Index: lttng-ust-2.9.1/doc/Makefile.am
-===================================================================
---- lttng-ust-2.9.1.orig/doc/Makefile.am
-+++ lttng-ust-2.9.1/doc/Makefile.am
-@@ -1,3 +1,3 @@
--SUBDIRS = . man examples
-+SUBDIRS = . man
-
- dist_doc_DATA = java-agent.txt
diff --git a/meta/recipes-kernel/lttng/lttng-ust_2.10.5.bb b/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
index cfaad30b69..67a4307c7b 100644
--- a/meta/recipes-kernel/lttng/lttng-ust_2.10.5.bb
+++ b/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
@@ -15,6 +15,10 @@ 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"
RDEPENDS_${PN}-bin = "python3-core"
@@ -26,15 +30,15 @@ RCONFLICTS_${PN} = "lttng2-ust"
PE = "2"
SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \
- file://lttng-ust-doc-examples-disable.patch \
file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \
- "
+ "
-SRC_URI[md5sum] = "f0c86a9fa7dcfd0205fb42584a310b1c"
-SRC_URI[sha256sum] = "06f9ed9b2198855b1c7fcbf15fe57297ee259409ffa1b3bad87321412d98bc35"
+SRC_URI[md5sum] = "3bf4a04c305271d13cf6596c4e7b9b3c"
+SRC_URI[sha256sum] = "1983edb525f3f27e3494088d8d5389b4c71af66bbfe63c6f1df2ad95aa44a528"
CVE_PRODUCT = "ust"
+PACKAGECONFIG[examples] = "--enable-examples, --disable-examples,"
PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native"
PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3"
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 8201c0cb60..868cde7353 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -25,6 +25,9 @@ PACKAGECONFIG[jvmti] = ",NO_JVMTI=1"
# libaudit support would need scripting to be enabled
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"
@@ -51,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)}
@@ -67,11 +70,14 @@ SPDX_S = "${S}/tools/perf"
LDFLAGS="-ldl -lutil"
EXTRA_OEMAKE = '\
+ V=1 \
-C ${S}/tools/perf \
O=${B} \
CROSS_COMPILE=${TARGET_PREFIX} \
ARCH=${ARCH} \
CC="${CC}" \
+ CCLD="${CC}" \
+ LDSHARED="${CC} -shared" \
AR="${AR}" \
LD="${LD}" \
EXTRA_CFLAGS="-ldw" \
@@ -105,7 +111,6 @@ EXTRA_OEMAKE += "\
EXTRA_OEMAKE_append_task-configure = " JOBS=1"
PERF_SRC ?= "Makefile \
- include \
tools/arch \
tools/build \
tools/include \
@@ -113,6 +118,8 @@ PERF_SRC ?= "Makefile \
tools/Makefile \
tools/perf \
tools/scripts \
+ scripts/ \
+ arch/${ARCH}/Makefile \
"
PERF_EXTRA_LDFLAGS = ""
@@ -143,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)
@@ -151,6 +159,8 @@ python copy_perf_source_from_kernel() {
if os.path.isdir(src):
oe.path.copyhardlinktree(src, dest)
else:
+ src_path = os.path.dirname(s)
+ os.makedirs(os.path.join(dest_dir,src_path),exist_ok=True)
bb.utils.copyfile(src, dest)
}
@@ -192,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*
@@ -233,19 +246,14 @@ do_configure_prepend () {
fi
# use /usr/bin/env instead of version specific python
- for s in `find ${S}/tools/perf/ -name '*.py'`; do
- sed -i 's,/usr/bin/python,/usr/bin/env python3,' "${s}"
- sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "${s}"
- sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "${s}"
+ for s in `find ${S}/tools/perf/ -name '*.py'` `find ${S}/scripts/ -name 'bpf_helpers_doc.py'`; do
+ sed -i -e "s,#!.*python.*,#!${USRBINPATH}/env python3," ${s}
done
# unistd.h can be out of sync between libc-headers and the captured version in the perf source
# so we copy it from the sysroot unistd.h to the perf unistd.h
install -D -m0644 ${STAGING_INCDIR}/asm-generic/unistd.h ${S}/tools/include/uapi/asm-generic/unistd.h
install -D -m0644 ${STAGING_INCDIR}/asm-generic/unistd.h ${S}/include/uapi/asm-generic/unistd.h
-
- # bits.h can have the same issue as unistd.h, so we make the tools variant take precedence
- [ -e ${S}/tools/include/linux/bits.h ] && install -D -m0644 ${S}/tools/include/linux/bits.h ${S}/include/linux/bits.h
}
python do_package_prepend() {
diff --git a/meta/recipes-kernel/powertop/powertop_2.10.bb b/meta/recipes-kernel/powertop/powertop_2.13.bb
index 5be8d23111..8c7e78fd94 100644
--- a/meta/recipes-kernel/powertop/powertop_2.10.bb
+++ b/meta/recipes-kernel/powertop/powertop_2.13.bb
@@ -1,30 +1,28 @@
SUMMARY = "Power usage tool"
DESCRIPTION = "Linux tool to diagnose issues with power consumption and power management."
-HOMEPAGE = "http://01.org/powertop/"
-BUGTRACKER = "http://bugzilla.lesswatts.org/"
-DEPENDS = "ncurses libnl pciutils"
+HOMEPAGE = "https://01.org/powertop/"
+BUGTRACKER = "https://app.devzing.com/powertopbugs/bugzilla"
+DEPENDS = "ncurses libnl pciutils autoconf-archive"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
-SRC_URI = "http://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/sysprof/files/0001-Do-not-build-anything-in-help-as-it-requires-itstool.patch b/meta/recipes-kernel/sysprof/files/0001-Do-not-build-anything-in-help-as-it-requires-itstool.patch
deleted file mode 100644
index ade51cf864..0000000000
--- a/meta/recipes-kernel/sysprof/files/0001-Do-not-build-anything-in-help-as-it-requires-itstool.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From d332b480257aa98b63d39c3c94896a111536f937 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 23 Aug 2017 18:38:26 +0300
-Subject: [PATCH 2/2] Do not build anything in help/ as it requires itstool.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- meson.build | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 3986273..ae2f65e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -164,7 +164,6 @@ subdir('tools')
- subdir('tests')
-
- subdir('data')
--subdir('help')
- subdir('po')
-
- meson.add_install_script('build-aux/meson/post_install.sh')
---
-2.7.4
-
diff --git a/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch b/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch
deleted file mode 100644
index f75ddad43a..0000000000
--- a/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-On uclibc elf.h does not have GNU extentions but we need this define
-so we define it locally if its not getting it from elf.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-Index: git/elfparser.h
-===================================================================
---- git.orig/lib/util/elfparser.h 2011-07-16 18:57:41.000000000 -0700
-+++ git/lib/util/elfparser.h 2011-07-16 20:28:54.733829895 -0700
-@@ -17,6 +17,10 @@
- */
- #include <glib.h>
-
-+#ifndef NT_GNU_BUILD_ID
-+#define NT_GNU_BUILD_ID 3
-+#endif
-+
- typedef struct ElfSym ElfSym;
- typedef struct ElfParser ElfParser;
-
diff --git a/meta/recipes-kernel/sysprof/sysprof_3.32.0.bb b/meta/recipes-kernel/sysprof/sysprof_3.32.0.bb
deleted file mode 100644
index b92933806c..0000000000
--- a/meta/recipes-kernel/sysprof/sysprof_3.32.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "System-wide Performance Profiler for Linux"
-HOMEPAGE = "http://www.sysprof.com"
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://src/sp-application.c;endline=17;md5=40e55577ef122c88fe20052acda64875"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gettext systemd upstream-version-is-even gsettings
-
-DEPENDS = "glib-2.0 libxml2-native glib-2.0-native"
-
-SRC_URI[archive.md5sum] = "d1fa9ad216419d722770ca36713ad3af"
-SRC_URI[archive.sha256sum] = "fc22a69e468701c5ec9036e960c6273afa1ed6a89df1f889fed49417add5554d"
-SRC_URI += " \
- file://define-NT_GNU_BUILD_ID.patch \
- file://0001-Do-not-build-anything-in-help-as-it-requires-itstool.patch \
- "
-
-PACKAGECONFIG ?= "${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'gtk', '', d)}"
-PACKAGECONFIG[gtk] = "-Denable_gtk=true,-Denable_gtk=false,gtk+3"
-PACKAGECONFIG[sysprofd] = "-Dwith_sysprofd=bundled,-Dwith_sysprofd=none,polkit"
-
-SOLIBS = ".so"
-FILES_SOLIBSDEV = ""
-
-SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'sysprofd', 'sysprof2.service', '', d)}"
-
-FILES_${PN} += " \
- ${datadir}/dbus-1/system-services \
- ${datadir}/dbus-1/system.d \
- ${datadir}/metainfo \
- "
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.bb b/meta/recipes-kernel/systemtap/systemtap_git.bb
index 6ee3e1c0f7..1c9f2aed16 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.bb
+++ b/meta/recipes-kernel/systemtap/systemtap_git.bb
@@ -51,10 +51,13 @@ do_install_append () {
rm ${D}${libexecdir}/${PN}/stap-env
fi
- # Fix makefile hardcoded path assumptions for systemd (assumes $prefix)
- install -d `dirname ${D}${systemd_unitdir}`
- mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}`
- rmdir ${D}${prefix}/lib --ignore-fail-on-non-empty
+ if [ ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then
+ # Fix makefile hardcoded path assumptions for systemd (assumes $prefix)
+ # without usrmerge distro feature enabled
+ install -d `dirname ${D}${systemd_unitdir}`
+ mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}`
+ rmdir ${D}${prefix}/lib --ignore-fail-on-non-empty
+ fi
# Ensure correct ownership for files copied in
chown root:root ${D}${sysconfdir}/stap-exporter/* -R
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc
index abb2b3743b..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 = "57c9aca9f1ff32a6add10e02ecd33b7314fad499"
-PV = "4.1+git${SRCPV}"
+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_1.1.9.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb
index 2c63ee7522..1ed1a7b9a3 100644
--- a/meta/recipes-multimedia/alsa/alsa-lib_1.1.9.bb
+++ b/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb
@@ -4,12 +4,11 @@ BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
SECTION = "libs/multimedia"
LICENSE = "LGPLv2.1 & GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
- file://src/socket.c;md5=dd1bc7f44872690224d89c1a9806e495;beginline=1;endline=26 \
+ file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \
"
SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
-SRC_URI[md5sum] = "e6d429dbdcfaa0f034d907fa6dc3735e"
-SRC_URI[sha256sum] = "488373aef5396682f3a411a6d064ae0ad196b9c96269d0bb912fbdeec94b994b"
+SRC_URI[sha256sum] = "e81fc5b7afcaee8c9fd7f64a1e3043e88d62e9ad2c4cff55f578df6b0a9abe15"
inherit autotools pkgconfig
@@ -18,12 +17,14 @@ EXTRA_OECONF += " \
--disable-python \
"
-PACKAGES =+ "alsa-server alsa-conf alsa-doc"
+PACKAGES =+ "alsa-server alsa-conf libatopology"
FILES_alsa-server = "${bindir}/*"
FILES_alsa-conf = "${datadir}/alsa/"
+FILES_libatopology = "${libdir}/libatopology.so.*"
-RDEPENDS_${PN}_class-target = "alsa-conf"
+RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf"
+RDEPENDS_libatopology_class-target = "alsa-topology-conf"
# upgrade path
RPROVIDES_${PN} = "libasound"
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins_1.1.9.bb b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb
index b94fc5cee3..e8402a6fcb 100644
--- a/meta/recipes-multimedia/alsa/alsa-plugins_1.1.9.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] = "e0caffbd849c51ed81751378f56cb563"
-SRC_URI[sha256sum] = "161772303da521abbbf1d91f63b470c4791392d5728f2192a42d71292078f907"
+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.3.bb b/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb
new file mode 100644
index 0000000000..3575c460e4
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb
@@ -0,0 +1,19 @@
+SUMMARY = "ALSA topology configuration files"
+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] = "833f99b2cbda34e0cfef867ef1d2e6a74fe276bb7fc525a573be32077f629dff"
+
+inherit allarch
+
+do_install() {
+ install -d "${D}${datadir}/alsa"
+ cp -r "${S}/topology" "${D}${datadir}/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.1.9.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.1.9.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.1.9.bb b/meta/recipes-multimedia/alsa/alsa-utils.inc
index 03b5c8de30..b523a5a832 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils_1.1.9.bb
+++ b/meta/recipes-multimedia/alsa/alsa-utils.inc
@@ -4,7 +4,7 @@ BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
SECTION = "console/utils"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://alsactl/utils.c;beginline=1;endline=20;md5=2ce7f7b6739487fb72c689d46521f958"
+ file://alsactl/utils.c;beginline=3;endline=18;md5=96cc06a4cebe5eb7975688ffb0e65642"
DEPENDS = "alsa-lib ncurses libsamplerate0"
PACKAGECONFIG ??= "udev"
@@ -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] = "5ed21c3e296c06046cc986e732f625f6"
-SRC_URI[sha256sum] = "5ddf2cbddb4bd1a4a2a6492a09c25898b08c3ad64893c3655be14194cf0a213a"
+SRC_URI[sha256sum] = "ff19ae48c22938de7a491bdb39db74a2eee2546013f39bf1a86185e426f921aa"
# On build machines with python-docutils (not python3-docutils !!) installed
# rst2man (not rst2man.py) is detected and compile fails with
@@ -56,6 +55,7 @@ PACKAGES += "${ALSA_UTILS_PKGS}"
RDEPENDS_${PN} += "${ALSA_UTILS_PKGS}"
FILES_${PN} = ""
+ALLOW_EMPTY_alsa-utils = "1"
FILES_alsa-utils-alsabat = "${bindir}/alsabat"
FILES_alsa-utils-alsatplg = "${bindir}/alsatplg"
FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfer"
@@ -88,8 +88,6 @@ SUMMARY_alsa-utils-alsaucm = "ALSA Use Case Manager"
RRECOMMENDS_alsa-utils-alsactl = "alsa-states"
-ALLOW_EMPTY_alsa-utils = "1"
-
do_install() {
autotools_do_install
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.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb
index ec306afaaa..517dac7f05 100644
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.1.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] = "67da904cf9fddeeb10a1308fc0dc39de"
-SRC_URI[sha256sum] = "cec7c87e9b60d174509e263ac4011b522385fd0775292e1670ecc1180c9bb6d4"
+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"
@@ -74,6 +75,7 @@ PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264"
+PACKAGECONFIG[x265] = "--enable-libx265,--disable-libx265,x265"
PACKAGECONFIG[xcb] = "--enable-libxcb,--disable-libxcb,libxcb"
PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv"
PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
@@ -102,8 +104,8 @@ EXTRA_OECONF = " \
--arch=${TARGET_ARCH} \
--target-os="linux" \
--enable-cross-compile \
- --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
- --extra-ldflags="${TARGET_LDFLAGS}" \
+ --extra-cflags="${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
+ --extra-ldflags="${LDFLAGS}" \
--sysroot="${STAGING_DIR_TARGET}" \
${EXTRA_FFCONF} \
--libdir=${libdir} \
diff --git a/meta/recipes-multimedia/flac/flac_1.3.3.bb b/meta/recipes-multimedia/flac/flac_1.3.3.bb
index fea2be1f6b..cb6692aedf 100644
--- a/meta/recipes-multimedia/flac/flac_1.3.3.bb
+++ b/meta/recipes-multimedia/flac/flac_1.3.3.bb
@@ -33,6 +33,7 @@ EXTRA_OECONF = "--disable-oggtest \
"
EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "altivec", " --enable-altivec", " --disable-altivec", d)}"
+EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "vsx", " --enable-vsx", " --disable-vsx", d)}"
EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "core2", " --enable-sse", "", d)}"
EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "corei7", " --enable-sse", "", d)}"
diff --git a/meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch b/meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch
deleted file mode 100644
index 1b7f115083..0000000000
--- a/meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 2b0436f9a07773fae8c74df902d7024e8bfc3512 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 24 Nov 2015 16:46:27 +0200
-Subject: [PATCH] introspection.m4: prefix pkgconfig paths with
- PKG_CONFIG_SYSROOT_DIR
-
-We can't use our tweaked introspection.m4 from gobject-introspection tarball
-because gstreamer also defines INTROSPECTION_INIT in its introspection.m4, which
-is later supplied to g-ir-scanner.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- common/m4/introspection.m4 | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/common/m4/introspection.m4 b/common/m4/introspection.m4
-index 162be57..933f979 100644
---- a/common/m4/introspection.m4
-+++ b/common/m4/introspection.m4
-@@ -54,14 +54,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
- INTROSPECTION_INIT="extern void gst_init(gint*,gchar**); gst_init(NULL,NULL);"
- fi
- AC_SUBST(INTROSPECTION_SCANNER)
diff --git a/meta/recipes-multimedia/gstreamer/files/add-a-target-to-compile-tests.patch b/meta/recipes-multimedia/gstreamer/files/add-a-target-to-compile-tests.patch
deleted file mode 100644
index d02d869410..0000000000
--- a/meta/recipes-multimedia/gstreamer/files/add-a-target-to-compile-tests.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From d61414bc17cf2df019510c2908048c4cabf5cf09 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Tue, 27 Feb 2018 09:27:01 +0800
-Subject: [PATCH] add targets for test installation
-
-Targets to make sure tests can be installed and then run on
-the target.
-
-Upstream-Status: Inappropriate [specific to oe setup]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- tests/check/Makefile.am | 27 ++++++++++++++++++++-------
- 1 file changed, 20 insertions(+), 7 deletions(-)
-
-diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
-index 13b916d..a66786d 100644
---- a/tests/check/Makefile.am
-+++ b/tests/check/Makefile.am
-@@ -8,11 +8,7 @@ REGISTRY_ENVIRONMENT = \
- GST_REGISTRY=$(CHECK_REGISTRY)
-
- AM_TESTS_ENVIRONMENT += \
-- GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)" \
-- $(REGISTRY_ENVIRONMENT) \
-- GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
-- GST_PLUGIN_SYSTEM_PATH_1_0= \
-- GST_PLUGIN_PATH_1_0=$(top_builddir)/plugins
-+ GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"
-
- plugindir = $(libdir)/gstreamer-@GST_API_VERSION@
-
-@@ -178,6 +174,23 @@ noinst_PROGRAMS =
-
- TESTS = $(check_PROGRAMS)
-
-+install-ptest: $(TESTS)
-+ @$(INSTALL) -d $(DESTDIR)
-+ @for dir in `find -maxdepth 1 -type d`; do \
-+ if [ -x $$dir/.libs ]; then \
-+ $(INSTALL) -d $(DESTDIR)/$$dir; \
-+ $(INSTALL_PROGRAM) $$dir/.libs/* $(DESTDIR)/$$dir/; \
-+ fi \
-+ done
-+
-+runtests:
-+ @for b in $(TESTS); do \
-+ if [ -x $$b ]; then \
-+ $(AM_TESTS_ENVIRONMENT) $(SHELL) test-driver --test-name "$$b" \
-+ --log-file $$b.log --trs-file $$b.trs $$b; \
-+ fi \
-+ done
-+
- noinst_HEADERS = \
- gst/capslist.h \
- gst/struct_arm.h \
-@@ -221,9 +234,9 @@ gst_gstprintf_LDADD = \
- $(LDADD)
-
- elements_fdsrc_CFLAGS=$(GST_OBJ_CFLAGS) $(AM_CFLAGS) \
-- -DTESTFILE=\"$(top_srcdir)/configure.ac\"
-+ -DTESTFILE=\"Makefile\"
- elements_filesrc_CFLAGS=$(GST_OBJ_CFLAGS) $(AM_CFLAGS) \
-- -DTESTFILE=\"$(top_srcdir)/configure.ac\"
-+ -DTESTFILE=\"Makefile\"
-
- libs_controller_LDADD = \
- $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
diff --git a/meta/recipes-multimedia/gstreamer/files/gtk-doc-tweaks.patch b/meta/recipes-multimedia/gstreamer/files/gtk-doc-tweaks.patch
deleted file mode 100644
index d86c78d793..0000000000
--- a/meta/recipes-multimedia/gstreamer/files/gtk-doc-tweaks.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 7018ca1c4bf26c8317e7fcd2e7e4e648195f42ca Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Wed, 20 Dec 2017 13:03:03 +0000
-Subject: [PATCH] gstreamer: use a patch instead of sed to fix gtk-doc
-
-Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient
-binaries instead of libtool wrapper or running them directly.
-
-Also substitute a bogus plugin scanner, as trying to run the real one is causing
-issues during build on x86_64.
-
-Upstream-Status: Inappropriate
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
----
- common/gtk-doc.mak | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak
-index 3f83491..e5cb0d1 100644
---- a/common/gtk-doc.mak
-+++ b/common/gtk-doc.mak
-@@ -6,11 +6,11 @@
- if GTK_DOC_USE_LIBTOOL
- GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
- GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
--GTKDOC_RUN = $(LIBTOOL) --mode=execute
-+GTKDOC_RUN = $(top_builddir)/gtkdoc-qemuwrapper
- else
- GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
- GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
--GTKDOC_RUN =
-+GTKDOC_RUN = $(top_builddir)/gtkdoc-qemuwrapper
- endif
-
- # We set GPATH here; this gives us semantics for GNU make
-@@ -101,6 +101,7 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
- GST_PLUGIN_PATH_1_0= \
- GST_REGISTRY_1_0=doc-registry.xml \
- $(GTKDOC_EXTRA_ENVIRONMENT) \
-+ GST_PLUGIN_SCANNER_1_0="$(top_builddir)/libs/gst/helpers/gst-plugin-scanner-dummy" \
- CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" \
- CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" \
- LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
---
-2.15.1
-
diff --git a/meta/recipes-multimedia/gstreamer/files/run-ptest b/meta/recipes-multimedia/gstreamer/files/run-ptest
deleted file mode 100644
index 473d0b67a7..0000000000
--- a/meta/recipes-multimedia/gstreamer/files/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-make -k runtests
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_git.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb
index f2a3afbbfe..e23d23d9ca 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples_git.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb
@@ -10,12 +10,12 @@ SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gst-examples.git;protocol=http
"
SRCREV = "d953c127c1146b50d5676618299933950685dcd7"
-PV = "1.16.0"
S = "${WORKDIR}/git"
-inherit meson pkgconfig distro_features_check
+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/files/0001-connect-has-a-different-signature-on-musl.patch b/meta/recipes-multimedia/gstreamer/gst-validate/0001-connect-has-a-different-signature-on-musl.patch
index a0d215c5a0..a0d215c5a0 100644
--- a/meta/recipes-multimedia/gstreamer/files/0001-connect-has-a-different-signature-on-musl.patch
+++ b/meta/recipes-multimedia/gstreamer/gst-validate/0001-connect-has-a-different-signature-on-musl.patch
diff --git a/meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gst-validate_1.16.2.bb
index 1f4370619c..35492fe861 100644
--- a/meta/recipes-multimedia/gstreamer/gst-validate_1.16.0.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] = "c5c57f3325a2e62aae4a8ec4931f7711"
-SRC_URI[sha256sum] = "9331ae48a173a048243539730cc7a88607777762dea4aebbc3ab55981e68d6c9"
+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-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch
deleted file mode 100644
index 11571aefa1..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 54bba228ea52d01fd84941d97be23c03f9862b64 Mon Sep 17 00:00:00 2001
-From: Carlos Rafael Giani <dv@pseudoterminal.org>
-Date: Sat, 6 Apr 2013 01:22:22 +0200
-Subject: [PATCH] Disable yasm for libav when --disable-yasm
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Shane Wang <shane.wang@intel.com>
-Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
----
- configure.ac | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 22ede88..ef3c050 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -355,6 +355,12 @@ else
- emblibav_configure_args="$emblibav_configure_args --enable-gpl"
- fi
-
-+ AC_ARG_ENABLE(yasm,
-+ [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])])
-+ if test "x$enable_yasm" = "xno"; then
-+ emblibav_configure_args="$emblibav_configure_args --disable-yasm"
-+ fi
-+
- # if we are cross-compiling, tell libav so
- case $host in
- *android*)
---
-1.8.2
-
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-configure-check-for-armv7ve-variant.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-configure-check-for-armv7ve-variant.patch
deleted file mode 100644
index f182715bda..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-configure-check-for-armv7ve-variant.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From aac5902d3c9cb35c771e760d0e487622aa2e116a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 20 Apr 2017 10:38:18 -0700
-Subject: [PATCH] configure: check for armv7ve variant
-
-OE passes -mcpu and -march via cmdline and if
-package tries to detect one of it own then it
-should be compatible otherwise, newer gcc7+ will
-error out
-
-Check for relevant preprocessor macro to determine
-armv7ve architecture
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gst-libs/ext/libav/configure | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure
-index 4a5e477..727818e 100755
---- a/gst-libs/ext/libav/configure
-+++ b/gst-libs/ext/libav/configure
-@@ -4745,6 +4745,7 @@ elif enabled arm; then
- elif check_arm_arch 6KZ; then echo armv6zk
- elif check_arm_arch 6ZK; then echo armv6zk
- elif check_arm_arch 6T2; then echo armv6t2
-+ elif check_arm_arch EXT_IDIV; then echo armv7ve
- elif check_arm_arch 7; then echo armv7
- elif check_arm_arch 7A 7_A; then echo armv7-a
- elif check_arm_arch 7S; then echo armv7-a
---
-2.12.2
-
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-fix-host-contamination.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-fix-host-contamination.patch
deleted file mode 100644
index 120c0798ea..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-fix-host-contamination.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From c1700f867f876ee33c130a8e28b688e2b1d89663 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Wed, 11 Apr 2018 17:14:55 +0800
-Subject: [PATCH] Prevent host contamination
-
-Remove reference to host $(libdir) from .la files.
-
-Upstream-Status: Inappropriate [cross-compile specific]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- gst-libs/ext/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst-libs/ext/Makefile.am b/gst-libs/ext/Makefile.am
-index 6cdc048..a19d255 100644
---- a/gst-libs/ext/Makefile.am
-+++ b/gst-libs/ext/Makefile.am
-@@ -49,7 +49,7 @@ echo " GEN $1.la" && \
- echo "library_names=''" && \
- echo "old_library='$1.a'" && \
- echo "inherited_linker_flags=''" && \
-- echo "dependency_libs=' -L$(libdir) $(if $2,$(foreach dep,$2,$(abs_builddir)/$(dep).la)) $(call find_library_la,$3 $(LIBM),$(LDFLAGS)) '" && \
-+ echo "dependency_libs=' -L $(if $2,$(foreach dep,$2,$(abs_builddir)/$(dep).la)) $(call find_library_la,$3 $(LIBM),$(LDFLAGS)) '" && \
- echo "weak_library_names=''" && \
- echo "current=" && \
- echo "age=" && \
-@@ -58,7 +58,7 @@ echo " GEN $1.la" && \
- echo "shouldnotlink=no" && \
- echo "dlopen=''" && \
- echo "dlpreopen=''" && \
-- echo "libdir='$(libdir)'") > $1.la
-+ echo "libdir=''") > $1.la
- endef
-
- libavutil.la:
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/gtkdoc-no-tree.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/gtkdoc-no-tree.patch
deleted file mode 100644
index a36fdc9a14..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/gtkdoc-no-tree.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 6f720cebe632d7dc187c6907857d67ce1f7313d6 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Mon, 9 Sep 2019 22:48:49 +0100
-Subject: [PATCH] docs: don't include the type hierarchy
-
-gtk-doc can't generate a type hierarchy when scanning gst-libav, and gtk-doc
-1.30 onwards doesn't write a file if there is no type hierarchy (unlike previous
-releases, which wrote an empty file). This results in the build failing with
-gtk-doc 1.30 onwards, so remove the type hierarchy section from the
-documentation as it doesn't serve any purpose.
-
-Fixes https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/57
----
- docs/plugins/gst-libav-plugins-docs.sgml | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/docs/plugins/gst-libav-plugins-docs.sgml b/docs/plugins/gst-libav-plugins-docs.sgml
-index 75c68f4..f68d554 100644
---- a/docs/plugins/gst-libav-plugins-docs.sgml
-+++ b/docs/plugins/gst-libav-plugins-docs.sgml
-@@ -32,9 +32,4 @@
- <title>gst-libav Plugins</title>
- <xi:include href="xml/plugin-libav.xml" />
- </chapter>
--
-- <chapter>
-- <title>Object Hierarchy</title>
-- <xi:include href="xml/tree_index.sgml" />
-- </chapter>
- </book>
---
-2.22.0
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/mips64_cpu_detection.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/mips64_cpu_detection.patch
deleted file mode 100644
index 90d042b313..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/mips64_cpu_detection.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-It will add -mips64r6 and -mips64r2 to cmdline which will
-cause conflicts
-
-in OE we user mips32r2 and mips64r2 for mips arch versions
-so there is no benefit of detecting it automatically by
-poking at tools especially in cross env
-
-Fixes errors like
-
-linking -mnan=2008 module with previous -mnan=legacy modules
-failed to merge target specific data of file
-
--Khem
-Upstream-Status: Inappropriate [OE-Specific]
-
-Index: gst-libav-1.10.1/gst-libs/ext/libav/configure
-===================================================================
---- gst-libav-1.10.1.orig/gst-libs/ext/libav/configure
-+++ gst-libav-1.10.1/gst-libs/ext/libav/configure
-@@ -5650,12 +5650,9 @@ elif enabled mips; then
-
- # Enable minimum ISA based on selected options
- if enabled mips64; then
-- enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6'
- enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2'
- disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64'
- else
-- enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6'
-- enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5'
- enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2'
- disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32'
- fi
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch
deleted file mode 100644
index 4b85356547..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Description: Workaround to build libav for i586 with gcc 4.9.2 by avoiding memset
-Author: Bernhard Übelacker <bernhardu@vr-web.de>
-
----
-Bug-Debian: https://bugs.debian.org/783082
-Last-Update: 2015-04-28
-
-Upstream-Status: Backport [debian]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
---- gst-libav-1.4.5.orig/gst-libs/ext/libav/libavcodec/h264_cabac.c
-+++ gst-libav-1.4.5/gst-libs/ext/libav/libavcodec/h264_cabac.c
-@@ -2057,7 +2057,11 @@ decode_intra_mb:
- // In deblocking, the quantizer is 0
- h->cur_pic.qscale_table[mb_xy] = 0;
- // All coeffs are present
-- memset(h->non_zero_count[mb_xy], 16, 48);
-+ /*memset(h->non_zero_count[mb_xy], 16, 48);*/
-+ /* avoiding this memset because it leads at least with gcc4.9.2 to error: 'asm' operand has impossible constraints */
-+ for (size_t i = 0; i < 48; i++) {
-+ ( (unsigned char*)(h->non_zero_count[mb_xy]) ) [i] = 16;
-+ }
- h->cur_pic.mb_type[mb_xy] = mb_type;
- sl->last_qscale_diff = 0;
- return 0;
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb
deleted file mode 100644
index d2629b506d..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "Libav-based GStreamer 1.x plugin"
-HOMEPAGE = "http://gstreamer.freedesktop.org/"
-SECTION = "multimedia"
-
-LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
- file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
- file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
- file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-SRC_URI = "http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
- file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
- file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \
- file://mips64_cpu_detection.patch \
- file://0001-configure-check-for-armv7ve-variant.patch \
- file://0001-fix-host-contamination.patch \
- file://gtkdoc-no-tree.patch \
- "
-SRC_URI[md5sum] = "e3a201a45985ddc1327cd496046ca818"
-SRC_URI[sha256sum] = "dfac119043a9cfdcacd7acde77f674ab172cf2537b5812be52f49e9cddc53d9a"
-
-S = "${WORKDIR}/gst-libav-${PV}"
-
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz"
-
-inherit autotools pkgconfig upstream-version-is-even gtk-doc
-
-# CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time,
-# compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the
-# libav copy included in the gst-libav package.
-PACKAGECONFIG ??= "orc yasm"
-
-PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl,"
-PACKAGECONFIG[libav] = "--with-system-libav,,libav"
-PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
-PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,nasm-native"
-PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind"
-
-GSTREAMER_1_0_DEBUG ?= "--disable-debug"
-
-LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure"
-
-LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
- --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
- --ranlib='${RANLIB}' \
- ${GSTREAMER_1_0_DEBUG} \
- --cross-prefix='${HOST_PREFIX}'"
-
-# Disable assembly optimizations for X32, as this libav lacks the support
-PACKAGECONFIG_remove_linux-gnux32 = "yasm"
-LIBAV_EXTRA_CONFIGURE_COMMON_ARG_append_linux-gnux32 = " --disable-asm"
-
-LIBAV_EXTRA_CONFIGURE_COMMON = \
-'${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"'
-
-EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}"
-
-FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
-FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
-FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
-
-# http://errors.yoctoproject.org/Errors/Details/20493/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-# ffmpeg/libav disables PIC on some platforms (e.g. x86-32)
-INSANE_SKIP_${PN} = "textrel"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.2.bb
new file mode 100644
index 0000000000..2fdefc925e
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.2.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Libav-based GStreamer 1.x plugin"
+HOMEPAGE = "http://gstreamer.freedesktop.org/"
+SECTION = "multimedia"
+
+LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
+ file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c"
+
+SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
+ "
+SRC_URI[md5sum] = "eacebd0136ede3a9bd3672eeb338806b"
+SRC_URI[sha256sum] = "c724f612700c15a933c7356fbeabb0bb9571fb5538f8b1b54d4d2d94188deef2"
+
+S = "${WORKDIR}/gst-libav-${PV}"
+
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg"
+
+inherit meson pkgconfig upstream-version-is-even
+
+FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
+FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
+
+delete_unused_libav_copy() {
+ # When building with meson, the internal libav copy is not used.
+ # It is only present for legacy autotools based builds. In future
+ # GStreamer versions, the autotools scripts will be gone, and so
+ # will this internal copy. Until then, it will be present. In order
+ # to make sure this copy is not included in the -src package, just
+ # manually delete the copy.
+ rm -rf "${S}/gst-libs/ext/libav/"
+}
+
+do_unpack[postfuncs] += " delete_unused_libav_copy"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.2.bb
index d94bad36f9..f1bdbd235d 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.2.bb
@@ -7,23 +7,21 @@ LICENSE_FLAGS = "commercial"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
-SRC_URI = "http://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
+SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
-SRC_URI[md5sum] = "c6f8554513980682099a2a9832250b01"
-SRC_URI[sha256sum] = "fef77cddc02784608451c46b9def880b63230a246decf8900f2da2ed54a8af4a"
+SRC_URI[md5sum] = "6362786d2b6cce34de08c86b7847f782"
+SRC_URI[sha256sum] = "11ed411a2eba75610d72331eeb14ff05e2df28f4fd05cb69225a88bec6d27439"
S = "${WORKDIR}/gst-omx-${PV}"
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad virtual/libomxil"
-inherit autotools pkgconfig gettext gtk-doc upstream-version-is-even
-
-acpaths = "-I ${S}/common/m4 -I ${S}/m4"
+inherit meson pkgconfig upstream-version-is-even
GSTREAMER_1_0_OMX_TARGET ?= "bellagio"
GSTREAMER_1_0_OMX_CORE_NAME ?= "${libdir}/libomxil-bellagio.so.0"
-EXTRA_OECONF += "--disable-valgrind --with-omx-target=${GSTREAMER_1_0_OMX_TARGET}"
+EXTRA_OEMESON += "-Dtarget=${GSTREAMER_1_0_OMX_TARGET}"
python __anonymous () {
omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET")
@@ -37,21 +35,13 @@ python __anonymous () {
d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH"))
}
-delete_pkg_m4_file() {
- # Delete m4 files which we provide patched versions of but will be ignored
- # if these exist
- rm -f "${S}/common/m4/pkg.m4"
- rm -f "${S}/common/m4/gtk-doc.m4"
-}
-do_configure[prefuncs] += "delete_pkg_m4_file"
-
set_omx_core_name() {
sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf"
}
do_install[postfuncs] += " set_omx_core_name "
FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
-FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
-RDEPENDS_${PN} = "libomxil"
+VIRTUAL-RUNTIME_libomxil ?= "libomxil"
+RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_libomxil}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
new file mode 100644
index 0000000000..1321852023
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
@@ -0,0 +1,36 @@
+From 97a4d0cd7de8cfbf983acc7e37ba2f8fb73c3e19 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Fri, 18 Oct 2019 00:39:12 +0100
+Subject: [PATCH 1/2] meson: build gir even when cross-compiling if
+ introspection was enabled explicitly
+
+This can be made to work in certain circumstances when
+cross-compiling, so default to not building g-i stuff
+when cross-compiling, but allow it if introspection was
+enabled explicitly via -Dintrospection=enabled.
+
+See gstreamer/gstreamer#454 and gstreamer/gstreamer#381.
+
+Upstream-Status: Backport [97a4d0cd7de8cfbf983acc7e37ba2f8fb73c3e19]
+
+Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 67aeeb4d0..7b3314bd9 100644
+--- a/meson.build
++++ b/meson.build
+@@ -411,7 +411,7 @@ python3 = import('python').find_installation()
+
+ gir = find_program('g-ir-scanner', required : get_option('introspection'))
+ gnome = import('gnome')
+-build_gir = gir.found() and not meson.is_cross_build()
++build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
+ gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
+ 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
+ 'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \
+--
+2.17.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch
deleted file mode 100644
index 25861b6b9d..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f59c5269f92d59a5296cbfeeb682d42095cd88ad Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Thu, 18 Sep 2014 02:24:07 -0400
-Subject: [PATCH] gstreamer1.0-plugins-bad: allow to disable libssh2
-
-libssh2 is automatically linked to if present, this undetermined
-dependency may cause build errors like:
-
- .../x86_64-poky-linux/4.9.0/ld: cannot find -lssh2
-
-libssh2 isn't an oe-core recipe, so allow to disable it from
-configure.
-
-Upstream-Status: Pending
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
----
- configure.ac | 23 +++++++++++++++++------
- 1 file changed, 17 insertions(+), 6 deletions(-)
-
-Index: gst-plugins-bad-1.12.3/configure.ac
-===================================================================
---- gst-plugins-bad-1.12.3.orig/configure.ac
-+++ gst-plugins-bad-1.12.3/configure.ac
-@@ -1202,6 +1202,15 @@ AG_GST_CHECK_FEATURE(CHROMAPRINT, [chrom
- ])
-
- dnl *** Curl ***
-+AC_ARG_ENABLE([libssh2],
-+ [ --enable-libssh2 enable LIBSSH2 support @<:@default=auto@:>@],
-+ [case "${enableval}" in
-+ yes) NEED_SSH2=yes ;;
-+ no) NEED_SSH2=no ;;
-+ auto) NEED_SSH2=auto ;;
-+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-libssh2]) ;;
-+ esac],[NEED_SSH2=auto])
-+
- translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
- AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
- PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
-@@ -1224,12 +1233,14 @@ AG_GST_CHECK_FEATURE(CURL, [Curl plugin]
- ])
- AC_SUBST(CURL_CFLAGS)
- AC_SUBST(CURL_LIBS)
-- PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
-- HAVE_SSH2="yes"
-- AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
-- ], [
-- HAVE_SSH2="no"
-- ])
-+ if test "x$NEED_SSH2" != "xno"; then
-+ PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
-+ HAVE_SSH2="yes"
-+ AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
-+ ], [
-+ HAVE_SSH2="no"
-+ ])
-+ fi
- AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
- AC_SUBST(SSH2_CFLAGS)
- AC_SUBST(SSH2_LIBS)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
new file mode 100644
index 0000000000..4b6591c0d8
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
@@ -0,0 +1,49 @@
+From f41caae14b618ab815ede3c408e7482b00316e3e Mon Sep 17 00:00:00 2001
+From: Andrey Zhizhikin <andrey.z@gmail.com>
+Date: Mon, 27 Jan 2020 10:22:35 +0000
+Subject: [PATCH] opencv: resolve missing opencv data dir in yocto build
+
+When Yocto build is performed, opencv searches for data dir using simple
+'test' command, this fails because pkg-config provides an absolute
+path on the target which needs to be prepended by PKG_CONFIG_SYSROOT_DIR
+in order for the 'test' utility to pick up the absolute path.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
+---
+ ext/opencv/meson.build | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build
+index f38b55dfe..a26403482 100644
+--- a/ext/opencv/meson.build
++++ b/ext/opencv/meson.build
+@@ -78,20 +78,21 @@ else
+ endif
+
+ if opencv_found
++ pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip()
+ opencv_prefix = opencv_dep.get_pkgconfig_variable('prefix')
+ gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"']
+
+ # Check the data dir used by opencv for its xml data files
+ # Use prefix from pkg-config to be compatible with cross-compilation
+- r = run_command('test', '-d', opencv_prefix + '/share/opencv')
++ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv')
+ if r.returncode() == 0
+ gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv"'
+ else
+- r = run_command('test', '-d', opencv_prefix + '/share/OpenCV')
++ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/OpenCV')
+ if r.returncode() == 0
+ gstopencv_cargs += '-DOPENCV_PATH_NAME="OpenCV"'
+ else
+- r = run_command('test', '-d', opencv_prefix + '/share/opencv4')
++ r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv4')
+ if r.returncode() == 0
+ gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv4"'
+ else
+--
+2.17.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb
deleted file mode 100644
index f9289e92d2..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.0.bb
+++ /dev/null
@@ -1,145 +0,0 @@
-require gstreamer1.0-plugins.inc
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
- file://configure-allow-to-disable-libssh2.patch \
- file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \
- file://avoid-including-sys-poll.h-directly.patch \
- file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \
- file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
-"
-SRC_URI[md5sum] = "e9e562d86c1527c44d904500dd35e326"
-SRC_URI[sha256sum] = "22139de35626ada6090bdfa3423b27b7fc15a0198331d25c95e6b12cb1072b05"
-
-S = "${WORKDIR}/gst-plugins-bad-${PV}"
-
-LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
- file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 "
-
-DEPENDS += "gstreamer1.0-plugins-base"
-
-inherit gettext gobject-introspection
-
-PACKAGECONFIG ??= " \
- ${GSTREAMER_ORC} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
- bz2 curl dash dtls hls rsvg sbc smoothstreaming sndfile ttml uvch264 webp \
-"
-
-# the gl packageconfig enables OpenGL elements that haven't been ported
-# to -base yet. They depend on the gstgl library in -base, so we do
-# not add GL dependencies here, since these are taken care of in -base.
-
-PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass"
-PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez5"
-PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
-PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2"
-PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394"
-PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb"
-PACKAGECONFIG[dtls] = "--enable-dtls,--disable-dtls,openssl"
-PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac"
-PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2"
-PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa"
-PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
-PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=nettle,--disable-hls,nettle"
-PACKAGECONFIG[gl] = "--enable-gl,--disable-gl,"
-PACKAGECONFIG[kms] = "--enable-kms,--disable-kms,libdrm"
-PACKAGECONFIG[libde265] = "--enable-libde265,--disable-libde265,libde265"
-PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms"
-PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2"
-PACKAGECONFIG[lcms2] = "--enable-lcms2,--disable-lcms2,lcms"
-PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
-PACKAGECONFIG[msdk] = "--enable-msdk,--disable-msdk,intel-mediasdk"
-PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon"
-PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
-PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
-PACKAGECONFIG[openh264] = "--enable-openh264,--disable-openh264,openh264"
-PACKAGECONFIG[openjpeg] = "--enable-openjpeg,--disable-openjpeg,openjpeg"
-PACKAGECONFIG[openmpt] = "--enable-openmpt,--disable-openmpt,libopenmpt"
-# the opus encoder/decoder elements are now in the -base package,
-# but the opus parser remains in -bad
-PACKAGECONFIG[opusparse] = "--enable-opus,--disable-opus,libopus"
-PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav"
-PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg"
-PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump"
-PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc"
-PACKAGECONFIG[sctp] = "--enable-sctp,--disable-sctp,usrsctp"
-PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2"
-PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1"
-PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp"
-PACKAGECONFIG[tinyalsa] = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa"
-PACKAGECONFIG[ttml] = "--enable-ttml,--disable-ttml,libxml2 pango cairo"
-PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev"
-PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc"
-PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc"
-PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,vulkan-loader"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm"
-PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp"
-PACKAGECONFIG[webrtc] = "--enable-webrtc,--disable-webrtc,libnice"
-PACKAGECONFIG[webrtcdsp] = "--enable-webrtcdsp,--disable-webrtcdsp,webrtc-audio-processing"
-
-# these plugins have no corresponding library in OE-core or meta-openembedded:
-# openni2 winks direct3d directsound winscreencap apple_media iqa
-# android_media avc bs2b chromaprint dts fdkaac gme gsm kate ladspa
-# lv2 mpeg2enc mplex musepack nvenc ofa opensles soundtouch
-# spandsp teletextdec vdpau wasapi wpe x265 zbar
-
-EXTRA_OECONF += " \
- --enable-decklink \
- --enable-dvb \
- --enable-fbdev \
- --enable-ipcpipeline \
- --enable-netsim \
- --enable-shm \
- --disable-android_media \
- --disable-aom \
- --disable-apple_media \
- --disable-avc \
- --disable-bs2b \
- --disable-chromaprint \
- --disable-direct3d \
- --disable-directsound \
- --disable-dts \
- --disable-fdk_aac \
- --disable-gme \
- --disable-gsm \
- --disable-iqa \
- --disable-kate \
- --disable-ladspa \
- --disable-lv2 \
- --disable-mpeg2enc \
- --disable-mplex \
- --disable-musepack \
- --disable-nvenc \
- --disable-ofa \
- --disable-openexr \
- --disable-openni2 \
- --disable-opensles \
- --disable-soundtouch \
- --disable-spandsp \
- --disable-srt \
- --disable-teletextdec \
- --disable-vdpau \
- --disable-wasapi \
- --disable-wildmidi \
- --disable-winks \
- --disable-winscreencap \
- --disable-wpe \
- --disable-x265 \
- --disable-zbar \
- ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \
-"
-
-export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"
-
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-FILES_${PN}-freeverb += "${datadir}/gstreamer-${LIBV}/presets/GstFreeverb.prs"
-FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/${LIBV}/opencv*"
-FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs"
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
new file mode 100644
index 0000000000..99176b2571
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb
@@ -0,0 +1,147 @@
+require gstreamer1.0-plugins-common.inc
+
+SRC_URI = " \
+ https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
+ file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
+ file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \
+ file://avoid-including-sys-poll.h-directly.patch \
+ file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \
+ file://opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
+"
+SRC_URI[md5sum] = "ccc7404230afddec723bbdb63c89feec"
+SRC_URI[sha256sum] = "f1cb7aa2389569a5343661aae473f0a940a90b872001824bc47fa8072a041e74"
+
+S = "${WORKDIR}/gst-plugins-bad-${PV}"
+
+LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
+ file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 "
+
+DEPENDS += "gstreamer1.0-plugins-base"
+
+inherit gobject-introspection
+
+PACKAGECONFIG ??= " \
+ ${GSTREAMER_ORC} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
+ bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \
+ ttml uvch264 webp \
+"
+
+PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass"
+PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5"
+PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2"
+PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo"
+PACKAGECONFIG[curl] = "-Dcurl=enabled,-Dcurl=disabled,curl"
+PACKAGECONFIG[dash] = "-Ddash=enabled,-Ddash=disabled,libxml2"
+PACKAGECONFIG[dc1394] = "-Ddc1394=enabled,-Ddc1394=disabled,libdc1394"
+PACKAGECONFIG[directfb] = "-Ddirectfb=enabled,-Ddirectfb=disabled,directfb"
+PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl"
+PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac"
+PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2"
+PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
+PACKAGECONFIG[hls] = "-Dhls=enabled -Dhls-crypto=nettle,-Dhls=disabled,nettle"
+# the gl packageconfig enables OpenGL elements that haven't been ported
+# to -base yet. They depend on the gstgl library in -base, so we do
+# not add GL dependencies here, since these are taken care of in -base.
+PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled,"
+PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm"
+PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265"
+PACKAGECONFIG[libmms] = "-Dlibmms=enabled,-Dlibmms=disabled,libmms"
+PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2"
+PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms"
+PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
+PACKAGECONFIG[msdk] = "-Dmsdk=enabled,-Dmsdk=disabled,intel-mediasdk"
+PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon"
+PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
+PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv"
+PACKAGECONFIG[openh264] = "-Dopenh264=enabled,-Dopenh264=disabled,openh264"
+PACKAGECONFIG[openjpeg] = "-Dopenjpeg=enabled,-Dopenjpeg=disabled,openjpeg"
+PACKAGECONFIG[openmpt] = "-Dopenmpt=enabled,-Dopenmpt=disabled,libopenmpt"
+# the opus encoder/decoder elements are now in the -base package,
+# but the opus parser remains in -bad
+PACKAGECONFIG[opusparse] = "-Dopus=enabled,-Dopus=disabled,libopus"
+PACKAGECONFIG[resindvd] = "-Dresindvd=enabled,-Dresindvd=disabled,libdvdread libdvdnav"
+PACKAGECONFIG[rsvg] = "-Drsvg=enabled,-Drsvg=disabled,librsvg"
+PACKAGECONFIG[rtmp] = "-Drtmp=enabled,-Drtmp=disabled,rtmpdump"
+PACKAGECONFIG[sbc] = "-Dsbc=enabled,-Dsbc=disabled,sbc"
+PACKAGECONFIG[sctp] = "-Dsctp=enabled,-Dsctp=disabled,usrsctp"
+PACKAGECONFIG[smoothstreaming] = "-Dsmoothstreaming=enabled,-Dsmoothstreaming=disabled,libxml2"
+PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
+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"
+PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols libdrm"
+PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp"
+PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice"
+PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing"
+PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar"
+
+# these plugins currently have no corresponding library in OE-core or meta-openembedded:
+# 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 wasapi wildmidi winks
+# winscreencap wpe x265
+
+EXTRA_OEMESON += " \
+ -Ddecklink=enabled \
+ -Ddvb=enabled \
+ -Dfbdev=enabled \
+ -Dipcpipeline=enabled \
+ -Dnetsim=enabled \
+ -Dshm=enabled \
+ -Daom=disabled \
+ -Dandroidmedia=disabled \
+ -Dapplemedia=disabled \
+ -Dbs2b=disabled \
+ -Dchromaprint=disabled \
+ -Dd3dvideosink=disabled \
+ -Ddirectsound=disabled \
+ -Ddts=disabled \
+ -Dfdkaac=disabled \
+ -Dflite=disabled \
+ -Dgme=disabled \
+ -Dgsm=disabled \
+ -Diqa=disabled \
+ -Dkate=disabled \
+ -Dladspa=disabled \
+ -Dlv2=disabled \
+ -Dmpeg2enc=disabled \
+ -Dmplex=disabled \
+ -Dmusepack=disabled \
+ -Dnvdec=disabled \
+ -Dnvenc=disabled \
+ -Dofa=disabled \
+ -Dopenexr=disabled \
+ -Dopenni2=disabled \
+ -Dopensles=disabled \
+ -Dsoundtouch=disabled \
+ -Dspandsp=disabled \
+ -Dsrt=disabled \
+ -Dteletext=disabled \
+ -Dwasapi=disabled \
+ -Dwildmidi=disabled \
+ -Dwinks=disabled \
+ -Dwinscreencap=disabled \
+ -Dwpe=disabled \
+ -Dx265=disabled \
+ ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-Dyadif=disabled", "", d)} \
+"
+
+export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"
+
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+FILES_${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
+FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
+FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch
deleted file mode 100644
index 251dc172cb..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 61a672e79c8cb1aeeeda4c968997c577ac73a8f3 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 12 May 2017 16:47:12 +0300
-Subject: [PATCH] gstreamer-gl.pc.in: don't append GL_CFLAGS to CFLAGS
-
-Dependencies' include directories should not be added in this way;
-it causes problems when cross-compiling in sysroot environments.
-
-Upstream-Status: Pending
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- pkgconfig/gstreamer-gl.pc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pkgconfig/gstreamer-gl.pc.in b/pkgconfig/gstreamer-gl.pc.in
-index dc672a9..8c290ba 100644
---- a/pkgconfig/gstreamer-gl.pc.in
-+++ b/pkgconfig/gstreamer-gl.pc.in
-@@ -13,4 +13,4 @@ Version: @VERSION@
- Requires: gstreamer-video-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@ gstreamer-@GST_API_VERSION@
-
- Libs: -L${libdir} -lgstgl-@GST_API_VERSION@
--Cflags: -I${includedir} -I${libdir}/gstreamer-@GST_API_VERSION@/include @GL_CFLAGS@
-+Cflags: -I${includedir} -I${libdir}/gstreamer-@GST_API_VERSION@/include
---
-2.7.4
-
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
new file mode 100644
index 0000000000..49ab471414
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
@@ -0,0 +1,36 @@
+From 30672ba7d134553e59935ddc875104adba26f25c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Thu, 17 Oct 2019 20:06:24 +0100
+Subject: [PATCH] meson: build gir even when cross-compiling if introspection
+ was enabled explicitly
+
+This can be made to work in certain circumstances when
+cross-compiling, so default to not building g-i stuff
+when cross-compiling, but allow it if introspection was
+enabled explicitly via -Dintrospection=enabled.
+
+See gstreamer/gstreamer#454 and gstreamer/gstreamer#381.
+
+Upstream-Status: Backport [30672ba7d134553e59935ddc875104adba26f25c]
+
+Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 264d84c9e..c8147c224 100644
+--- a/meson.build
++++ b/meson.build
+@@ -372,7 +372,7 @@ endif
+
+ gir = find_program('g-ir-scanner', required : get_option('introspection'))
+ gnome = import('gnome')
+-build_gir = gir.found() and not meson.is_cross_build()
++build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
+ gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
+ 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \
+ 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
+--
+2.17.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
deleted file mode 100644
index 08cbfb7c2a..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
+++ /dev/null
@@ -1,295 +0,0 @@
-From 9601fc0cd6751a1affdc8717217b95931db31d7f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 5 Apr 2018 10:26:25 +0800
-Subject: [PATCH] Makefile.am: prefix calls to pkg-config with
- PKG_CONFIG_SYSROOT_DIR
-
-Upstream-Status: Pending [review on oe-core maillist]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- gst-libs/gst/allocators/Makefile.am | 4 ++--
- gst-libs/gst/app/Makefile.am | 4 ++--
- gst-libs/gst/audio/Makefile.am | 12 ++++++------
- gst-libs/gst/gl/Makefile.am | 8 ++++----
- gst-libs/gst/pbutils/Makefile.am | 12 ++++++------
- gst-libs/gst/riff/Makefile.am | 8 ++++----
- gst-libs/gst/rtp/Makefile.am | 8 ++++----
- gst-libs/gst/rtsp/Makefile.am | 4 ++--
- gst-libs/gst/sdp/Makefile.am | 4 ++--
- gst-libs/gst/tag/Makefile.am | 8 ++++----
- gst-libs/gst/video/Makefile.am | 8 ++++----
- 11 files changed, 40 insertions(+), 40 deletions(-)
-
-diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am
-index 1ecc950..d6417ac 100644
---- a/gst-libs/gst/allocators/Makefile.am
-+++ b/gst-libs/gst/allocators/Makefile.am
-@@ -39,7 +39,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@
- --c-include "gst/allocators/allocators.h" \
- -I$(top_srcdir)/gst-libs \
- -I$(top_builddir)/gst-libs \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --library=libgstallocators-@GST_API_VERSION@.la \
- --include=Gst-@GST_API_VERSION@ \
- --libtool="${LIBTOOL}" \
-@@ -63,7 +63,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
- $(INTROSPECTION_COMPILER) \
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
- CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
-diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
-index 5bfd606..6441674 100644
---- a/gst-libs/gst/app/Makefile.am
-+++ b/gst-libs/gst/app/Makefile.am
-@@ -51,8 +51,8 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO
- --c-include "gst/app/app.h" \
- -I$(top_srcdir)/gst-libs \
- -I$(top_builddir)/gst-libs \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --library=libgstapp-@GST_API_VERSION@.la \
- --include=Gst-@GST_API_VERSION@ \
- --include=GstBase-@GST_API_VERSION@ \
-diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
-index 7fb65f2..5379f79 100644
---- a/gst-libs/gst/audio/Makefile.am
-+++ b/gst-libs/gst/audio/Makefile.am
-@@ -176,12 +176,12 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE
- -I$(top_srcdir)/gst-libs \
- -I$(top_builddir)/gst-libs \
- --c-include "gst/audio/audio.h" \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
- --library=libgstaudio-@GST_API_VERSION@.la \
-- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
-- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
-+ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
-+ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
- --library-path="$(top_builddir)/gst-libs/gst/tag/" \
- --include=Gst-@GST_API_VERSION@ \
- --include=GstBase-@GST_API_VERSION@ \
-@@ -210,8 +210,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
- --includedir="$(top_builddir)/gst-libs/gst/tag/" \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
- CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
-diff --git a/gst-libs/gst/gl/Makefile.am b/gst-libs/gst/gl/Makefile.am
-index 3276d7f..0cdfe26 100644
---- a/gst-libs/gst/gl/Makefile.am
-+++ b/gst-libs/gst/gl/Makefile.am
-@@ -209,9 +209,9 @@ GstGL-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstgl-@GST_API_VERSION@
- $(GST_PLUGINS_BASE_CFLAGS) \
- $(GL_CFLAGS) \
- --add-include-path="$(top_builddir)/gst-libs/gst/video/" \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --library-path="$(top_builddir)/gst-libs/gst/video/" \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --library=libgstgl-@GST_API_VERSION@.la \
- --include=Gst-@GST_API_VERSION@ \
- --include=GstBase-@GST_API_VERSION@ \
-@@ -241,8 +241,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
- --includedir="$(top_builddir)/gst-libs/gst/video/" \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
- CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
-diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
-index 35a6e44..49d6894 100644
---- a/gst-libs/gst/pbutils/Makefile.am
-+++ b/gst-libs/gst/pbutils/Makefile.am
-@@ -88,14 +88,14 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP
- --c-include "gst/pbutils/pbutils.h" \
- -I$(top_srcdir)/gst-libs \
- -I$(top_builddir)/gst-libs \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
- --add-include-path="$(top_builddir)/gst-libs/gst/video/" \
- --add-include-path="$(top_builddir)/gst-libs/gst/audio/" \
- --library=libgstpbutils-@GST_API_VERSION@.la \
-- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
-- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
-+ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
-+ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
- --library-path="$(top_builddir)/gst-libs/gst/tag/" \
- --library-path="$(top_builddir)/gst-libs/gst/video/" \
- --library-path="$(top_builddir)/gst-libs/gst/audio/" \
-@@ -128,8 +128,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
- $(INTROSPECTION_COMPILER) \
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --includedir="$(top_builddir)/gst-libs/gst/tag/" \
- --includedir="$(top_builddir)/gst-libs/gst/video/" \
- --includedir="$(top_builddir)/gst-libs/gst/audio/" \
-diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am
-index e66ef4f..c8c588a 100644
---- a/gst-libs/gst/riff/Makefile.am
-+++ b/gst-libs/gst/riff/Makefile.am
-@@ -43,8 +43,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS)
- # --c-include "gst/riff/riff.h" \
- # --add-include-path=$(builddir)/../tag \
- # --add-include-path=$(builddir)/../audio \
--# --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--# --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+# --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+# --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- # --library=libgstriff-@GST_API_VERSION@.la \
- # --include=GstAudio-@GST_API_VERSION@ \
- # --include=GstTag-@GST_API_VERSION@ \
-@@ -75,8 +75,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS)
- # --includedir=$(builddir) \
- # --includedir=$(builddir)/../tag \
- # --includedir=$(builddir)/../audio \
--# --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--# --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+# --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+# --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- # $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
- #
- #CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
-diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
-index 77ebeeb..9aee788 100644
---- a/gst-libs/gst/rtp/Makefile.am
-+++ b/gst-libs/gst/rtp/Makefile.am
-@@ -66,8 +66,8 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO
- --c-include "gst/rtp/rtp.h" \
- -I$(top_builddir)/gst-libs \
- -I$(top_srcdir)/gst-libs \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --library=libgstrtp-@GST_API_VERSION@.la \
- --include=Gst-@GST_API_VERSION@ \
- --include=GstBase-@GST_API_VERSION@ \
-@@ -94,8 +94,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
- $(INTROSPECTION_COMPILER) \
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
- CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
-diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
-index db9d0fd..79027cb 100644
---- a/gst-libs/gst/rtsp/Makefile.am
-+++ b/gst-libs/gst/rtsp/Makefile.am
-@@ -71,8 +71,8 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
- -I$(top_builddir)/gst-libs \
- -I$(top_srcdir)/gst-libs \
- --add-include-path=$(builddir)/../sdp \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --library=libgstrtsp-@GST_API_VERSION@.la \
- --include=Gio-2.0 \
- --include=Gst-@GST_API_VERSION@ \
-diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
-index 6e05cc7..c7cf514 100644
---- a/gst-libs/gst/sdp/Makefile.am
-+++ b/gst-libs/gst/sdp/Makefile.am
-@@ -31,7 +31,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO
- --warn-all \
- --c-include "gst/sdp/sdp.h" \
- -I$(top_srcdir)/gst-libs \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --library=libgstsdp-@GST_API_VERSION@.la \
- --include=Gst-@GST_API_VERSION@ \
- --libtool="${LIBTOOL}" \
-@@ -55,7 +55,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
- $(INTROSPECTION_COMPILER) \
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
- CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
-diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
-index c86515b..363e6d2 100644
---- a/gst-libs/gst/tag/Makefile.am
-+++ b/gst-libs/gst/tag/Makefile.am
-@@ -61,8 +61,8 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO
- --c-include "gst/tag/tag.h" \
- -I$(top_srcdir)/gst-libs \
- -I$(top_builddir)/gst-libs \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --library=libgsttag-@GST_API_VERSION@.la \
- --include=Gst-@GST_API_VERSION@ \
- --include=GstBase-@GST_API_VERSION@ \
-@@ -89,8 +89,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
- $(INTROSPECTION_COMPILER) \
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
- CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
-diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
-index 0f8455f..8c9955c 100644
---- a/gst-libs/gst/video/Makefile.am
-+++ b/gst-libs/gst/video/Makefile.am
-@@ -124,8 +124,8 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE
- --c-include "gst/video/video.h" \
- -I$(top_srcdir)/gst-libs \
- -I$(top_builddir)/gst-libs \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --library=libgstvideo-@GST_API_VERSION@.la \
- --include=Gst-@GST_API_VERSION@ \
- --include=GstBase-@GST_API_VERSION@ \
-@@ -152,8 +152,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
- $(INTROSPECTION_COMPILER) \
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-+ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
- CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch
new file mode 100644
index 0000000000..ca85744c19
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch
@@ -0,0 +1,235 @@
+From 685731e989dc074a4b0d48b6c8062e2738f09719 Mon Sep 17 00:00:00 2001
+From: Thibault Saunier <tsaunier@igalia.com>
+Date: Mon, 22 Oct 2018 11:44:37 +0200
+Subject: [PATCH] meson: Add variables for gir files
+
+And flatten list of sources for dependencies
+
+Upstream-Status: Backport [685731e989dc074a4b0d48b6c8062e2738f09719]
+
+Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
+---
+ gst-libs/gst/allocators/meson.build | 5 +++--
+ gst-libs/gst/app/meson.build | 6 ++++--
+ gst-libs/gst/audio/meson.build | 5 +++--
+ gst-libs/gst/pbutils/meson.build | 5 +++--
+ gst-libs/gst/rtp/meson.build | 6 ++++--
+ gst-libs/gst/rtsp/meson.build | 5 +++--
+ gst-libs/gst/sdp/meson.build | 6 ++++--
+ gst-libs/gst/tag/meson.build | 5 +++--
+ gst-libs/gst/video/meson.build | 5 +++--
+ 9 files changed, 30 insertions(+), 18 deletions(-)
+
+diff --git a/gst-libs/gst/allocators/meson.build b/gst-libs/gst/allocators/meson.build
+index 364baeebf..56f156dc3 100644
+--- a/gst-libs/gst/allocators/meson.build
++++ b/gst-libs/gst/allocators/meson.build
+@@ -22,7 +22,7 @@ gstallocators = library('gstallocators-@0@'.format(api_version),
+ allocators_gen_sources = []
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/allocators/allocators.h' ]
+- allocators_gen_sources += [gnome.generate_gir(gstallocators,
++ allocators_gir = gnome.generate_gir(gstallocators,
+ sources : gst_allocators_sources + gst_allocators_headers,
+ namespace : 'GstAllocators',
+ nsversion : api_version,
+@@ -33,7 +33,8 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : [gst_dep]
+- )]
++ )
++ allocators_gen_sources += allocators_gir
+ endif
+
+ allocators_dep = declare_dependency(link_with: gstallocators,
+diff --git a/gst-libs/gst/app/meson.build b/gst-libs/gst/app/meson.build
+index 81dd0f42c..7a90f5e10 100644
+--- a/gst-libs/gst/app/meson.build
++++ b/gst-libs/gst/app/meson.build
+@@ -32,7 +32,7 @@ gstapp = library('gstapp-@0@'.format(api_version),
+
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/app/app.h' ]
+- app_gen_sources += [gnome.generate_gir(gstapp,
++ app_gir = gnome.generate_gir(gstapp,
+ sources : app_sources + app_headers + [gstapp_c] + [gstapp_h],
+ namespace : 'GstApp',
+ nsversion : api_version,
+@@ -43,7 +43,9 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : [gst_dep, gst_base_dep]
+- )]
++ )
++
++ app_gen_sources += app_gir
+ endif
+
+ app_dep = declare_dependency(link_with: gstapp,
+diff --git a/gst-libs/gst/audio/meson.build b/gst-libs/gst/audio/meson.build
+index 0e4efab2e..2a449d4bf 100644
+--- a/gst-libs/gst/audio/meson.build
++++ b/gst-libs/gst/audio/meson.build
+@@ -153,7 +153,7 @@ gstaudio = library('gstaudio-@0@'.format(api_version),
+
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/audio/audio.h' ]
+- audio_gen_sources += [gnome.generate_gir(gstaudio,
++ audio_gir = gnome.generate_gir(gstaudio,
+ sources : audio_src + audio_headers + [gstaudio_c] + [gstaudio_h],
+ namespace : 'GstAudio',
+ nsversion : api_version,
+@@ -164,7 +164,8 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : gstaudio_deps
+- )]
++ )
++ audio_gen_sources += [audio_gir]
+ endif
+
+ audio_dep = declare_dependency(link_with : gstaudio,
+diff --git a/gst-libs/gst/pbutils/meson.build b/gst-libs/gst/pbutils/meson.build
+index 2faf62622..0e96722fd 100644
+--- a/gst-libs/gst/pbutils/meson.build
++++ b/gst-libs/gst/pbutils/meson.build
+@@ -63,7 +63,7 @@ pbutils = library('gstpbutils-@0@'.format(api_version),
+ pbutils_gen_sources = [gstpbutils_h, gst_pbutils_version_h]
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/pbutils/pbutils.h' ]
+- pbutils_gen_sources += [gnome.generate_gir(pbutils,
++ pbutils_gir = gnome.generate_gir(pbutils,
+ sources : pbutils_sources + pbutils_headers + [gstpbutils_h, gst_pbutils_version_h],
+ namespace : 'GstPbutils',
+ nsversion : api_version,
+@@ -74,7 +74,8 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : gstpbutils_deps
+- )]
++ )
++ pbutils_gen_sources += [pbutils_gir]
+ endif
+
+ pbutils_dep = declare_dependency(link_with : pbutils,
+diff --git a/gst-libs/gst/rtp/meson.build b/gst-libs/gst/rtp/meson.build
+index f47ec6592..7ea6658d5 100644
+--- a/gst-libs/gst/rtp/meson.build
++++ b/gst-libs/gst/rtp/meson.build
+@@ -49,7 +49,7 @@ gst_rtp = library('gstrtp-@0@'.format(api_version),
+ rtp_gen_sources = [gstrtp_enum_h]
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtp/rtp.h' ]
+- rtp_gen_sources += [gnome.generate_gir(gst_rtp,
++ rtp_gir = gnome.generate_gir(gst_rtp,
+ sources : rtp_sources + rtp_headers + [gstrtp_enum_c] + [gstrtp_enum_h],
+ namespace : 'GstRtp',
+ nsversion : api_version,
+@@ -60,7 +60,9 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : gstrtp_deps
+- )]
++ )
++
++ rtp_gen_sources += [rtp_gir]
+ endif
+
+
+diff --git a/gst-libs/gst/rtsp/meson.build b/gst-libs/gst/rtsp/meson.build
+index 27e309d5a..3632adceb 100644
+--- a/gst-libs/gst/rtsp/meson.build
++++ b/gst-libs/gst/rtsp/meson.build
+@@ -54,7 +54,7 @@ gst_rtsp = library('gstrtsp-@0@'.format(api_version),
+ rtsp_gen_sources = [gstrtsp_h]
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtsp/rtsp.h' ]
+- rtsp_gen_sources += [gnome.generate_gir(gst_rtsp,
++ rtsp_gir = gnome.generate_gir(gst_rtsp,
+ sources : rtsp_sources + rtsp_headers + [gstrtsp_c] + [gstrtsp_h],
+ namespace : 'GstRtsp',
+ nsversion : api_version,
+@@ -65,7 +65,8 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : gstrtsp_deps + [sdp_dep]
+- )]
++ )
++ rtsp_gen_sources += [rtsp_gir]
+ endif
+
+ rtsp_dep = declare_dependency(link_with : gst_rtsp,
+diff --git a/gst-libs/gst/sdp/meson.build b/gst-libs/gst/sdp/meson.build
+index 62c18b732..24cdb5293 100644
+--- a/gst-libs/gst/sdp/meson.build
++++ b/gst-libs/gst/sdp/meson.build
+@@ -23,7 +23,7 @@ gstsdp = library('gstsdp-@0@'.format(api_version),
+ sdp_gen_sources = []
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/sdp/sdp.h' ]
+- sdp_gen_sources += [gnome.generate_gir(gstsdp,
++ sdp_gir = gnome.generate_gir(gstsdp,
+ sources : gst_sdp_sources + gst_sdp_headers,
+ namespace : 'GstSdp',
+ nsversion : api_version,
+@@ -34,7 +34,9 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : rtsp_deps
+- )]
++ )
++
++ sdp_gen_sources += [sdp_gir]
+ endif
+
+ sdp_dep = declare_dependency(link_with: gstsdp,
+diff --git a/gst-libs/gst/tag/meson.build b/gst-libs/gst/tag/meson.build
+index 27e66fd63..5ec37392a 100644
+--- a/gst-libs/gst/tag/meson.build
++++ b/gst-libs/gst/tag/meson.build
+@@ -93,7 +93,7 @@ gsttag = library('gsttag-@0@'.format(api_version),
+
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/tag/tag.h' ]
+- tag_gen_sources += [gnome.generate_gir(gsttag,
++ tag_gir = gnome.generate_gir(gsttag,
+ sources : tag_sources + tag_headers + [gsttag_h] + [gsttag_c],
+ namespace : 'GstTag',
+ nsversion : api_version,
+@@ -104,7 +104,8 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : tag_deps
+- )]
++ )
++ tag_gen_sources += [tag_gir]
+ endif
+
+ tag_dep = declare_dependency(link_with: gsttag,
+diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build
+index 5b35e1943..bf77aa157 100644
+--- a/gst-libs/gst/video/meson.build
++++ b/gst-libs/gst/video/meson.build
+@@ -138,7 +138,7 @@ gstvideo = library('gstvideo-@0@'.format(api_version),
+
+ if build_gir
+ gst_gir_extra_args = gir_init_section + [ '--c-include=gst/video/video.h' ]
+- video_gen_sources += [gnome.generate_gir(gstvideo,
++ video_gir = gnome.generate_gir(gstvideo,
+ sources : video_sources + video_headers + [gstvideo_c] + [gstvideo_h],
+ namespace : 'GstVideo',
+ nsversion : api_version,
+@@ -149,7 +149,8 @@ if build_gir
+ install : true,
+ extra_args : gst_gir_extra_args,
+ dependencies : gstvideo_deps
+- )]
++ )
++ video_gen_sources += [video_gir]
+ endif
+
+ video_dep = declare_dependency(link_with : gstvideo,
+--
+2.17.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch
deleted file mode 100644
index 98ffdb1c10..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b9765efb1696e3e2e79f2955f759be199fe34882 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 26 Oct 2015 17:29:37 +0200
-Subject: [PATCH] riff: add missing include directories when calling
- introspection scanner
-
-Upstream-Status: Pending [review on oe-core maillist]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- gst-libs/gst/riff/Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am
-index c8c588a..c096453 100644
---- a/gst-libs/gst/riff/Makefile.am
-+++ b/gst-libs/gst/riff/Makefile.am
-@@ -41,6 +41,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS)
- # --strip-prefix=Gst \
- # --warn-all \
- # --c-include "gst/riff/riff.h" \
-+# -I$(top_srcdir)/gst-libs \
-+# -I$(top_builddir)/gst-libs \
- # --add-include-path=$(builddir)/../tag \
- # --add-include-path=$(builddir)/../audio \
- # --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
deleted file mode 100644
index 97a0d68cfb..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 53b5868491cf99ee797192395dbfeb69df23edd2 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 26 Oct 2015 17:30:14 +0200
-Subject: [PATCH] rtsp: drop incorrect reference to gstreamer-sdp in
- Makefile.am
-
-Upstream-Status: Pending [review on oe-core maillist]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- gst-libs/gst/rtsp/Makefile.am | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
-index 79027cb..2987e23 100644
---- a/gst-libs/gst/rtsp/Makefile.am
-+++ b/gst-libs/gst/rtsp/Makefile.am
-@@ -82,7 +82,6 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
- --pkg gio-2.0 \
- --pkg gstreamer-@GST_API_VERSION@ \
- --pkg gstreamer-base-@GST_API_VERSION@ \
-- --pkg gstreamer-sdp-@GST_API_VERSION@ \
- --pkg-export gstreamer-rtsp-@GST_API_VERSION@ \
- --add-init-section="$(INTROSPECTION_INIT)" \
- --output $@ \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/link-with-libvchostif.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/link-with-libvchostif.patch
deleted file mode 100644
index 34f7c2284f..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/link-with-libvchostif.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 9866f51e5e0913f1e453eb574618bf7432f38cb6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 11 Apr 2018 10:46:33 +0800
-Subject: [PATCH] Add -lvchostif to link when using -lEGL on rpi
-
-This is required because libEGL from userland uses sybols
-from this library.
-
-lib/libEGL.so.1.0.0 121: 00000000 0 FUNC GLOBAL DEFAULT UND vc_dispmanx_element_add
- 1552: 00000000 0 FUNC GLOBAL DEFAULT UND vc_dispmanx_element_add
-
-These symbols are provided by libvchostif as seen below
-
-lib/libvchostif.so
- 252: 0000b161 192 FUNC GLOBAL DEFAULT 9 vc_dispmanx_element_add
- 809: 0000b161 192 FUNC GLOBAL DEFAULT 9 vc_dispmanx_element_add
-
-With this explicit link, plugins fail during runtime
-
-(gst-plugin-scanner:571): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-1.0/libgstomx.so': Error relocating /usr/lib/libgstgl-1.0.so.0: vc_dispmanx_element_add: symbol not found
-(gst-plugin-scanner:571): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-1.0/libgstopengl.so': Error relocating /usr/lib/libgstgl-1.0.so.0: vc_dispmanx_element_add: symbol not found
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- m4/gst-gl.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/m4/gst-gl.m4 b/m4/gst-gl.m4
-index 1e97240..ab7774c 100644
---- a/m4/gst-gl.m4
-+++ b/m4/gst-gl.m4
-@@ -275,7 +275,7 @@ case $host in
- HAVE_EGL=yes
- HAVE_GLES2=yes
- HAVE_EGL_RPI=yes
-- EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
-+ EGL_LIBS="-lbcm_host -lvchostif -lvcos -lvchiq_arm"
- EGL_CFLAGS=""
- AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
- ])
---
-2.7.4
-
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch
deleted file mode 100644
index 23950b67f2..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 7ffa6e3d00e1d8a060f3f4c2bb9a72691af05d79 Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Wed, 20 Jan 2016 13:00:00 -0800
-Subject: [PATCH] make gio_unix_2_0 dependency configurable
-
-Prior to 1.7.1, gst-plugins-base accepted a configure option to
-disable gio_unix_2_0, however it was implemented incorrectly using
-AG_GST_CHECK_FEATURE. That was fixed in 1.7.1 by making the
-dependency unconditional.
-
- http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=aadefefba88afe4acbe64454650f24e7ce7c8d70
-
-To make builds deterministic, re-instate support for
---disable-gio_unix_2_0, but implement it using the AC_ARG_ENABLE
-instead of AG_GST_CHECK_FEATURE.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-
----
- configure.ac | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 12807bc..35a0bf3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -806,9 +806,16 @@ AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
- AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
-
- dnl *** gio-unix-2.0 for tests/check/pipelines/tcp.c ***
-+AC_ARG_ENABLE([gio_unix_2_0],
-+ [AS_HELP_STRING([--disable-gio_unix_2_0],[disable use of gio_unix_2_0])],
-+ [],
-+ [enable_gio_unix_2_0=yes])
-+
-+if test "x${enable_gio_unix_2_0}" != "xno"; then
- PKG_CHECK_MODULES(GIO_UNIX_2_0, gio-unix-2.0 >= 2.24,
- HAVE_GIO_UNIX_2_0="yes",
- HAVE_GIO_UNIX_2_0="no")
-+fi
- AM_CONDITIONAL(USE_GIO_UNIX_2_0, test "x$HAVE_GIO_UNIX_2_0" = "xyes")
-
- dnl *** finalize CFLAGS, LDFLAGS, LIBS
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb
deleted file mode 100644
index 1d6f15e9c1..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.0.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-require gstreamer1.0-plugins.inc
-
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
- file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \
- file://get-caps-from-src-pad-when-query-caps.patch \
- file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \
- file://make-gio_unix_2_0-dependency-configurable.patch \
- file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
- file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch \
- file://0003-riff-add-missing-include-directories-when-calling-in.patch \
- file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch \
- file://0005-viv-fb-Make-sure-config.h-is-included.patch \
- file://0009-glimagesink-Downrank-to-marginal.patch \
- file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch \
- file://link-with-libvchostif.patch \
- "
-SRC_URI[md5sum] = "41dde92930710c75cdb49169c5cc6dfc"
-SRC_URI[sha256sum] = "4093aa7b51e28fb24dfd603893fead8d1b7782f088b05ed0f22a21ef176fb5ae"
-
-S = "${WORKDIR}/gst-plugins-base-${PV}"
-
-DEPENDS += "iso-codes util-linux"
-
-inherit gettext gobject-introspection
-
-PACKAGES_DYNAMIC =+ "^libgst.*"
-
-# opengl packageconfig factored out to make it easy for distros
-# and BSP layers to pick either (desktop) opengl, gles2, or no GL
-PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
-
-PACKAGECONFIG ??= " \
- ${GSTREAMER_ORC} \
- ${PACKAGECONFIG_GL} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \
- gio-unix-2.0 jpeg ogg pango png theora vorbis zlib \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
-"
-
-X11DEPENDS = "virtual/libx11 libsm libxrender libxv"
-X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm"
-X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm"
-
-PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
-PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia"
-PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
-PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm libgudev libdrm"
-PACKAGECONFIG[gio-unix-2.0] = "--enable-gio_unix_2_0,--disable-gio_unix_2_0,glib-2.0"
-PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2"
-PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor"
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
-PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg"
-PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,virtual/libgl libglu"
-PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
-PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
-PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
-PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora"
-PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual"
-PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis"
-PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm"
-PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
-
-FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/include/gst/gl/gstglconfig.h"
-FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/gst-libs/gst/tag/.libs:${B}/gst-libs/gst/video/.libs:${B}/gst-libs/gst/audio/.libs:${B}/gst-libs/gst/rtp/.libs:${B}/gst-libs/gst/allocators/.libs"
-}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.bb
new file mode 100644
index 0000000000..6563b6f738
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.bb
@@ -0,0 +1,99 @@
+require gstreamer1.0-plugins-common.inc
+
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
+ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
+
+SRC_URI = " \
+ https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \
+ file://get-caps-from-src-pad-when-query-caps.patch \
+ file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
+ file://0002-meson-Add-variables-for-gir-files.patch \
+ file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \
+ file://0005-viv-fb-Make-sure-config.h-is-included.patch \
+ file://0009-glimagesink-Downrank-to-marginal.patch \
+ "
+SRC_URI[md5sum] = "3fdb32823535799a748c1fc14f978e2c"
+SRC_URI[sha256sum] = "b13e73e2fe74a4166552f9577c3dcb24bed077021b9c7fa600d910ec6987816a"
+
+S = "${WORKDIR}/gst-plugins-base-${PV}"
+
+DEPENDS += "iso-codes util-linux zlib"
+
+inherit gobject-introspection gtk-doc
+
+PACKAGES_DYNAMIC =+ "^libgst.*"
+
+# opengl packageconfig factored out to make it easy for distros
+# and BSP layers to choose OpenGL APIs/platforms/window systems
+PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
+
+PACKAGECONFIG ??= " \
+ ${GSTREAMER_ORC} \
+ ${PACKAGECONFIG_GL} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \
+ jpeg ogg pango png theora vorbis \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
+"
+
+OPENGL_APIS = 'opengl gles2'
+OPENGL_PLATFORMS = 'egl'
+
+X11DEPENDS = "virtual/libx11 libsm libxrender libxv"
+X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled"
+X11DISABLEOPTS = "-Dx11=disabled -Dxvideo=disabled -Dxshm=disabled"
+
+PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
+PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia"
+PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg"
+PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg"
+PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus"
+PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango"
+PACKAGECONFIG[png] = "-Dgl-png=enabled,-Dgl-png=disabled,libpng"
+PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora"
+PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor"
+PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual"
+PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis"
+PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
+
+# OpenGL API packageconfigs
+PACKAGECONFIG[opengl] = ",,virtual/libgl libglu"
+PACKAGECONFIG[gles2] = ",,virtual/libgles2"
+
+# OpenGL platform packageconfigs
+PACKAGECONFIG[egl] = ",,virtual/egl"
+
+# OpenGL window systems (except for X11)
+PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm"
+PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm"
+PACKAGECONFIG[dispmanx] = ",,virtual/libomxil"
+
+OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', ' x11', '', d)}"
+OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gbm', ' gbm', '', d)}"
+OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', ' wayland', '', d)}"
+OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'dispmanx', ' dispmanx', '', d)}"
+
+EXTRA_OEMESON += " \
+ -Dgl-graphene=disabled \
+ ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \
+ ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \
+ ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \
+"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+GTKDOC_MESON_ENABLE_FLAG = "enabled"
+GTKDOC_MESON_DISABLE_FLAG = "disabled"
+
+FILES_${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h"
+FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
+
+def get_opengl_cmdline_list(switch_name, options, d):
+ selected_options = []
+ if bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d):
+ for option in options.split():
+ if bb.utils.contains('PACKAGECONFIG', option, True, False, d):
+ selected_options += [option]
+ if selected_options:
+ return '-D' + switch_name + '=' + ','.join(selected_options)
+ else:
+ return ''
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
new file mode 100644
index 0000000000..dba96e0f6e
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
@@ -0,0 +1,50 @@
+# This .inc file contains the common setup for the gstreamer1.0-plugins-*
+# plugin set recipes.
+
+# SUMMARY is set in the actual .bb recipes
+HOMEPAGE = "https://gstreamer.freedesktop.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
+SECTION = "multimedia"
+
+DEPENDS = "gstreamer1.0 glib-2.0-native"
+
+inherit gettext meson pkgconfig upstream-version-is-even
+
+require gstreamer1.0-plugins-packaging.inc
+
+# Orc enables runtime JIT compilation of data processing routines from Orc
+# bytecode to SIMD instructions for various architectures (currently SSE, MMX,
+# MIPS, Altivec and NEON are supported).
+# This value is used in the PACKAGECONFIG values for each plugin set recipe.
+# By modifying it, Orc can be enabled/disabled in all of these recipes at once.
+GSTREAMER_ORC ?= "orc"
+# workaround to disable orc on mips to fix the build failure
+# {standard input}: Assembler messages:
+# {standard input}:46587: Error: branch out of range
+GSTREAMER_ORC_mips = ""
+PACKAGECONFIG[orc] = "-Dorc=enabled,-Dorc=disabled,orc orc-native"
+
+# TODO: put this in a gettext.bbclass patch (with variables to allow for
+# configuring the option name and the enabled/disabled values).
+def gettext_oemeson(d):
+ if d.getVar('USE_NLS') == 'no':
+ return '-Dnls=disabled'
+ # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set
+ if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'):
+ return '-Dnls=disabled'
+ return '-Dnls=enabled'
+
+# Not all plugin sets contain examples, so the -Dexamples
+# option needs to be added conditionally.
+GST_PLUGIN_SET_HAS_EXAMPLES ?= "1"
+
+EXTRA_OEMESON += " \
+ ${@bb.utils.contains('GST_PLUGIN_SET_HAS_EXAMPLES', '1', '-Dexamples=disabled', '', d)} \
+ ${@gettext_oemeson(d)} \
+"
+
+GIR_MESON_ENABLE_FLAG = "enabled"
+GIR_MESON_DISABLE_FLAG = "disabled"
+
+# Dynamically generate packages for all enabled plugins
+PACKAGES_DYNAMIC = "^${PN}-.*"
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/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch
deleted file mode 100644
index caa080c8e7..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From aadfa5f20f53601785e417fe3fcbe6d574880988 Mon Sep 17 00:00:00 2001
-From: Philippe Normand <philn@igalia.com>
-Date: Tue, 23 Apr 2019 10:10:01 +0100
-Subject: [PATCH] scaletempo: Advertise interleaved layout in caps templates
-
-Scaletempo doesn't support non-interleaved layout. Not explicitely stating this
-would trigger critical warnings and a caps negotiation failure when scaletempo
-is used as playbin audio-filter.
-
-Patch suggested by George Kiagiadakis <george.kiagiadakis@collabora.com>.
-
-Fixes #591
-Upstream-Status: Backport [merged, on track for 1.16.1.]
----
- gst/audiofx/gstscaletempo.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/gst/audiofx/gstscaletempo.c b/gst/audiofx/gstscaletempo.c
-index 3a719719a..83ee8fe24 100644
---- a/gst/audiofx/gstscaletempo.c
-+++ b/gst/audiofx/gstscaletempo.c
-@@ -93,9 +93,9 @@ enum
-
- #define SUPPORTED_CAPS \
- GST_STATIC_CAPS ( \
-- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F32)) "; " \
-- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F64)) "; " \
-- GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (S16)) \
-+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F32)) ", layout=(string)interleaved; " \
-+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F64)) ", layout=(string)interleaved; " \
-+ GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (S16)) ", layout=(string)interleaved" \
- )
-
- static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/headerfix.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/headerfix.patch
deleted file mode 100644
index 34d25a0a49..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/headerfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Things break with overlapping defines between glib and gstreamer with glibc 2.30.
-
-Discussion in the link below, basically internal __ prefixed variables
-shouldn't be redefined.
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/635]
-RP 2019/8/6
-
-Index: gst-plugins-good-1.16.0/sys/v4l2/ext/types-compat.h
-===================================================================
---- gst-plugins-good-1.16.0.orig/sys/v4l2/ext/types-compat.h
-+++ gst-plugins-good-1.16.0/sys/v4l2/ext/types-compat.h
-@@ -24,29 +24,6 @@
- #ifndef __TYPES_COMPAT_H__
- #define __TYPES_COMPAT_H__
-
--/* From linux/types.h */
--#ifndef __bitwise__
--# ifdef __CHECKER__
--# define __bitwise__ __attribute__((bitwise))
--# else
--# define __bitwise__
--# endif
--#endif
--
--#ifndef __bitwise
--# ifdef __CHECK_ENDIAN__
--# define __bitwise __bitwise__
--# else
--# define __bitwise
--# endif
--#endif
--
--#define __u64 guint64
--#define __u32 guint32
--#define __u16 guint16
--#define __u8 guint8
--#define __s64 gint64
--#define __s32 gint32
--#define __le32 guint32 __bitwise
-+#include <linux/types.h>
-
- #endif /* __TYPES_COMPAT_H__ */
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb
deleted file mode 100644
index 5751467db1..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.0.bb
+++ /dev/null
@@ -1,78 +0,0 @@
-require gstreamer1.0-plugins.inc
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
- file://0001-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch \
- file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
- file://headerfix.patch \
- "
-
-SRC_URI[md5sum] = "d1a7b442994d9522418de4af4330e034"
-SRC_URI[sha256sum] = "654adef33380d604112f702c2927574cfc285e31307b79e584113858838bb0fd"
-
-S = "${WORKDIR}/gst-plugins-good-${PV}"
-
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
- file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
-
-DEPENDS += "gstreamer1.0-plugins-base libcap"
-RPROVIDES_${PN}-pulseaudio += "${PN}-pulse"
-RPROVIDES_${PN}-soup += "${PN}-souphttpsrc"
-
-inherit gettext
-
-PACKAGECONFIG ??= " \
- ${GSTREAMER_ORC} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \
- bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 soup speex taglib v4l2 zlib \
-"
-
-X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage"
-
-PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2"
-PACKAGECONFIG[cairo] = "--enable-cairo,--disable-cairo,cairo"
-PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libiec61883 libavc1394 libraw1394"
-PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac"
-PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
-PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3"
-PACKAGECONFIG[gudev] = "--with-gudev,--without-gudev,libgudev"
-PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
-PACKAGECONFIG[lame] = "--enable-lame,--disable-lame,lame"
-PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng"
-PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,v4l-utils"
-PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123"
-PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
-PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4"
-PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
-PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib"
-PACKAGECONFIG[v4l2] = "--enable-gst_v4l2 --enable-v4l2-probe,--disable-gst_v4l2"
-PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx"
-PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
-PACKAGECONFIG[x11] = "--enable-x,--disable-x,${X11DEPENDS}"
-PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
-
-# qt5 support is disabled, because it is not present in OE core, and requires more work than
-# just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths).
-# This is better done in a separate qt5 layer (which then should add a "qt5" packageconfig
-# in a gstreamer1.0-plugins-good bbappend).
-
-EXTRA_OECONF += " \
- --enable-oss \
- --disable-aalib \
- --disable-aalibtest \
- --disable-directsound \
- --disable-libcaca \
- --disable-libdv \
- --disable-oss4 \
- --disable-osx_audio \
- --disable-osx_video \
- --disable-qt \
- --disable-shout2 \
- --disable-twolame \
- --disable-waveform \
-"
-
-FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs"
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
new file mode 100644
index 0000000000..17c9421394
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.2.bb
@@ -0,0 +1,70 @@
+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"
+SRC_URI[sha256sum] = "40bb3bafda25c0b739c8fc36e48380fccf61c4d3f83747e97ac3f9b0171b1319"
+
+S = "${WORKDIR}/gst-plugins-good-${PV}"
+
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
+ file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
+
+DEPENDS += "gstreamer1.0-plugins-base libcap zlib"
+RPROVIDES_${PN}-pulseaudio += "${PN}-pulse"
+RPROVIDES_${PN}-soup += "${PN}-souphttpsrc"
+
+PACKAGECONFIG ??= " \
+ ${GSTREAMER_ORC} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \
+ bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 soup speex taglib v4l2 \
+"
+
+X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage"
+X11ENABLEOPTS = "-Dximagesrc=enabled -Dximagesrc-xshm=enabled -Dximagesrc-xfixes=enabled -Dximagesrc-xdamage=enabled"
+X11DISABLEOPTS = "-Dximagesrc=disabled -Dximagesrc-xshm=disabled -Dximagesrc-xfixes=disabled -Dximagesrc-xdamage=disabled"
+
+PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2"
+PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
+PACKAGECONFIG[dv1394] = "-Ddv1394=enabled,-Ddv1394=disabled,libiec61883 libavc1394 libraw1394"
+PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac"
+PACKAGECONFIG[gdk-pixbuf] = "-Dgdk-pixbuf=enabled,-Dgdk-pixbuf=disabled,gdk-pixbuf"
+PACKAGECONFIG[gtk] = "-Dgtk3=enabled,-Dgtk3=disabled,gtk+3"
+PACKAGECONFIG[gudev] = "-Dv4l2-gudev=enabled,-Dv4l2-gudev=disabled,libgudev"
+PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack"
+PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
+PACKAGECONFIG[lame] = "-Dlame=enabled,-Dlame=disabled,lame"
+PACKAGECONFIG[libpng] = "-Dpng=enabled,-Dpng=disabled,libpng"
+PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils"
+PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123"
+PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio"
+PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native"
+PACKAGECONFIG[soup] = "-Dsoup=enabled,-Dsoup=disabled,libsoup-2.4"
+PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex"
+PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib"
+PACKAGECONFIG[v4l2] = "-Dv4l2=enabled -Dv4l2-probe=true,-Dv4l2=disabled -Dv4l2-probe=false"
+PACKAGECONFIG[vpx] = "-Dvpx=enabled,-Dvpx=disabled,libvpx"
+PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack"
+PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
+
+EXTRA_OEMESON += " \
+ -Daalib=disabled \
+ -Ddirectsound=disabled \
+ -Ddv=disabled \
+ -Dlibcaca=disabled \
+ -Doss=enabled \
+ -Doss4=disabled \
+ -Dosxaudio=disabled \
+ -Dosxvideo=disabled \
+ -Dshout2=disabled \
+ -Dtwolame=disabled \
+ -Dwaveform=disabled \
+"
+
+FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc
index 6781e98c31..9a7a1b6afe 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc
@@ -1,22 +1,36 @@
+# This .inc file contains functionality for automatically splitting
+# built plugins into individual packages for each plugin. A -meta
+# package is also set up that has no files of its own, but contains
+# the names of all plugin packages in its RDEPENDS list.
+#
+# This is mainly used by the gstreamer1.0-plugins-* plugin set recipes,
+# but can be used in any recipe that produces GStreamer plugins.
+
PACKAGESPLITFUNCS_prepend = " split_gstreamer10_packages "
-PACKAGESPLITFUNCS_append = " set_metapkg_rdepends "
+PACKAGESPLITFUNCS_append = " set_gstreamer10_metapkg_rdepends "
python split_gstreamer10_packages () {
- gst_libdir = d.expand('${libdir}/gstreamer-${LIBV}')
+ gst_libdir = d.expand('${libdir}/gstreamer-1.0')
postinst = d.getVar('plugin_postinst')
glibdir = d.getVar('libdir')
- do_split_packages(d, glibdir, r'^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True)
- do_split_packages(d, gst_libdir, r'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends='')
- do_split_packages(d, glibdir+'/girepository-1.0', r'Gst(.*)-1.0\.typelib$', d.expand('${PN}-%s-typelib'), 'GStreamer typelib file for %s', postinst=postinst, extra_depends='')
- do_split_packages(d, gst_libdir, r'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends='${PN}-dev')
- do_split_packages(d, gst_libdir, r'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends='${PN}-staticdev')
+ # GStreamer libraries
+ do_split_packages(d, glibdir, r'^lib(.*)\.so\.*', 'lib%s', 'GStreamer 1.0 %s library', extra_depends='', allow_links=True)
+ # GStreamer plugin shared objects
+ do_split_packages(d, gst_libdir, r'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer 1.0 plugin for %s', postinst=postinst, extra_depends='')
+ # GObject introspection files for GStreamer plugins
+ do_split_packages(d, glibdir+'/girepository-1.0', r'Gst(.*)-1.0\.typelib$', d.expand('${PN}-%s-typelib'), 'GStreamer 1.0 typelib file for %s', postinst=postinst, extra_depends='')
+ # Static GStreamer libraries for development
+ do_split_packages(d, gst_libdir, r'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer 1.0 plugin for %s (static development files)', extra_depends='${PN}-staticdev')
}
-python set_metapkg_rdepends () {
+python set_gstreamer10_metapkg_rdepends () {
import os
import oe.utils
+ # Go through all generated packages (excluding the main package and
+ # the -meta package itself) and add them to the -meta package as RDEPENDS.
+
pn = d.getVar('PN')
metapkg = pn + '-meta'
d.setVar('ALLOW_EMPTY_' + metapkg, "1")
@@ -26,7 +40,7 @@ python set_metapkg_rdepends () {
pkgdest = d.getVar('PKGDEST')
for pkg in oe.utils.packages_filter_out_system(d):
if pkg not in blacklist and pkg not in metapkg_rdepends:
- # See if the package is empty by looking at the contents of its PKGDEST subdirectory.
+ # See if the package is empty by looking at the contents of its PKGDEST subdirectory.
# If this subdirectory is empty, then the package is.
# Empty packages do not get added to the meta package's RDEPENDS
pkgdir = os.path.join(pkgdest, pkg)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb
deleted file mode 100644
index 11a0e790ea..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-require gstreamer1.0-plugins.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
-
-LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
-LICENSE_FLAGS = "commercial"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
- file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
- "
-SRC_URI[md5sum] = "1ec343c58d4b17d682f7befa8453c11c"
-SRC_URI[sha256sum] = "e30964c5f031c32289e0b25e176c3c95a5737f2052dfc81d0f7427ef0233a4c2"
-
-S = "${WORKDIR}/gst-plugins-ugly-${PV}"
-
-DEPENDS += "gstreamer1.0-plugins-base"
-
-inherit gettext
-
-PACKAGECONFIG ??= " \
- ${GSTREAMER_ORC} \
- a52dec mpeg2dec \
-"
-
-PACKAGECONFIG[a52dec] = "--enable-a52dec,--disable-a52dec,liba52"
-PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr"
-PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr"
-PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio"
-PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread"
-PACKAGECONFIG[mpeg2dec] = "--enable-mpeg2dec,--disable-mpeg2dec,mpeg2dec"
-PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
-
-EXTRA_OECONF += " \
- --disable-sidplay \
-"
-
-FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs"
-FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.2.bb
new file mode 100644
index 0000000000..be10800389
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.2.bb
@@ -0,0 +1,39 @@
+require gstreamer1.0-plugins-common.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+ file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
+
+LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
+LICENSE_FLAGS = "commercial"
+
+SRC_URI = " \
+ https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
+ "
+SRC_URI[md5sum] = "10283ff5ef1e34d462dde77042e329bd"
+SRC_URI[sha256sum] = "5500415b865e8b62775d4742cbb9f37146a50caecfc0e7a6fc0160d3c560fbca"
+
+S = "${WORKDIR}/gst-plugins-ugly-${PV}"
+
+DEPENDS += "gstreamer1.0-plugins-base"
+
+GST_PLUGIN_SET_HAS_EXAMPLES = "0"
+
+PACKAGECONFIG ??= " \
+ ${GSTREAMER_ORC} \
+ a52dec mpeg2dec \
+"
+
+PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52"
+PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr"
+PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr"
+PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio"
+PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread"
+PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec"
+PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264"
+
+EXTRA_OEMESON += " \
+ -Dsidplay=disabled \
+"
+
+FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs"
+FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
deleted file mode 100644
index bc24b05fec..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Plugins for the GStreamer multimedia framework 1.x"
-HOMEPAGE = "http://gstreamer.freedesktop.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
-SECTION = "multimedia"
-
-DEPENDS = "gstreamer1.0 glib-2.0-native"
-
-SRC_URI_append = " file://gtk-doc-tweaks.patch"
-
-inherit autotools pkgconfig upstream-version-is-even gtk-doc
-
-acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-
-LIBV = "1.0"
-require gst-plugins-package.inc
-
-# Orc enables runtime JIT compilation of data processing routines from Orc
-# bytecode to SIMD instructions for various architectures (currently SSE, MMX,
-# MIPS, Altivec and NEON are supported).
-
-GSTREAMER_ORC ?= "orc"
-
-PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
-PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc orc-native"
-PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind"
-
-export ORCC = "${STAGING_DIR_NATIVE}${bindir}/orcc"
-
-EXTRA_OECONF = " \
- --disable-examples \
-"
-
-delete_pkg_m4_file() {
- # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
- rm "${S}/common/m4/pkg.m4" || true
- rm -f "${S}/common/m4/gtk-doc.m4"
-}
-
-do_configure[prefuncs] += " delete_pkg_m4_file"
-
-PACKAGES_DYNAMIC = "^${PN}-.*"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
new file mode 100644
index 0000000000..b698067041
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
@@ -0,0 +1,23 @@
+inherit ptest-gnome
+
+TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files"
+RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest"
+
+EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}"
+
+GST_TEST_SUITE_NAME ?= "gstreamer-1.0"
+
+# Using do_install_ptest_base instead of do_install_ptest, since
+# the default do_install_ptest_base is hardcoded to expect Makefiles.
+do_install_ptest_base() {
+ # Generate run-ptest file
+ echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}"
+ echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}"
+ chmod 0755 "${RUN_PTEST_FILE}"
+
+ # Install additional files required by tests
+ if [ -d "${S}/tests/files" ] ; then
+ install -d "${D}/${TEST_FILES_PATH}"
+ install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}"
+ fi
+}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python/0001-meson.build-fix-builds-with-python-3.8.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python/0001-meson.build-fix-builds-with-python-3.8.patch
new file mode 100644
index 0000000000..053108ad50
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python/0001-meson.build-fix-builds-with-python-3.8.patch
@@ -0,0 +1,24 @@
+From 61cfd1b49dc82baf14bb36d88b6c5be7b8c3d23a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 2 Dec 2019 18:16:41 +0100
+Subject: [PATCH] meson.build: fix builds with python 3.8
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-python/merge_requests/14]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 1da81d5..3e0db38 100644
+--- a/meson.build
++++ b/meson.build
+@@ -24,7 +24,7 @@ pygobject_dep = dependency('pygobject-3.0', fallback: ['pygobject', 'pygobject_d
+
+ pymod = import('python')
+ python = pymod.find_installation(get_option('python'))
+-python_dep = python.dependency(required : true)
++python_dep = dependency('python3-embed', required : true)
+
+ python_abi_flags = python.get_variable('ABIFLAGS', '')
+ pylib_loc = get_option('libpython-dir')
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.2.bb
index 0f3aac1906..9e024eb9f3 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.2.bb
@@ -5,9 +5,11 @@ SECTION = "multimedia"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
-SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
-SRC_URI[md5sum] = "877b2ed2aaffdb62e63f38ea9469b70f"
-SRC_URI[sha256sum] = "55dc7aaed1855565f9b9ef842d93e93bfc5cb2b376faef6af5b463e1774e2d38"
+SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \
+ file://0001-meson.build-fix-builds-with-python-3.8.patch \
+ "
+SRC_URI[md5sum] = "6ac709767334d8d0a71cb4e016f6abeb"
+SRC_URI[sha256sum] = "208df3148d73d9f416d016564737585d8ea763d91201732d44b5fe688c6288a8"
DEPENDS = "gstreamer1.0 python3-pygobject"
RDEPENDS_${PN} += "gstreamer1.0 python3-pygobject"
@@ -18,11 +20,9 @@ S = "${WORKDIR}/${PNREAL}-${PV}"
# gobject-introspection is mandatory and cannot be configured
REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection"
+UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
-inherit autotools pkgconfig distutils3-base upstream-version-is-even gobject-introspection distro_features_check
-
-EXTRA_OECONF += "--with-libpython-dir=${libdir}"
+inherit meson pkgconfig distutils3-base upstream-version-is-even gobject-introspection features_check
do_install_append() {
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
new file mode 100644
index 0000000000..6962a50d6e
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
@@ -0,0 +1,36 @@
+From 95ce953e34cd0e9f5d42ce7900a9572e7bc8ca47 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Fri, 18 Oct 2019 00:42:12 +0100
+Subject: [PATCH] meson: build gir even when cross-compiling if introspection
+ was enabled explicitly
+
+This can be made to work in certain circumstances when
+cross-compiling, so default to not building g-i stuff
+when cross-compiling, but allow it if introspection was
+enabled explicitly via -Dintrospection=enabled.
+
+See gstreamer/gstreamer#454 and gstreamer/gstreamer#381.
+
+Upstream-Status: Backport [95ce953e34cd0e9f5d42ce7900a9572e7bc8ca47]
+
+Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index e1e3b1d..3f45f0e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -173,7 +173,7 @@ endif
+
+ gir = find_program('g-ir-scanner', required : get_option('introspection'))
+ gnome = import('gnome')
+-build_gir = gir.found() and not meson.is_cross_build()
++build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
+ gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
+ 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
+ 'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \
+--
+2.17.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb
deleted file mode 100644
index 042938b88e..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "A library on top of GStreamer for building an RTSP server"
-HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/"
-SECTION = "multimedia"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
-
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
-
-PNREAL = "gst-rtsp-server"
-
-SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \
- file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
- file://gtk-doc-tweaks.patch \
- "
-
-SRC_URI[md5sum] = "adc4460239ec2eccf58ad9752ce53bfd"
-SRC_URI[sha256sum] = "198e9eec1a3e32dc810d3fbf3a714850a22c6288d4a5c8e802c5ff984af03f19"
-
-S = "${WORKDIR}/${PNREAL}-${PV}"
-
-inherit autotools pkgconfig upstream-version-is-even gobject-introspection gtk-doc
-
-EXTRA_OECONF = "--disable-examples --disable-tests"
-
-# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well
-LIBV = "1.0"
-require gst-plugins-package.inc
-
-delete_pkg_m4_file() {
- # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
- rm "${S}/common/m4/pkg.m4" || true
-}
-
-do_configure[prefuncs] += " delete_pkg_m4_file"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.2.bb
new file mode 100644
index 0000000000..02c3c83840
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.2.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A library on top of GStreamer for building an RTSP server"
+HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/"
+SECTION = "multimedia"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
+
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
+
+PNREAL = "gst-rtsp-server"
+
+SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \
+ file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
+ "
+
+SRC_URI[md5sum] = "8a998725820c771ba45be6e18bfdf73a"
+SRC_URI[sha256sum] = "de07a2837b3b04820ce68264a4909f70c221b85dbff0cede7926e9cdbb1dc26e"
+
+S = "${WORKDIR}/${PNREAL}-${PV}"
+
+inherit meson pkgconfig upstream-version-is-even gobject-introspection
+
+EXTRA_OEMESON += " \
+ -Dexamples=disabled \
+ -Dtests=disabled \
+"
+
+GIR_MESON_ENABLE_FLAG = "enabled"
+GIR_MESON_DISABLE_FLAG = "disabled"
+
+# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well
+require gstreamer1.0-plugins-packaging.inc
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi/0001-gst-vaapi-Makefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi/0001-gst-vaapi-Makefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch
deleted file mode 100644
index d7b8984953..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi/0001-gst-vaapi-Makefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5403a89e6a7ac72a23e0221075c0c19b5f85a021 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Wed, 13 Jun 2018 09:09:25 -0300
-Subject: [PATCH] gst/vaapi/Makefile.am: Add EGL_CFLAGS to libgstvaapi CFLAGS
-Organization: O.S. Systems Software LTDA.
-
-We need this to pass correctly EGL CFLAGS when building with EGL support.
-
-Upstream-Status: Pending
-
-Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
----
- gst/vaapi/Makefile.am | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/gst/vaapi/Makefile.am b/gst/vaapi/Makefile.am
-index b299ac98..d6cab71f 100644
---- a/gst/vaapi/Makefile.am
-+++ b/gst/vaapi/Makefile.am
-@@ -24,6 +24,10 @@ libgstvaapi_LIBS += $(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-glx.la
- endif
-
- if USE_EGL
-+libgstvaapi_CFLAGS += \
-+ $(EGL_CFLAGS) \
-+ $(NULL)
-+
- libgstvaapi_LIBS += $(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-egl.la
- endif
-
---
-2.17.1
-
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.2.bb
index e5dfb61241..1bedf25128 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.2.bb
@@ -9,20 +9,27 @@ LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz \
- file://0001-gst-vaapi-Makefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch \
file://0001-vaapsink-downgrade-to-marginal.patch \
"
-SRC_URI[md5sum] = "8c3f9ee3e47cbdb75a94f7183460b721"
-SRC_URI[sha256sum] = "4e7fce626ee0590dca74b5a8341d25bac76307945131a970b414fc5895f5171f"
+SRC_URI[md5sum] = "13f7cb6a64bde24e67f563377487dcce"
+SRC_URI[sha256sum] = "191de7b0ab64a85dd0875c990721e7be95518f60e2a9106beca162004ed7c601"
S = "${WORKDIR}/${REALPN}-${PV}"
DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
-inherit autotools pkgconfig gtk-doc distro_features_check upstream-version-is-even
+inherit meson pkgconfig gtk-doc features_check upstream-version-is-even
REQUIRED_DISTRO_FEATURES ?= "opengl"
+EXTRA_OEMESON += " \
+ -Dexamples=disabled \
+"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+GTKDOC_MESON_ENABLE_FLAG = "enabled"
+GTKDOC_MESON_DISABLE_FLAG = "disabled"
+
PACKAGES =+ "${PN}-tests"
# OpenGL packageconfig factored out to make it easy for distros
@@ -33,17 +40,18 @@ PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx'
bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl', \
'', d), d)}"
-PACKAGECONFIG ??= "drm \
+PACKAGECONFIG ??= "drm encoders \
${PACKAGECONFIG_GL} \
${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,udev libdrm"
-PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
-PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,virtual/libgl"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxrandr libxrender"
+PACKAGECONFIG[drm] = "-Dwith_drm=yes,-Dwith_drm=no,udev libdrm"
+PACKAGECONFIG[egl] = "-Dwith_egl=yes,-Dwith_egl=no,virtual/egl"
+PACKAGECONFIG[encoders] = "-Dwith_encoders=yes,-Dwith_encoders=no"
+PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/libgl"
+PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland wayland-protocols"
+PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxrandr libxrender"
FILES_${PN} += "${libdir}/gstreamer-*/*.so"
FILES_${PN}-dbg += "${libdir}/gstreamer-*/.debug"
-FILES_${PN}-dev += "${libdir}/gstreamer-*/*.la ${libdir}/gstreamer-*/*.a"
+FILES_${PN}-dev += "${libdir}/gstreamer-*/*.a"
FILES_${PN}-tests = "${bindir}/*"
diff --git a/meta/recipes-multimedia/gstreamer/files/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
index 67a872cddb..67a872cddb 100644
--- a/meta/recipes-multimedia/gstreamer/files/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch
new file mode 100644
index 0000000000..1ed7198a5c
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch
@@ -0,0 +1,36 @@
+From 35db4a2433fbdf8612cf98b5aab5b14aeb5372f8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Thu, 17 Oct 2019 12:13:35 +0100
+Subject: [PATCH] meson: build gir even when cross-compiling if introspection
+ was enabled explicitly
+
+This can be made to work in certain circumstances when
+cross-compiling, so default to not building g-i stuff
+when cross-compiling, but allow it if introspection was
+enabled explicitly via -Dintrospection=enabled.
+
+Fixes #454 and #381.
+
+Upstream-Status: Backport [35db4a2433fbdf8612cf98b5aab5b14aeb5372f8]
+
+Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 90d98d8eb..a47e7f34e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -466,7 +466,7 @@ rt_lib = cc.find_library('rt', required : false)
+ gir = find_program('g-ir-scanner', required : get_option('introspection'))
+ gnome = import('gnome')
+
+-build_gir = gir.found() and not meson.is_cross_build()
++build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
+
+ gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
+ 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \
+--
+2.17.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch
new file mode 100644
index 0000000000..f553340f4d
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch
@@ -0,0 +1,74 @@
+From f6c7973c03d9ba7dab60c496e768c5e6c4ee824c Mon Sep 17 00:00:00 2001
+From: Carlos Rafael Giani <crg7475@mailbox.org>
+Date: Sun, 20 Oct 2019 10:36:44 +0200
+Subject: [PATCH] meson: Add valgrind feature
+
+This allows for enabling/disabling Valgrind support. Since Valgrind is
+an external dependency, such a feature is needed by build environemnts
+such as Yocto to make sure builds are deterministic. These changes also
+add more Valgrind specific configure log output.
+
+Upstream-Status: Pending
+
+Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
+---
+ meson.build | 23 ++++++++++++++++++++++-
+ meson_options.txt | 1 +
+ 2 files changed, 23 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index b55ecc5..4751761 100644
+--- a/meson.build
++++ b/meson.build
+@@ -199,7 +199,6 @@ check_headers = [
+ 'sys/wait.h',
+ 'ucontext.h',
+ 'unistd.h',
+- 'valgrind/valgrind.h',
+ 'sys/resource.h',
+ ]
+
+@@ -214,6 +213,28 @@ foreach h : check_headers
+ endif
+ endforeach
+
++valgrind_option = get_option('valgrind')
++if valgrind_option.disabled()
++ message('Valgrind support not requested; disabled.')
++else
++ valgrind_header = 'valgrind/valgrind.h'
++ has_valgrind_header = cc.has_header(valgrind_header)
++ if has_valgrind_header
++ message('Valgrind support requested, and header ' + valgrind_header + \
++ ' found. Enabled Valgrind support.')
++ define = 'HAVE_' + valgrind_header.underscorify().to_upper()
++ cdata.set(define, 1)
++ else
++ if valgrind_option.enabled()
++ error('Valgrind support requested and set as required, but header ' + \
++ valgrind_header + ' not found.')
++ else
++ message('Valgrind support requested, but header ' + valgrind_header + \
++ ' not found. Disabling Valgrind support.')
++ endif
++ endif
++endif
++
+ if cc.has_member('struct tm', 'tm_gmtoff', prefix : '#include <time.h>')
+ cdata.set('HAVE_TM_GMTOFF', 1)
+ endif
+diff --git a/meson_options.txt b/meson_options.txt
+index e7ff7ba..8afde39 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -19,6 +19,7 @@ option('memory-alignment', type: 'combo',
+
+ # Feature options
+ option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
++option('valgrind', type : 'feature', value : 'auto', description : 'Enable Valgrind support')
+ option('libunwind', type : 'feature', value : 'auto', description : 'Use libunwind to generate backtraces')
+ option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
+ option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
+--
+2.17.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
new file mode 100644
index 0000000000..0e6c44ea32
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
@@ -0,0 +1,257 @@
+From b843400284751968862751dfe93853f151551c64 Mon Sep 17 00:00:00 2001
+From: Carlos Rafael Giani <crg7475@mailbox.org>
+Date: Fri, 25 Oct 2019 00:06:26 +0200
+Subject: [PATCH] meson: Add option for installed tests
+
+This adds an option for producing installed versions of the unit tests.
+These versions don't need meson to run (only a small shell script). This
+makes it easier to run cross compiled tests on a target machine.
+
+Upstream-Status: Pending
+
+Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
+---
+ build-aux/gen-installed-test-desc.py | 18 ++++++
+ build-aux/gen-installed-test-shscript.py | 25 ++++++++
+ meson_options.txt | 2 +
+ tests/check/meson.build | 46 +++++++++++++-
+ tests/files/testfile | 80 ++++++++++++++++++++++++
+ 5 files changed, 170 insertions(+), 1 deletion(-)
+ create mode 100644 build-aux/gen-installed-test-desc.py
+ create mode 100644 build-aux/gen-installed-test-shscript.py
+ create mode 100644 tests/files/testfile
+
+diff --git a/build-aux/gen-installed-test-desc.py b/build-aux/gen-installed-test-desc.py
+new file mode 100644
+index 0000000..69e8a0f
+--- /dev/null
++++ b/build-aux/gen-installed-test-desc.py
+@@ -0,0 +1,18 @@
++import sys
++import os
++import argparse
++
++def write_template(filename, data):
++ with open(filename, 'w') as f:
++ f.write(data)
++
++def build_template(testdir, testname):
++ return "[Test]\nType=session\nExec={}\n".format(os.path.join(testdir, testname))
++
++argparser = argparse.ArgumentParser(description='Generate installed-test data.')
++argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
++argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
++argparser.add_argument('--output', metavar='file', required=True, help='Output file')
++args = argparser.parse_args()
++
++write_template(args.output, build_template(args.test_execdir, args.testname))
+diff --git a/build-aux/gen-installed-test-shscript.py b/build-aux/gen-installed-test-shscript.py
+new file mode 100644
+index 0000000..5da86fb
+--- /dev/null
++++ b/build-aux/gen-installed-test-shscript.py
+@@ -0,0 +1,25 @@
++import sys
++import os
++import argparse
++
++def write_template(filename, data):
++ with open(filename, 'w') as f:
++ f.write(data)
++
++def build_template(testdir, testname):
++ return ''.join([
++ "#!/usr/bin/env sh\n",
++ "export GST_STATE_IGNORE_ELEMENTS=''\n",
++ "export CK_DEFAULT_TIMEOUT=20\n",
++ "export GST_PLUGIN_LOADING_WHITELIST='gstreamer'\n",
++ "{}\n".format(os.path.join(testdir, testname)),
++ ])
++
++argparser = argparse.ArgumentParser(description='Generate installed-test data.')
++argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
++argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
++argparser.add_argument('--output', metavar='file', required=True, help='Output file')
++args = argparser.parse_args()
++
++write_template(args.output, build_template(args.test_execdir, args.testname))
++os.chmod(args.output, 0o755)
+diff --git a/meson_options.txt b/meson_options.txt
+index 8afde39..8884dcc 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -16,6 +16,8 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
+ option('memory-alignment', type: 'combo',
+ choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
+ value: 'malloc')
++option('installed-tests', type : 'boolean', value : false, description : 'enable installed tests')
++option('test-files-path', type : 'string', description : 'Path where to find test files')
+
+ # Feature options
+ option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index 04da83f..2db7f76 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -118,11 +118,17 @@ if add_languages('cpp', required : false)
+ ]
+ endif
+
++test_files_path = get_option('test-files-path')
++if test_files_path == ''
++ test_files_path = meson.current_source_dir() + '/../files'
++endif
++message('Using path "@0@" as the path to read test files from'.format(test_files_path))
++
+ test_defines = [
+ '-UG_DISABLE_ASSERT',
+ '-UG_DISABLE_CAST_CHECKS',
+ '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
+- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
++ '-DTESTFILE="@0@"'.format(test_files_path + '/testfile'),
+ '-DGST_USE_UNSTABLE_API',
+ '-DGST_DISABLE_DEPRECATED',
+ ]
+@@ -137,6 +143,14 @@ endif
+ glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep]
+ gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep]
+
++installed_tests_datadir = join_paths(prefix, get_option('datadir'), 'installed-tests', 'gstreamer-1.0')
++installed_tests_execdir = join_paths(prefix, libexecdir, 'installed-tests', 'gstreamer-1.0')
++installed_tests_enabled = get_option('installed-tests')
++
++python = import('python').find_installation()
++gen_installed_test_desc = files('../../build-aux/gen-installed-test-desc.py')
++gen_installed_test_shscript = files('../../build-aux/gen-installed-test-shscript.py')
++
+ foreach t : core_tests
+ fname = t[0]
+ test_name = fname.split('.')[0].underscorify()
+@@ -150,8 +164,38 @@ foreach t : core_tests
+ include_directories : [configinc],
+ link_with : link_with_libs,
+ dependencies : test_deps + glib_deps + gst_deps,
++ install_dir: installed_tests_execdir,
++ install: installed_tests_enabled
+ )
+
++ if installed_tests_enabled
++ installed_test_shscript = test_name + '.sh'
++ shscript = custom_target (test_name + '_shscript',
++ output: installed_test_shscript,
++ command: [
++ python,
++ gen_installed_test_shscript,
++ '--test-execdir=@0@'.format(installed_tests_execdir),
++ '--testname=@0@'.format(test_name),
++ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_shscript)),
++ ],
++ install: true,
++ install_dir: installed_tests_execdir)
++
++ installed_test_desc = test_name + '.test'
++ data = custom_target(test_name + '_desc',
++ output: installed_test_desc,
++ command: [
++ python,
++ gen_installed_test_desc,
++ '--test-execdir=@0@'.format(installed_tests_execdir),
++ '--testname=@0@'.format(installed_test_shscript),
++ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_desc)),
++ ],
++ install: true,
++ install_dir: installed_tests_datadir)
++ endif
++
+ env = environment()
+ env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
+ env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
+diff --git a/tests/files/testfile b/tests/files/testfile
+new file mode 100644
+index 0000000..89954e0
+--- /dev/null
++++ b/tests/files/testfile
+@@ -0,0 +1,80 @@
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
++................................................................................
+--
+2.17.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
new file mode 100644
index 0000000000..7ca3d5ad4a
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
@@ -0,0 +1,37 @@
+Currently gstreamer configuration depends on whether setcap is found on the host
+system. Turn this into a configure option to make builds deterinistic.
+
+RP 2020/2/19
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Upstream-Status: Pending
+
+Index: gstreamer-1.16.1/libs/gst/helpers/meson.build
+===================================================================
+--- gstreamer-1.16.1.orig/libs/gst/helpers/meson.build
++++ gstreamer-1.16.1/libs/gst/helpers/meson.build
+@@ -73,7 +73,12 @@ if have_ptp
+ endif
+ endif
+
+- setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
++ setcap_feature = get_option('setcap')
++ if setcap_feature.disabled()
++ setcap = find_program('dontexist', required : false)
++ else
++ setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
++ endif
+
+ # user/group to change to in gst-ptp-helper
+ ptp_helper_setuid_user = get_option('ptp-helper-setuid-user')
+Index: gstreamer-1.16.1/meson_options.txt
+===================================================================
+--- gstreamer-1.16.1.orig/meson_options.txt
++++ gstreamer-1.16.1/meson_options.txt
+@@ -26,6 +26,7 @@ option('libunwind', type : 'feature', va
+ option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
+ option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
+ option('bash-completion', type : 'feature', value : 'auto', description : 'Install bash completion files')
++option('setcap', type : 'feature', value : 'auto', description : 'Use setcap')
+
+ # Common feature options
+ option('examples', type : 'feature', value : 'auto', yield : true)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb
deleted file mode 100644
index da2d14cd99..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.0.bb
+++ /dev/null
@@ -1,91 +0,0 @@
-SUMMARY = "GStreamer 1.0 multimedia framework"
-DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
-It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
-HOMEPAGE = "http://gstreamer.freedesktop.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
-SECTION = "multimedia"
-LICENSE = "LGPLv2+"
-
-DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native"
-
-inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc ptest
-
-# This way common/m4/introspection.m4 will come first
-# (it has a custom INTROSPECTION_INIT macro, and so must be used instead of our common introspection.m4 file)
-acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
- file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
-
-S = "${WORKDIR}/gstreamer-${PV}"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
- file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \
- file://gtk-doc-tweaks.patch \
- file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
- file://add-a-target-to-compile-tests.patch \
- file://run-ptest \
-"
-SRC_URI[md5sum] = "862b7e4263d946bc2ef31b3c582e5587"
-SRC_URI[sha256sum] = "0e8e2f7118be437cba879353970cf83c2acced825ecb9275ba05d9186ef07c00"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
- "
-
-PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
-PACKAGECONFIG[tests] = "--enable-tests,--disable-tests"
-PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
-PACKAGECONFIG[gst-tracer-hooks] = "--enable-gst-tracer-hooks,--disable-gst-tracer-hooks,"
-PACKAGECONFIG[unwind] = "--with-unwind,--without-unwind,libunwind"
-PACKAGECONFIG[dw] = "--with-dw,--without-dw,elfutils"
-
-EXTRA_OECONF = " \
- --disable-examples \
-"
-
-CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
-
-# musl libc generates warnings if <sys/poll.h> is included directly
-CACHED_CONFIGUREVARS += "ac_cv_header_sys_poll_h=no"
-
-PACKAGES += "${PN}-bash-completion"
-
-FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
-FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
-FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
-FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
-
-RDEPENDS_${PN}-ptest += "make"
-
-delete_pkg_m4_file() {
- # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
- rm "${S}/common/m4/pkg.m4" || true
- rm -f "${S}/common/m4/gtk-doc.m4"
-}
-
-do_configure[prefuncs] += "delete_pkg_m4_file"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs"
-}
-
-do_compile_ptest() {
- oe_runmake build-checks
-}
-
-do_install_ptest() {
- oe_runmake -C tests/check DESTDIR=${D}${PTEST_PATH} install-ptest
- install -m 644 ${B}/tests/check/Makefile ${D}${PTEST_PATH}
- install -m 755 ${S}/test-driver ${D}${PTEST_PATH}
- sed -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:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \-e 's/^Makefile:/_Makefile:/' \
- -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/^top_srcdir = \(.*\)/top_srcdir = ./' \
- -e 's/^builddir = \(.*\)/builddir = ./' -e 's/^top_builddir = \(.*\)/top_builddir = ./' \
- -i ${D}${PTEST_PATH}/Makefile
-}
-
-CVE_PRODUCT = "gstreamer"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.bb
new file mode 100644
index 0000000000..50a872e292
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.bb
@@ -0,0 +1,77 @@
+SUMMARY = "GStreamer 1.0 multimedia framework"
+DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
+It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
+HOMEPAGE = "http://gstreamer.freedesktop.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
+SECTION = "multimedia"
+LICENSE = "LGPLv2+"
+
+DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native"
+
+inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
+ file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
+
+S = "${WORKDIR}/gstreamer-${PV}"
+
+SRC_URI = " \
+ https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
+ file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
+ file://0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
+ file://0003-meson-Add-valgrind-feature.patch \
+ file://0004-meson-Add-option-for-installed-tests.patch \
+ file://capfix.patch \
+"
+SRC_URI[md5sum] = "0e661ed5bdf1d8996e430228d022628e"
+SRC_URI[sha256sum] = "e3f044246783fd685439647373fa13ba14f7ab0b346eadd06437092f8419e94e"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+ check \
+ debug \
+ tools"
+
+PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false"
+PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false"
+PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled"
+PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled-tests=true,-Dtests=disabled -Dinstalled-tests=false"
+PACKAGECONFIG[valgrind] = "-Dvalgrind=enabled,-Dvalgrind=disabled,valgrind,"
+PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
+PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils"
+PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion"
+PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled"
+PACKAGECONFIG[setcap] = "-Dsetcap=enabled,-Dsetcap=disabled,libcap libcap-native"
+
+# TODO: put this in a gettext.bbclass patch
+def gettext_oemeson(d):
+ if d.getVar('USE_NLS') == 'no':
+ return '-Dnls=disabled'
+ # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set
+ if d.getVar('INHIBIT_DEFAULT_DEPS') and not oe.utils.inherits(d, 'cross-canadian'):
+ return '-Dnls=disabled'
+ return '-Dnls=enabled'
+
+EXTRA_OEMESON += " \
+ -Dexamples=disabled \
+ -Ddbghelp=disabled \
+ ${@gettext_oemeson(d)} \
+"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+GTKDOC_MESON_ENABLE_FLAG = "enabled"
+GTKDOC_MESON_DISABLE_FLAG = "disabled"
+
+GIR_MESON_ENABLE_FLAG = "enabled"
+GIR_MESON_DISABLE_FLAG = "disabled"
+
+PACKAGES += "${PN}-bash-completion"
+
+# Add the core element plugins to the main package
+FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
+FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
+FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
+FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
+
+CVE_PRODUCT = "gstreamer"
+
+require gstreamer1.0-ptest.inc
diff --git a/meta/recipes-multimedia/libogg/libogg_1.3.4.bb b/meta/recipes-multimedia/libogg/libogg_1.3.4.bb
index 8ca001079d..c4004619b9 100644
--- a/meta/recipes-multimedia/libogg/libogg_1.3.4.bb
+++ b/meta/recipes-multimedia/libogg/libogg_1.3.4.bb
@@ -5,7 +5,7 @@ necessary to codec libraries like libvorbis."
HOMEPAGE = "http://xiph.org/"
BUGTRACKER = "https://trac.xiph.org/newticket"
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \
file://include/ogg/ogg.h;beginline=1;endline=11;md5=eda812856f13a3b1326eb8f020cc3b0b"
diff --git a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
index d83eb45701..2061c280e4 100644
--- a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
+++ b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
@@ -24,6 +24,10 @@ inherit autotools
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 66af2f3d60..edb2ac6146 100644
--- a/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
+++ b/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
@@ -2,18 +2,16 @@ SUMMARY = "PNG image format decoding library"
HOMEPAGE = "http://www.libpng.org/"
SECTION = "libs"
LICENSE = "Libpng"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b0085051bf265bac2bfc38bc89f50000\
- file://png.h;endline=144;md5=8acd23d544623816b097e07be0139509\
- "
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b0085051bf265bac2bfc38bc89f50000"
DEPENDS = "zlib"
LIBV = "16"
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/${PV}/${BP}.tar.xz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz"
SRC_URI[md5sum] = "015e8e15db1eecde5f2eb9eb5b6e59e9"
SRC_URI[sha256sum] = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca"
-MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/${PV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/${PV}/"
+MIRRORS += "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/older-releases/"
UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html"
@@ -22,10 +20,13 @@ 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"
FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp"
BBCLASSEXTEND = "native nativesdk"
+
+# CVE-2019-17371 is actually a memory leak in gif2png 2.x
+CVE_CHECK_WHITELIST += "CVE-2019-17371"
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb
index ffb45855a4..b100108766 100644
--- a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb
@@ -32,4 +32,12 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}"
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
PACKAGECONFIG[regtest] = "--enable-sqlite,--disable-sqlite,sqlite3"
-inherit autotools lib_package pkgconfig
+inherit autotools lib_package pkgconfig multilib_header
+
+do_install_append() {
+ oe_multilib_header sndfile.h
+}
+
+# This can't be replicated and is just a memory leak.
+# https://github.com/erikd/libsndfile/issues/398
+CVE_CHECK_WHITELIST += "CVE-2018-13419"
diff --git a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
index 664d8480a2..178e1a9240 100644
--- a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
+++ b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "The libtheora reference implementation provides the standard enco
HOMEPAGE = "http://xiph.org/"
BUGTRACKER = "https://trac.xiph.org/newticket"
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132"
DEPENDS = "libogg"
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2019-14973.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2019-14973.patch
deleted file mode 100644
index 8345295d07..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2019-14973.patch
+++ /dev/null
@@ -1,415 +0,0 @@
-From 95ac1e3fcc6b643b5bd100f2ea54faca0a003315 Mon Sep 17 00:00:00 2001
-From: Trevor Gamblin <trevor.gamblin@windriver.com>
-Date: Fri, 20 Sep 2019 09:33:22 -0400
-Subject: [PATCH] libtiff-fix-CVE-2019-14973
-
-Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/commit/2218055ca67d84be596a13080e8f50f22116555c]
-CVE: CVE-2019-14973
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
----
- libtiff/tif_aux.c | 49 +++++++++++++++++++++++++++++++++++++-----
- libtiff/tif_getimage.c | 6 ++----
- libtiff/tif_luv.c | 8 +------
- libtiff/tif_pixarlog.c | 7 +-----
- libtiff/tif_read.c | 38 +++++++++-----------------------
- libtiff/tif_strip.c | 35 ++++--------------------------
- libtiff/tif_tile.c | 27 +++--------------------
- libtiff/tiffiop.h | 7 +++++-
- 8 files changed, 71 insertions(+), 106 deletions(-)
-
-diff --git a/libtiff/tif_aux.c b/libtiff/tif_aux.c
-index 4ece162f..33fb8a44 100644
---- a/libtiff/tif_aux.c
-+++ b/libtiff/tif_aux.c
-@@ -57,18 +57,57 @@ _TIFFMultiply64(TIFF* tif, uint64 first, uint64 second, const char* where)
- return bytes;
- }
-
-+tmsize_t
-+_TIFFMultiplySSize(TIFF* tif, tmsize_t first, tmsize_t second, const char* where)
-+{
-+ if( first <= 0 || second <= 0 )
-+ {
-+ if( tif != NULL && where != NULL )
-+ {
-+ TIFFErrorExt(tif->tif_clientdata, where,
-+ "Invalid argument to _TIFFMultiplySSize() in %s", where);
-+ }
-+ return 0;
-+ }
-+
-+ if( first > TIFF_TMSIZE_T_MAX / second )
-+ {
-+ if( tif != NULL && where != NULL )
-+ {
-+ TIFFErrorExt(tif->tif_clientdata, where,
-+ "Integer overflow in %s", where);
-+ }
-+ return 0;
-+ }
-+ return first * second;
-+}
-+
-+tmsize_t _TIFFCastUInt64ToSSize(TIFF* tif, uint64 val, const char* module)
-+{
-+ if( val > (uint64)TIFF_TMSIZE_T_MAX )
-+ {
-+ if( tif != NULL && module != NULL )
-+ {
-+ TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-+ }
-+ return 0;
-+ }
-+ return (tmsize_t)val;
-+}
-+
- void*
- _TIFFCheckRealloc(TIFF* tif, void* buffer,
- tmsize_t nmemb, tmsize_t elem_size, const char* what)
- {
- void* cp = NULL;
-- tmsize_t bytes = nmemb * elem_size;
--
-+ tmsize_t count = _TIFFMultiplySSize(tif, nmemb, elem_size, NULL);
- /*
-- * XXX: Check for integer overflow.
-+ * Check for integer overflow.
- */
-- if (nmemb && elem_size && bytes / elem_size == nmemb)
-- cp = _TIFFrealloc(buffer, bytes);
-+ if (count != 0)
-+ {
-+ cp = _TIFFrealloc(buffer, count);
-+ }
-
- if (cp == NULL) {
- TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
-diff --git a/libtiff/tif_getimage.c b/libtiff/tif_getimage.c
-index 6a9d5a7c..2106ca21 100644
---- a/libtiff/tif_getimage.c
-+++ b/libtiff/tif_getimage.c
-@@ -755,9 +755,8 @@ gtTileSeparate(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h)
- uint32 leftmost_tw;
-
- tilesize = TIFFTileSize(tif);
-- bufsize = TIFFSafeMultiply(tmsize_t,alpha?4:3,tilesize);
-+ bufsize = _TIFFMultiplySSize(tif, alpha?4:3,tilesize, "gtTileSeparate");
- if (bufsize == 0) {
-- TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "Integer overflow in %s", "gtTileSeparate");
- return (0);
- }
-
-@@ -1019,9 +1018,8 @@ gtStripSeparate(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h)
- uint16 colorchannels;
-
- stripsize = TIFFStripSize(tif);
-- bufsize = TIFFSafeMultiply(tmsize_t,alpha?4:3,stripsize);
-+ bufsize = _TIFFMultiplySSize(tif,alpha?4:3,stripsize, "gtStripSeparate");
- if (bufsize == 0) {
-- TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "Integer overflow in %s", "gtStripSeparate");
- return (0);
- }
-
-diff --git a/libtiff/tif_luv.c b/libtiff/tif_luv.c
-index aa35ea07..46d2dff2 100644
---- a/libtiff/tif_luv.c
-+++ b/libtiff/tif_luv.c
-@@ -1264,16 +1264,10 @@ LogL16GuessDataFmt(TIFFDirectory *td)
- return (SGILOGDATAFMT_UNKNOWN);
- }
-
--
--#define TIFF_SIZE_T_MAX ((size_t) ~ ((size_t)0))
--#define TIFF_TMSIZE_T_MAX (tmsize_t)(TIFF_SIZE_T_MAX >> 1)
--
- static tmsize_t
- multiply_ms(tmsize_t m1, tmsize_t m2)
- {
-- if( m1 == 0 || m2 > TIFF_TMSIZE_T_MAX / m1 )
-- return 0;
-- return m1 * m2;
-+ return _TIFFMultiplySSize(NULL, m1, m2, NULL);
- }
-
- static int
-diff --git a/libtiff/tif_pixarlog.c b/libtiff/tif_pixarlog.c
-index 7438d692..b52a3ee4 100644
---- a/libtiff/tif_pixarlog.c
-+++ b/libtiff/tif_pixarlog.c
-@@ -634,15 +634,10 @@ PixarLogGuessDataFmt(TIFFDirectory *td)
- return guess;
- }
-
--#define TIFF_SIZE_T_MAX ((size_t) ~ ((size_t)0))
--#define TIFF_TMSIZE_T_MAX (tmsize_t)(TIFF_SIZE_T_MAX >> 1)
--
- static tmsize_t
- multiply_ms(tmsize_t m1, tmsize_t m2)
- {
-- if( m1 == 0 || m2 > TIFF_TMSIZE_T_MAX / m1 )
-- return 0;
-- return m1 * m2;
-+ return _TIFFMultiplySSize(NULL, m1, m2, NULL);
- }
-
- static tmsize_t
-diff --git a/libtiff/tif_read.c b/libtiff/tif_read.c
-index e63810cc..8db39d7a 100644
---- a/libtiff/tif_read.c
-+++ b/libtiff/tif_read.c
-@@ -29,9 +29,6 @@
- #include "tiffiop.h"
- #include <stdio.h>
-
--#define TIFF_SIZE_T_MAX ((size_t) ~ ((size_t)0))
--#define TIFF_TMSIZE_T_MAX (tmsize_t)(TIFF_SIZE_T_MAX >> 1)
--
- int TIFFFillStrip(TIFF* tif, uint32 strip);
- int TIFFFillTile(TIFF* tif, uint32 tile);
- static int TIFFStartStrip(TIFF* tif, uint32 strip);
-@@ -49,6 +46,8 @@ TIFFReadRawTile1(TIFF* tif, uint32 tile, void* buf, tmsize_t size, const char* m
- #define THRESHOLD_MULTIPLIER 10
- #define MAX_THRESHOLD (THRESHOLD_MULTIPLIER * THRESHOLD_MULTIPLIER * THRESHOLD_MULTIPLIER * INITIAL_THRESHOLD)
-
-+#define TIFF_INT64_MAX ((((int64)0x7FFFFFFF) << 32) | 0xFFFFFFFF)
-+
- /* Read 'size' bytes in tif_rawdata buffer starting at offset 'rawdata_offset'
- * Returns 1 in case of success, 0 otherwise. */
- static int TIFFReadAndRealloc( TIFF* tif, tmsize_t size,
-@@ -734,23 +733,8 @@ TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size)
- return ((tmsize_t)(-1));
- }
- bytecount = td->td_stripbytecount[strip];
-- if ((int64)bytecount <= 0) {
--#if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
-- TIFFErrorExt(tif->tif_clientdata, module,
-- "%I64u: Invalid strip byte count, strip %lu",
-- (unsigned __int64) bytecount,
-- (unsigned long) strip);
--#else
-- TIFFErrorExt(tif->tif_clientdata, module,
-- "%llu: Invalid strip byte count, strip %lu",
-- (unsigned long long) bytecount,
-- (unsigned long) strip);
--#endif
-- return ((tmsize_t)(-1));
-- }
-- bytecountm = (tmsize_t)bytecount;
-- if ((uint64)bytecountm!=bytecount) {
-- TIFFErrorExt(tif->tif_clientdata, module, "Integer overflow");
-+ bytecountm = _TIFFCastUInt64ToSSize(tif, bytecount, module);
-+ if (bytecountm == 0) {
- return ((tmsize_t)(-1));
- }
- if (size != (tmsize_t)(-1) && size < bytecountm)
-@@ -774,7 +758,7 @@ TIFFFillStrip(TIFF* tif, uint32 strip)
- if ((tif->tif_flags&TIFF_NOREADRAW)==0)
- {
- uint64 bytecount = td->td_stripbytecount[strip];
-- if ((int64)bytecount <= 0) {
-+ if( bytecount == 0 || bytecount > (uint64)TIFF_INT64_MAX ) {
- #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
- TIFFErrorExt(tif->tif_clientdata, module,
- "Invalid strip byte count %I64u, strip %lu",
-@@ -801,7 +785,7 @@ TIFFFillStrip(TIFF* tif, uint32 strip)
- (bytecount - 4096) / 10 > (uint64)stripsize )
- {
- uint64 newbytecount = (uint64)stripsize * 10 + 4096;
-- if( (int64)newbytecount >= 0 )
-+ if( newbytecount == 0 || newbytecount > (uint64)TIFF_INT64_MAX )
- {
- #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
- TIFFWarningExt(tif->tif_clientdata, module,
-@@ -1196,10 +1180,8 @@ TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size)
- bytecount64 = td->td_stripbytecount[tile];
- if (size != (tmsize_t)(-1) && (uint64)size < bytecount64)
- bytecount64 = (uint64)size;
-- bytecountm = (tmsize_t)bytecount64;
-- if ((uint64)bytecountm!=bytecount64)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-+ bytecountm = _TIFFCastUInt64ToSSize(tif, bytecount64, module);
-+ if( bytecountm == 0 ) {
- return ((tmsize_t)(-1));
- }
- return (TIFFReadRawTile1(tif, tile, buf, bytecountm, module));
-@@ -1221,7 +1203,7 @@ TIFFFillTile(TIFF* tif, uint32 tile)
- if ((tif->tif_flags&TIFF_NOREADRAW)==0)
- {
- uint64 bytecount = td->td_stripbytecount[tile];
-- if ((int64)bytecount <= 0) {
-+ if( bytecount == 0 || bytecount > (uint64)TIFF_INT64_MAX ) {
- #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
- TIFFErrorExt(tif->tif_clientdata, module,
- "%I64u: Invalid tile byte count, tile %lu",
-@@ -1248,7 +1230,7 @@ TIFFFillTile(TIFF* tif, uint32 tile)
- (bytecount - 4096) / 10 > (uint64)stripsize )
- {
- uint64 newbytecount = (uint64)stripsize * 10 + 4096;
-- if( (int64)newbytecount >= 0 )
-+ if( newbytecount == 0 || newbytecount > (uint64)TIFF_INT64_MAX )
- {
- #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
- TIFFWarningExt(tif->tif_clientdata, module,
-diff --git a/libtiff/tif_strip.c b/libtiff/tif_strip.c
-index 5b76fba5..2366acf0 100644
---- a/libtiff/tif_strip.c
-+++ b/libtiff/tif_strip.c
-@@ -129,15 +129,8 @@ TIFFVStripSize(TIFF* tif, uint32 nrows)
- {
- static const char module[] = "TIFFVStripSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFVStripSize64(tif,nrows);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -211,15 +204,8 @@ TIFFStripSize(TIFF* tif)
- {
- static const char module[] = "TIFFStripSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFStripSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -330,14 +316,8 @@ TIFFScanlineSize(TIFF* tif)
- {
- static const char module[] = "TIFFScanlineSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFScanlineSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m) {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer arithmetic overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -366,15 +346,8 @@ TIFFRasterScanlineSize(TIFF* tif)
- {
- static const char module[] = "TIFFRasterScanlineSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFRasterScanlineSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer arithmetic overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /* vim: set ts=8 sts=8 sw=8 noet: */
-diff --git a/libtiff/tif_tile.c b/libtiff/tif_tile.c
-index 58fe9354..661cc771 100644
---- a/libtiff/tif_tile.c
-+++ b/libtiff/tif_tile.c
-@@ -181,15 +181,8 @@ TIFFTileRowSize(TIFF* tif)
- {
- static const char module[] = "TIFFTileRowSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFTileRowSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -248,15 +241,8 @@ TIFFVTileSize(TIFF* tif, uint32 nrows)
- {
- static const char module[] = "TIFFVTileSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFVTileSize64(tif,nrows);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-@@ -272,15 +258,8 @@ TIFFTileSize(TIFF* tif)
- {
- static const char module[] = "TIFFTileSize";
- uint64 m;
-- tmsize_t n;
- m=TIFFTileSize64(tif);
-- n=(tmsize_t)m;
-- if ((uint64)n!=m)
-- {
-- TIFFErrorExt(tif->tif_clientdata,module,"Integer overflow");
-- n=0;
-- }
-- return(n);
-+ return _TIFFCastUInt64ToSSize(tif, m, module);
- }
-
- /*
-diff --git a/libtiff/tiffiop.h b/libtiff/tiffiop.h
-index 186c291f..558484fe 100644
---- a/libtiff/tiffiop.h
-+++ b/libtiff/tiffiop.h
-@@ -77,6 +77,9 @@ extern int snprintf(char* str, size_t size, const char* format, ...);
- #define FALSE 0
- #endif
-
-+#define TIFF_SIZE_T_MAX ((size_t) ~ ((size_t)0))
-+#define TIFF_TMSIZE_T_MAX (tmsize_t)(TIFF_SIZE_T_MAX >> 1)
-+
- typedef struct client_info {
- struct client_info *next;
- void *data;
-@@ -258,7 +261,7 @@ struct tiff {
- #define TIFFhowmany8_64(x) (((x)&0x07)?((uint64)(x)>>3)+1:(uint64)(x)>>3)
- #define TIFFroundup_64(x, y) (TIFFhowmany_64(x,y)*(y))
-
--/* Safe multiply which returns zero if there is an integer overflow */
-+/* Safe multiply which returns zero if there is an *unsigned* integer overflow. This macro is not safe for *signed* integer types */
- #define TIFFSafeMultiply(t,v,m) ((((t)(m) != (t)0) && (((t)(((v)*(m))/(m))) == (t)(v))) ? (t)((v)*(m)) : (t)0)
-
- #define TIFFmax(A,B) ((A)>(B)?(A):(B))
-@@ -368,6 +371,8 @@ extern TIFFErrorHandlerExt _TIFFerrorHandlerExt;
-
- extern uint32 _TIFFMultiply32(TIFF*, uint32, uint32, const char*);
- extern uint64 _TIFFMultiply64(TIFF*, uint64, uint64, const char*);
-+extern tmsize_t _TIFFMultiplySSize(TIFF*, tmsize_t, tmsize_t, const char*);
-+extern tmsize_t _TIFFCastUInt64ToSSize(TIFF*, uint64, const char*);
- extern void* _TIFFCheckMalloc(TIFF*, tmsize_t, tmsize_t, const char*);
- extern void* _TIFFCheckRealloc(TIFF*, void*, tmsize_t, tmsize_t, const char*);
-
---
-2.17.1
-
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2019-6128.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2019-6128.patch
deleted file mode 100644
index 6f1fd4d447..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2019-6128.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-CVE: CVE-2019-6128
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 0c74a9f49b8d7a36b17b54a7428b3526d20f88a8 Mon Sep 17 00:00:00 2001
-From: Scott Gayou <github.scott@gmail.com>
-Date: Wed, 23 Jan 2019 15:03:53 -0500
-Subject: [PATCH] Fix for simple memory leak that was assigned CVE-2019-6128.
-
-pal2rgb failed to free memory on a few errors. This was reported
-here: http://bugzilla.maptools.org/show_bug.cgi?id=2836.
----
- tools/pal2rgb.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/tools/pal2rgb.c b/tools/pal2rgb.c
-index 01d8502ec..9492f1cf1 100644
---- a/tools/pal2rgb.c
-+++ b/tools/pal2rgb.c
-@@ -118,12 +118,14 @@ main(int argc, char* argv[])
- shortv != PHOTOMETRIC_PALETTE) {
- fprintf(stderr, "%s: Expecting a palette image.\n",
- argv[optind]);
-+ (void) TIFFClose(in);
- return (-1);
- }
- if (!TIFFGetField(in, TIFFTAG_COLORMAP, &rmap, &gmap, &bmap)) {
- fprintf(stderr,
- "%s: No colormap (not a valid palette image).\n",
- argv[optind]);
-+ (void) TIFFClose(in);
- return (-1);
- }
- bitspersample = 0;
-@@ -131,11 +133,14 @@ main(int argc, char* argv[])
- if (bitspersample != 8) {
- fprintf(stderr, "%s: Sorry, can only handle 8-bit images.\n",
- argv[optind]);
-+ (void) TIFFClose(in);
- return (-1);
- }
- out = TIFFOpen(argv[optind+1], "w");
-- if (out == NULL)
-+ if (out == NULL) {
-+ (void) TIFFClose(in);
- return (-2);
-+ }
- cpTags(in, out);
- TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &imagewidth);
- TIFFGetField(in, TIFFTAG_IMAGELENGTH, &imagelength);
---
-2.21.0
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2019-7663.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2019-7663.patch
deleted file mode 100644
index f244fb2f32..0000000000
--- a/meta/recipes-multimedia/libtiff/tiff/CVE-2019-7663.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-CVE: CVE-2019-7663
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From c6fc6c1fa895024c86285c58efd6424cf8078f32 Mon Sep 17 00:00:00 2001
-From: Thomas Bernard <miniupnp@free.fr>
-Date: Mon, 11 Feb 2019 10:05:33 +0100
-Subject: [PATCH 1/2] check that (Tile Width)*(Samples/Pixel) do no overflow
-
-fixes bug 2833
----
- tools/tiffcp.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/tools/tiffcp.c b/tools/tiffcp.c
-index 2f406e2d..f0ee2c02 100644
---- a/tools/tiffcp.c
-+++ b/tools/tiffcp.c
-@@ -1408,7 +1408,7 @@ DECLAREreadFunc(readSeparateTilesIntoBuffer)
- int status = 1;
- uint32 imagew = TIFFRasterScanlineSize(in);
- uint32 tilew = TIFFTileRowSize(in);
-- int iskew = imagew - tilew*spp;
-+ int iskew;
- tsize_t tilesize = TIFFTileSize(in);
- tdata_t tilebuf;
- uint8* bufp = (uint8*) buf;
-@@ -1416,6 +1416,12 @@ DECLAREreadFunc(readSeparateTilesIntoBuffer)
- uint32 row;
- uint16 bps = 0, bytes_per_sample;
-
-+ if (spp > (0x7fffffff / tilew))
-+ {
-+ TIFFError(TIFFFileName(in), "Error, cannot handle that much samples per tile row (Tile Width * Samples/Pixel)");
-+ return 0;
-+ }
-+ iskew = imagew - tilew*spp;
- tilebuf = _TIFFmalloc(tilesize);
- if (tilebuf == 0)
- return 0;
---
-2.20.1
-
-
-From da6454aa80b9bb3154dfab4e8b21637de47531e0 Mon Sep 17 00:00:00 2001
-From: Thomas Bernard <miniupnp@free.fr>
-Date: Mon, 11 Feb 2019 21:42:03 +0100
-Subject: [PATCH 2/2] tiffcp.c: use INT_MAX
-
----
- tools/tiffcp.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/tools/tiffcp.c b/tools/tiffcp.c
-index f0ee2c02..8c81aa4f 100644
---- a/tools/tiffcp.c
-+++ b/tools/tiffcp.c
-@@ -41,6 +41,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <limits.h>
-
- #include <ctype.h>
-
-@@ -1416,7 +1417,7 @@ DECLAREreadFunc(readSeparateTilesIntoBuffer)
- uint32 row;
- uint16 bps = 0, bytes_per_sample;
-
-- if (spp > (0x7fffffff / tilew))
-+ if (spp > (INT_MAX / tilew))
- {
- TIFFError(TIFFFileName(in), "Error, cannot handle that much samples per tile row (Tile Width * Samples/Pixel)");
- return 0;
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/libtiff/tiff_4.0.10.bb b/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb
index 0432763cce..9b907fbc24 100644
--- a/meta/recipes-multimedia/libtiff/tiff_4.0.10.bb
+++ b/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb
@@ -5,12 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf"
CVE_PRODUCT = "libtiff"
SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \
- file://CVE-2019-6128.patch \
- file://CVE-2019-7663.patch \
- file://CVE-2019-14973.patch \
-"
-SRC_URI[md5sum] = "114192d7ebe537912a2b97408832e7fd"
-SRC_URI[sha256sum] = "2c52d11ccaf767457db0c46795d9c7d1a8d8f76f68b0b800a3dfe45786b996e4"
+ "
+SRC_URI[md5sum] = "2165e7aba557463acc0664e71a3ed424"
+SRC_URI[sha256sum] = "5d29f32517dadb6dbcd1255ea5bbc93a2b54b94fbf83653b4d65c7d6775b8634"
# exclude betas
UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar"
@@ -50,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 cbda6dc2fc..c5c10348c6 100644
--- a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb
+++ b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
@@ -5,17 +5,15 @@ is the main vorbis codec library."
HOMEPAGE = "http://www.vorbis.com/"
BUGTRACKER = "https://trac.xiph.org"
SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=70c7063491d2d9f76a098d62ed5134f1 \
- file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb"
+LICENSE = "BSD-3-Clause"
+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.11.bb b/meta/recipes-multimedia/mpg123/mpg123_1.26.3.bb
index d063ef5c59..0746d8d47d 100644
--- a/meta/recipes-multimedia/mpg123/mpg123_1.25.11.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] = "64749512a6fdc117227abe13fee4cc36"
-SRC_URI[sha256sum] = "df063307faa27c7d9efe63d2139b1564cfc7cdbb7c6f449c89ef8faabfa0eab2"
+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.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index ec51d8b279..4e32b27087 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -56,7 +56,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \
file://src/pulsecore/filter/biquad.h;beginline=1;endline=4;md5=6d46d1365206528a20137355924233c1 \
"
-DEPENDS = "libatomic-ops libsndfile1 libtool intltool-native"
+DEPENDS = "libatomic-ops libsndfile1 libtool"
# optional
DEPENDS += "udev alsa-lib glib-2.0"
DEPENDS += "speexdsp libxml-parser-perl-native libcap"
@@ -158,12 +158,22 @@ USERADD_PARAM_pulseaudio-server = "--system --home /var/run/pulse \
--no-create-home --shell /bin/false \
--groups audio,pulse --gid pulse pulse"
+PACKAGES =+ "\
+ libpulse \
+ libpulse-mainloop-glib \
+ libpulse-simple \
+ libpulsecommon \
+ libpulsecore \
+ ${PN}-pa-info \
+ ${PN}-server \
+ ${PN}-misc \
+ "
+
# The console-kit module is included here explicitly so bitbake can map to the
# RDEPENDS we define for it in this recipe, and thereby ensure that when
# adding the console-kit module to an image, we also get the necessary
# consolekit package produced.
-PACKAGES =+ "libpulsecore libpulsecommon libpulse libpulse-simple libpulse-mainloop-glib \
- pulseaudio-server pulseaudio-misc ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}"
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}"
#upgrade path:
RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf"
@@ -183,6 +193,7 @@ FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*"
FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}/cmake"
FILES_${PN}-conf = "${sysconfdir}"
FILES_${PN}-bin += "${sysconfdir}/default/volatiles/volatiles.04_pulse"
+FILES_${PN}-pa-info = "${bindir}/pa-info"
FILES_${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules */*/udev/rules.d/*.rules ${systemd_user_unitdir}/*"
#SYSTEMD_PACKAGES = "${PN}-server"
@@ -214,6 +225,16 @@ python populate_packages_prepend() {
do_split_packages(d, plugindir, r'^lib(.*)\.so$', '${PN}-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True)
}
+# pa-info is a bash script that collects information about the audio setup.
+# It's primarily useful for attaching an information dump when reporting bugs.
+RDEPENDS_${PN}-pa-info = "\
+ alsa-utils-amixer \
+ alsa-utils-aplay \
+ alsa-utils-scripts \
+ bash \
+ ${PN}-server \
+ "
+
RDEPENDS_pulseaudio-server = " \
pulseaudio-module-filter-apply \
pulseaudio-module-filter-heuristics \
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch
deleted file mode 100644
index 15026a2f83..0000000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From b89d33bb182c42db5ad3987b0e91b7bf62f421e8 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Sun, 21 Apr 2019 11:59:30 +0200
-Subject: [PATCH] alsa: Fix inclusion of use-case.h
-
-The recent change in ALSA upstream stripped -I$include/alsa path from
-pkgconfig. We already fixed for this change in some places but still
-the code for UCM was overlooked, and this resulted in the unresolved
-symbols in alsa card module. Fix them as well.
-
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Upstream-Status: Backport
----
- configure.ac | 2 +-
- src/modules/alsa/alsa-ucm.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c004bd70d..b44ed1595 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -826,7 +826,7 @@ AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
- AS_IF([test "x$HAVE_ALSA" = "x1"],
- [
- save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
-- AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
-+ AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
- CPPFLAGS="$save_CPPFLAGS"
- ],
- HAVE_ALSA_UCM=0)
-diff --git a/src/modules/alsa/alsa-ucm.h b/src/modules/alsa/alsa-ucm.h
-index 53abf3f90..c926f3cc3 100644
---- a/src/modules/alsa/alsa-ucm.h
-+++ b/src/modules/alsa/alsa-ucm.h
-@@ -23,7 +23,7 @@
- ***/
-
- #ifdef HAVE_ALSA_UCM
--#include <use-case.h>
-+#include <alsa/use-case.h>
- #else
- typedef void snd_use_case_mgr_t;
- #endif
---
-2.21.0
-
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-introduce-a-special-build-flag-to-explicitly-disable.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-introduce-a-special-build-flag-to-explicitly-disable.patch
deleted file mode 100644
index b7e9cd8c5c..0000000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-introduce-a-special-build-flag-to-explicitly-disable.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 36feb98e568221e24286615730888d5f6ff323f0 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 7 Dec 2018 15:12:38 +0800
-Subject: [PATCH] introduce a special build flag to explicitly disables running
- from build tree
-
-It is helpful to improve reproducibility build [1] since
-PA_SRCDIR/PA_BUILDDIR contains build path, disable running
-from build tree could drop these macros at precompilation.
-
-[1] https://reproducible-builds.org/
-
-Upstream-Status: Submitted [pulseaudio-discuss@lists.freedesktop.org]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Acked-by: Tanu Kaskinen <tanuk@iki.fi>
----
- configure.ac | 10 ++++++++++
- src/daemon/daemon-conf.c | 4 +++-
- src/daemon/main.c | 6 ++++++
- src/modules/alsa/alsa-mixer.c | 4 ++++
- src/modules/gconf/module-gconf.c | 2 +-
- src/modules/gsettings/module-gsettings.c | 2 +-
- src/pulsecore/core-util.c | 4 +++-
- 7 files changed, 28 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c9c414f..8b345ef 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -998,6 +998,16 @@ AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
- AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
- AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
-
-+#### Running from build tree (optional) ####
-+
-+AC_ARG_ENABLE([running-from-build-tree],
-+ AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
-+
-+AS_IF([test "x$enable_running_from_build_tree" != "xno"],
-+ AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
-+
-+AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
-+
- #### TCP wrappers (optional) ####
-
- AC_ARG_ENABLE([tcpwrap],
-diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c
-index 9883126..f01eff4 100644
---- a/src/daemon/daemon-conf.c
-+++ b/src/daemon/daemon-conf.c
-@@ -155,12 +155,14 @@ pa_daemon_conf *pa_daemon_conf_new(void) {
- c->dl_search_path = pa_sprintf_malloc("%s" PA_PATH_SEP "lib" PA_PATH_SEP "pulse-%d.%d" PA_PATH_SEP "modules",
- pa_win32_get_toplevel(NULL), PA_MAJOR, PA_MINOR);
- #else
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
- if (pa_run_from_build_tree()) {
- pa_log_notice("Detected that we are run from the build tree, fixing search path.");
- c->dl_search_path = pa_xstrdup(PA_BUILDDIR);
- } else
-- c->dl_search_path = pa_xstrdup(PA_DLSEARCHPATH);
- #endif
-+ c->dl_search_path = pa_xstrdup(PA_DLSEARCHPATH);
-+#endif //Endof #ifdef OS_IS_WIN32
-
- return c;
- }
-diff --git a/src/daemon/main.c b/src/daemon/main.c
-index c80fa94..1e00388 100644
---- a/src/daemon/main.c
-+++ b/src/daemon/main.c
-@@ -932,6 +932,12 @@ int main(int argc, char *argv[]) {
-
- pa_log_debug("Running in VM: %s", pa_yes_no(pa_running_in_vm()));
-
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
-+ pa_log_debug("Running from build tree: %s", pa_yes_no(pa_run_from_build_tree()));
-+#else
-+ pa_log_debug("Running from build tree: no");
-+#endif
-+
- #ifdef __OPTIMIZE__
- pa_log_debug("Optimized build: yes");
- #else
-diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
-index a524d6d..670f646 100644
---- a/src/modules/alsa/alsa-mixer.c
-+++ b/src/modules/alsa/alsa-mixer.c
-@@ -2571,9 +2571,11 @@ static int path_verify(pa_alsa_path *p) {
- }
-
- static const char *get_default_paths_dir(void) {
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
- if (pa_run_from_build_tree())
- return PA_SRCDIR "/modules/alsa/mixer/paths/";
- else
-+#endif
- return PA_ALSA_PATHS_DIR;
- }
-
-@@ -4455,7 +4457,9 @@ pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel
- fname = "default.conf";
-
- fn = pa_maybe_prefix_path(fname,
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
- pa_run_from_build_tree() ? PA_SRCDIR "/modules/alsa/mixer/profile-sets/" :
-+#endif
- PA_ALSA_PROFILE_SETS_DIR);
-
- r = pa_config_parse(fn, NULL, items, NULL, false, ps);
-diff --git a/src/modules/gconf/module-gconf.c b/src/modules/gconf/module-gconf.c
-index c0f4dde..76a1f19 100644
---- a/src/modules/gconf/module-gconf.c
-+++ b/src/modules/gconf/module-gconf.c
-@@ -51,7 +51,7 @@ int pa__init(pa_module*m) {
- u->buf_fill = 0;
-
- if ((u->fd = pa_start_child_for_read(
--#if defined(__linux__) && !defined(__OPTIMIZE__)
-+#if defined(__linux__) && defined(HAVE_RUNNING_FROM_BUILD_TREE)
- pa_run_from_build_tree() ? PA_BUILDDIR "/gconf-helper" :
- #endif
- PA_GCONF_HELPER, NULL, &u->pid)) < 0)
-diff --git a/src/modules/gsettings/module-gsettings.c b/src/modules/gsettings/module-gsettings.c
-index 330eca1..209c857 100644
---- a/src/modules/gsettings/module-gsettings.c
-+++ b/src/modules/gsettings/module-gsettings.c
-@@ -51,7 +51,7 @@ int pa__init(pa_module*m) {
- u->buf_fill = 0;
-
- if ((u->fd = pa_start_child_for_read(
--#if defined(__linux__) && !defined(__OPTIMIZE__)
-+#if defined(__linux__) && defined(HAVE_RUNNING_FROM_BUILD_TREE)
- pa_run_from_build_tree() ? PA_BUILDDIR "/gsettings-helper" :
- #endif
- PA_GSETTINGS_HELPER, NULL, &u->pid)) < 0)
-diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
-index 64e9f21..f85dd20 100644
---- a/src/pulsecore/core-util.c
-+++ b/src/pulsecore/core-util.c
-@@ -3436,15 +3436,17 @@ void pa_reset_personality(void) {
- }
-
- bool pa_run_from_build_tree(void) {
-- char *rp;
- static bool b = false;
-
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
-+ char *rp;
- PA_ONCE_BEGIN {
- if ((rp = pa_readlink("/proc/self/exe"))) {
- b = pa_startswith(rp, PA_BUILDDIR);
- pa_xfree(rp);
- }
- } PA_ONCE_END;
-+#endif
-
- return b;
- }
---
-2.7.4
-
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_12.2.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb
deleted file mode 100644
index 88b4975a66..0000000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-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://0001-introduce-a-special-build-flag-to-explicitly-disable.patch \
- file://0001-alsa-Fix-inclusion-of-use-case.h.patch \
- file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
- file://volatiles.04_pulse \
- "
-SRC_URI[md5sum] = "c42f1f1465e8df9859d023dc184734bf"
-SRC_URI[sha256sum] = "809668ffc296043779c984f53461c2b3987a45b7a25eb2f0a1d11d9f23ba4055"
-
-do_compile_prepend() {
- mkdir -p ${S}/libltdl
- cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
-}
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
new file mode 100644
index 0000000000..53e9a2357d
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
@@ -0,0 +1,12 @@
+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"
+UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"
diff --git a/meta/recipes-multimedia/speex/speex_1.2.0.bb b/meta/recipes-multimedia/speex/speex_1.2.0.bb
index 19636bb202..3a0911d6f8 100644
--- a/meta/recipes-multimedia/speex/speex_1.2.0.bb
+++ b/meta/recipes-multimedia/speex/speex_1.2.0.bb
@@ -2,7 +2,7 @@ SUMMARY = "Speech Audio Codec"
DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compression format designed for speech."
HOMEPAGE = "http://www.speex.org"
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8 \
file://include/speex/speex.h;beginline=1;endline=34;md5=ef8c8ea4f7198d71cf3509c6ed05ea50"
DEPENDS = "libogg speexdsp"
diff --git a/meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch b/meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch
deleted file mode 100644
index c7067daaa0..0000000000
--- a/meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From c73370ceafd138becee8ca3c688ba75756830bfe Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
-Date: Sun, 5 Jul 2015 17:48:16 +0300
-Subject: [PATCH] Don't rely on HAVE_STDINT_H et al. being defined
-
-Not everyone who includes speexdsp_config_types.h will have a test
-which defines those, and if we've chosen to use the stdint types at
-configure time then we know exactly which header(s) are available, so
-just choose the best one then and generate the header to use it.
-
-This patch, including the above text, is copied from a commit in the
-speex repository[1]. The original commit for speex was made by Ron
-<ron@debian.org>.
-
-[1] https://git.xiph.org/?p=speex.git;a=commitdiff;h=774c87d6cb7dd8dabdd17677fc6da753ecf4aa87
-
-Upstream-Status: Backport
-
-Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
----
- configure.ac | 6 ++++++
- include/speex/speexdsp_config_types.h.in | 8 +-------
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 2cd2d1e..1de0c23 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -334,6 +334,12 @@ AC_SUBST([USIZE16])
- AC_SUBST([SIZE32])
- AC_SUBST([USIZE32])
-
-+AS_IF([test "$ac_cv_header_stdint_h" = "yes"], [INCLUDE_STDINT="#include <stdint.h>"],
-+ [test "$ac_cv_header_inttypes_h" = "yes"], [INCLUDE_STDINT="#include <inttypes.h>"],
-+ [test "$ac_cv_header_sys_types_h" = "yes"], [INCLUDE_STDINT="#include <sys/types.h>"])
-+
-+AC_SUBST([INCLUDE_STDINT])
-+
- AC_CONFIG_FILES([
- Makefile libspeexdsp/Makefile doc/Makefile SpeexDSP.spec
- include/Makefile include/speex/Makefile speexdsp.pc
-diff --git a/include/speex/speexdsp_config_types.h.in b/include/speex/speexdsp_config_types.h.in
-index 02b82fd..5ea7b55 100644
---- a/include/speex/speexdsp_config_types.h.in
-+++ b/include/speex/speexdsp_config_types.h.in
-@@ -1,13 +1,7 @@
- #ifndef __SPEEX_TYPES_H__
- #define __SPEEX_TYPES_H__
-
--#if defined HAVE_STDINT_H
--# include <stdint.h>
--#elif defined HAVE_INTTYPES_H
--# include <inttypes.h>
--#elif defined HAVE_SYS_TYPES_H
--# include <sys/types.h>
--#endif
-+@INCLUDE_STDINT@
-
- typedef @SIZE16@ spx_int16_t;
- typedef @USIZE16@ spx_uint16_t;
---
-1.9.3
-
diff --git a/meta/recipes-multimedia/speex/speexdsp_1.2.0.bb b/meta/recipes-multimedia/speex/speexdsp_1.2.0.bb
new file mode 100644
index 0000000000..6369646761
--- /dev/null
+++ b/meta/recipes-multimedia/speex/speexdsp_1.2.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "A patent-free DSP library"
+DESCRIPTION = "SpeexDSP is a patent-free, Open Source/Free Software DSP library."
+HOMEPAGE = "http://www.speex.org"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8"
+
+SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz"
+
+UPSTREAM_CHECK_REGEX = "speexdsp-(?P<pver>\d+(\.\d+)+)\.tar"
+
+SRC_URI[md5sum] = "b722df341576dc185d897131321008fc"
+SRC_URI[sha256sum] = "682042fc6f9bee6294ec453f470dadc26c6ff29b9c9e9ad2ffc1f4312fd64771"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "\
+ --disable-examples \
+ ${@bb.utils.contains('TARGET_FPU', 'soft', '--enable-fixed-point --disable-float-api', '', d)} \
+"
+
+# speexdsp was split off from speex in 1.2rc2. Older versions of speex can't
+# be installed together with speexdsp, since they contain overlapping files.
+RCONFLICTS_${PN} = "speex (< 1.2rc2)"
+RCONFLICTS_${PN}-dbg = "speex-dbg (< 1.2rc2)"
+RCONFLICTS_${PN}-dev = "speex-dev (< 1.2rc2)"
+RCONFLICTS_${PN}-staticdev = "speex-staticdev (< 1.2rc2)"
diff --git a/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb b/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb
deleted file mode 100644
index 6b1acedbef..0000000000
--- a/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "A patent-free DSP library"
-DESCRIPTION = "SpeexDSP is a patent-free, Open Source/Free Software DSP library."
-HOMEPAGE = "http://www.speex.org"
-SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8"
-
-SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz \
- file://0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch"
-
-SRC_URI[md5sum] = "70d9d31184f7eb761192fd1ef0b73333"
-SRC_URI[sha256sum] = "4ae688600039f5d224bdf2e222d2fbde65608447e4c2f681585e4dca6df692f1"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "\
- --disable-examples \
- ${@bb.utils.contains('TARGET_FPU', 'soft', '--enable-fixed-point --disable-float-api', '', d)} \
-"
-
-# Workaround for a build failure when building with MACHINE=qemuarm64. I think
-# aarch64 is supposed to support NEON just fine, but building for qemuarm64
-# fails in NEON code:
-#
-# .../speexdsp-1.2rc3/libspeexdsp/resample_neon.h:148:5: error: impossible constraint in 'asm'
-# asm volatile (" cmp %[len], #0\n"
-# ^
-#
-# I sent an email about the issue to speex-dev. At the time of writing there
-# are no responses yet:
-# http://thread.gmane.org/gmane.comp.audio.compression.speex.devel/7360
-EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '--disable-neon', '', d)}"
-
-# speexdsp was split off from speex in 1.2rc2. Older versions of speex can't
-# be installed together with speexdsp, since they contain overlapping files.
-RCONFLICTS_${PN} = "speex (< 1.2rc2)"
-RCONFLICTS_${PN}-dbg = "speex-dbg (< 1.2rc2)"
-RCONFLICTS_${PN}-dev = "speex-dev (< 1.2rc2)"
-RCONFLICTS_${PN}-staticdev = "speex-staticdev (< 1.2rc2)"
diff --git a/meta/recipes-multimedia/webp/libwebp_1.0.3.bb b/meta/recipes-multimedia/webp/libwebp_1.1.0.bb
index a4d1ae43d9..68e5ae2b3c 100644
--- a/meta/recipes-multimedia/webp/libwebp_1.0.3.bb
+++ b/meta/recipes-multimedia/webp/libwebp_1.1.0.bb
@@ -9,13 +9,13 @@ DESCRIPTION = "WebP is a method of lossy and lossless compression that can be \
HOMEPAGE = "https://developers.google.com/speed/webp/"
SECTION = "libs"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \
file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7"
SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz"
-SRC_URI[md5sum] = "906ad85daaaa2eac97c8aa2dec9e8b77"
-SRC_URI[sha256sum] = "e20a07865c8697bba00aebccc6f54912d6bc333bb4d604e6b07491c1a226b34f"
+SRC_URI[md5sum] = "7e047f2cbaf584dff7a8a7e0f8572f18"
+SRC_URI[sha256sum] = "98a052268cc4d5ece27f76572a7f50293f439c17a98e67c4ea0c7ed6f50ef043"
UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html"
diff --git a/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch b/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch
index 087a448eec..cb771fb0bf 100644
--- a/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch
+++ b/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch
@@ -1,4 +1,4 @@
-From 66b120079fb21ed38cab0900c63360b0a7853eaa Mon Sep 17 00:00:00 2001
+From 7bc25f4d1aaa5186d2eff3e2326c7245fcd7e7f3 Mon Sep 17 00:00:00 2001
From: Christopher Larson <chris_larson@mentor.com>
Date: Tue, 13 Dec 2016 14:22:32 -0700
Subject: [PATCH] Fix X32 build by disabling asm
@@ -12,15 +12,16 @@ doesn't successfully build at this time, and my assembly is very rusty.
Upstream-Status: Pending
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+
---
configure | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
-index 3109ec4..844aeae 100755
+index 51b128d..6ea9469 100755
--- a/configure
+++ b/configure
-@@ -703,7 +703,13 @@ case $host_cpu in
+@@ -754,7 +754,13 @@ case $host_cpu in
AS_EXT=".asm"
ASFLAGS="$ASFLAGS -DARCH_X86_64=1 -I\$(SRCPATH)/common/x86/"
stack_alignment=16
@@ -33,9 +34,9 @@ index 3109ec4..844aeae 100755
+ fi
+ fi
if [ "$SYS" = MACOSX ]; then
- ASFLAGS="$ASFLAGS -f macho64 -DPIC -DPREFIX"
+ ASFLAGS="$ASFLAGS -f macho64 -DPREFIX"
if cc_check '' "-arch x86_64"; then
-@@ -722,7 +728,11 @@ case $host_cpu in
+@@ -773,7 +779,11 @@ case $host_cpu in
RCFLAGS="--target=pe-x86-64 $RCFLAGS"
fi
else
@@ -48,6 +49,3 @@ index 3109ec4..844aeae 100755
fi
;;
powerpc*)
---
-2.8.0
-
diff --git a/meta/recipes-multimedia/x264/x264_git.bb b/meta/recipes-multimedia/x264/x264_git.bb
index f22930a0ee..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 = "72db437770fd1ce3961f624dd57a8e75ff65ae0b"
+SRCREV = "cde9a93319bea766a92e306d69059c76de970190"
-PV = "r2917+git${SRCPV}"
+PV = "r3011+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-rt/rt-tests/files/rt_bmark.py b/meta/recipes-rt/rt-tests/files/rt_bmark.py
index 57b39b52a1..3b84447a0f 100755
--- a/meta/recipes-rt/rt-tests/files/rt_bmark.py
+++ b/meta/recipes-rt/rt-tests/files/rt_bmark.py
@@ -166,12 +166,12 @@ def start_stress(*args):
log(" Command: '", stress_cmd_str, "'")
log()
- # preexec_fn=os.setsid causes stress to be executed in a separate
+ # start_new_session causes stress to be executed in a separate
# session, => it gets a new process group (incl. children). It
# can then be terminated using os.killpg in end_stress without
# terminating this script.
- p = subprocess.Popen(stress_cmd, preexec_fn=os.setsid)
+ p = subprocess.Popen(stress_cmd, start_new_session=True)
return p
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 227eb99b98..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-5])(\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 ff297fe324..bf749acd79 100644
--- a/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
+++ b/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
@@ -3,8 +3,6 @@ require conf/distro/include/ptest-packagelists.inc
DESCRIPTION += "Also includes ptest packages."
-IMAGE_FEATURES += "ptest-pkgs"
-
PROVIDES += "core-image-sato-ptest"
# Also include ptests which may not otherwise be included in a sato image
@@ -18,4 +16,8 @@ IMAGE_OVERHEAD_FACTOR = "1.0"
IMAGE_ROOTFS_EXTRA_SPACE = "1124288"
# ptests need more memory than standard to avoid the OOM killer
-QB_MEM = "-m 1024"
+# 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/l3afpad/l3afpad_git.bb b/meta/recipes-sato/l3afpad/l3afpad_git.bb
index ccfda26589..6fdcc3e392 100644
--- a/meta/recipes-sato/l3afpad/l3afpad_git.bb
+++ b/meta/recipes-sato/l3afpad/l3afpad_git.bb
@@ -17,7 +17,7 @@ SRCREV ="3cdccdc9505643e50f8208171d9eee5de11a42ff"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check mime-xdg
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb b/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
index b993a94547..547e851c15 100644
--- a/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
+++ b/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
@@ -17,7 +17,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The settings-daemon requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
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 b0cdfa2ae1..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,14 +13,14 @@ 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"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# The startup-notification requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
index 465f1349af..dfc7fbad57 100644
--- a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
+++ b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
@@ -18,7 +18,7 @@ SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1 \
S = "${WORKDIR}/git"
-inherit autotools pkgconfig gettext gtk-immodules-cache distro_features_check
+inherit autotools pkgconfig gettext gtk-immodules-cache features_check
# The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb b/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
index 421740f984..2e6f5b7085 100644
--- a/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
+++ b/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
@@ -37,4 +37,4 @@ FILES_${PN} += "${libdir}/matchbox-panel/*.so \
${datadir}/icons/"
FILES_${PN}-dev += "${libdir}/matchbox-panel/*.la"
-inherit autotools pkgconfig distro_features_check gettext
+inherit autotools pkgconfig features_check gettext
diff --git a/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb b/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
index 8230e95140..966c5b5b92 100644
--- a/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
+++ b/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
@@ -13,7 +13,7 @@ PR = "r30"
# based on the machine architecture.
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit distro_features_check
+inherit features_check
# The matchbox-theme-sato requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb b/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
index 7f5eda3043..9f00281dde 100644
--- a/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
+++ b/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.2.bb
@@ -16,6 +16,6 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
index d947e1ab0f..ce683e9630 100644
--- a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
+++ b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=aae86bb34b0a83716ca09f4e783d6ba4"
DEPENDS = "matchbox-wm"
SECTION = "x11/wm"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
FILES_${PN} += "${datadir}/themes"
diff --git a/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb b/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
index 7e14ece93d..ed3f1a69a1 100644
--- a/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
+++ b/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
@@ -7,7 +7,7 @@ PR = "r33"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
PACKAGES = "${PN} ${PN}-base ${PN}-apps ${PN}-games"
diff --git a/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb b/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb
index a5e3a1ad33..7885e0abae 100644
--- a/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb
+++ b/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb
@@ -21,7 +21,7 @@ SRC_URI[sha256sum] = "6804043b3ee3a703edde41c724946174b505fe958703eadbd7e0876ece
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/PCManFM/"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check mime-xdg
# The startup-notification requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch b/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch
deleted file mode 100644
index f43d1df6cc..0000000000
--- a/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 9808dc09e08937c9bffd858d3ded428225a4312a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 7 Sep 2015 09:02:38 +0000
-Subject: [PATCH] Use labs instead of abs
-
-cluevals is array of longs so we have to use labs() instead of abs()
-since abs() returns int
-
-Fixes
-
-keen.c:1458:17: error: absolute value function 'abs' given an argument
-of type 'long' but has parameter of type 'int' which may cause
-truncation of value
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- keen.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/keen.c b/keen.c
-index a6a7238..1631992 100644
---- a/keen.c
-+++ b/keen.c
-@@ -1043,7 +1043,7 @@ done
- cluevals[j] *= grid[i];
- break;
- case C_SUB:
-- cluevals[j] = abs(cluevals[j] - grid[i]);
-+ cluevals[j] = labs(cluevals[j] - grid[i]);
- break;
- case C_DIV:
- {
-@@ -1455,7 +1455,7 @@ static int check_errors(const game_state *state, long *errors)
- cluevals[j] *= state->grid[i];
- break;
- case C_SUB:
-- cluevals[j] = abs(cluevals[j] - state->grid[i]);
-+ cluevals[j] = labs(cluevals[j] - state->grid[i]);
- break;
- case C_DIV:
- {
---
-2.5.1
-
diff --git a/meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch b/meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch
index 5351f8eb4e..143e898a51 100644
--- a/meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch
+++ b/meta/recipes-sato/puzzles/files/0001-palisade-Fix-warnings-with-clang-on-arm.patch
@@ -1,7 +1,7 @@
-From 6d8326275802a2e6e61d3e99460af6891ae8362f Mon Sep 17 00:00:00 2001
+From 453587d714473b806473b309727f865b673cbc06 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 Jan 2016 23:10:19 -0800
-Subject: [puzzles][PATCH] palisade: Fix warnings with clang on arm
+Subject: [PATCH] palisade: Fix warnings with clang on arm
ARM treats 'char' as unsigned char when 'char' is not qualified with
'signed' or 'unsigned' explicitly.
@@ -16,17 +16,16 @@ type 'clue' (aka 'char') is always false
Therefore, typcast the contant to char in such places to be explicit
Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
Upstream-Status: Submitted
-
+---
palisade.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/palisade.c b/palisade.c
-index 984e616..2b9c25c 100644
+index 6ffbf2d..8b54d42 100644
--- a/palisade.c
+++ b/palisade.c
-@@ -295,11 +295,11 @@ static void solver_connected_clues_versus_region_size(solver_ctx *ctx)
+@@ -304,11 +304,11 @@ static void solver_connected_clues_versus_region_size(solver_ctx *ctx)
* If p = q = 3 then the region has size exactly 2. */
for (i = 0; i < wh; ++i) {
@@ -40,8 +39,8 @@ index 984e616..2b9c25c 100644
if ((8 - ctx->clues[i] - ctx->clues[j] > ctx->params->k) ||
(ctx->clues[i] == 3 && ctx->clues[j] == 3 &&
ctx->params->k != 2))
-@@ -317,7 +317,7 @@ static int solver_number_exhausted(solver_ctx *ctx)
- int changed = FALSE;
+@@ -326,7 +326,7 @@ static bool solver_number_exhausted(solver_ctx *ctx)
+ bool changed = false;
for (i = 0; i < wh; ++i) {
- if (ctx->clues[i] == EMPTY) continue;
@@ -49,16 +48,16 @@ index 984e616..2b9c25c 100644
if (bitcount[(ctx->borders[i] & BORDER_MASK)] == ctx->clues[i]) {
for (dir = 0; dir < 4; ++dir) {
-@@ -528,7 +528,7 @@ static int is_solved(const game_params *params, clue *clues,
+@@ -538,7 +538,7 @@ static bool is_solved(const game_params *params, clue *clues,
for (i = 0; i < wh; ++i) {
- if (dsf[i] == UNVISITED) dfs_dsf(i, params->w, border, dsf, TRUE);
+ if (dsf[i] == UNVISITED) dfs_dsf(i, params->w, border, dsf, true);
if (dsf_size(dsf, i) != k) goto error;
- if (clues[i] == EMPTY) continue;
+ if (clues[i] == (char)EMPTY) continue;
if (clues[i] != bitcount[border[i] & BORDER_MASK]) goto error;
}
-@@ -674,7 +674,7 @@ static char *new_game_desc(const game_params *params, random_state *rs,
+@@ -685,7 +685,7 @@ static char *new_game_desc(const game_params *params, random_state *rs,
p = numbers;
r = 0;
for (i = 0; i < wh; ++i) {
@@ -67,6 +66,3 @@ index 984e616..2b9c25c 100644
while (r) {
while (r > 26) {
*p++ = 'z';
---
-2.7.0
-
diff --git a/meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch b/meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch
index 9ac62015d8..7ca582fe5d 100644
--- a/meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch
+++ b/meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch
@@ -1,4 +1,4 @@
-From 035467aa0abfbc0de7e5d24543d4aab37301593c Mon Sep 17 00:00:00 2001
+From 3af5a1e579e3324a13ba1f892c7befb3ab32d899 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 7 Mar 2019 21:56:57 -0800
Subject: [PATCH] pattern.c: Change string lenght parameter to be size_t in
@@ -11,23 +11,24 @@ pattern.c:455:9: error: 'memset' specified size between 18446744071562067968 and
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
pattern.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pattern.c b/pattern.c
-index 45b1b0c..f73a4c2 100644
+index ffadd3f..4e5f187 100644
--- a/pattern.c
+++ b/pattern.c
-@@ -428,7 +428,7 @@ static int do_row(unsigned char *known, unsigned char *deduced,
- unsigned char *row,
- unsigned char *minpos_done, unsigned char *maxpos_done,
- unsigned char *minpos_ok, unsigned char *maxpos_ok,
-- unsigned char *start, int len, int step, int *data,
-+ unsigned char *start, size_t len, int step, int *data,
- unsigned int *changed
+@@ -428,7 +428,7 @@ static bool do_row(unsigned char *known, unsigned char *deduced,
+ unsigned char *row,
+ unsigned char *minpos_done, unsigned char *maxpos_done,
+ unsigned char *minpos_ok, unsigned char *maxpos_ok,
+- unsigned char *start, int len, int step, int *data,
++ unsigned char *start, size_t len, int step, int *data,
+ unsigned int *changed
#ifdef STANDALONE_SOLVER
- , const char *rowcol, int index, int cluewid
+ , const char *rowcol, int index, int cluewid
--
-2.21.0
+2.17.1
diff --git a/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch b/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch
index c134acde2f..28040523d4 100644
--- a/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch
+++ b/meta/recipes-sato/puzzles/files/fix-compiling-failure-with-option-g-O.patch
@@ -1,4 +1,7 @@
-gtk.c: fix compiling failure with option -g -O
+From 876c6ff1e20f51b0921acda99861f476b6423f26 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 11 Aug 2014 12:39:53 +0800
+Subject: [PATCH] gtk.c: fix compiling failure with option -g -O
There were compiling failure with option -g -O
...
@@ -21,23 +24,21 @@ Initialized pointer 'cr' and 'error' with NULL
Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
- gtk.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ gtk.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gtk.c b/gtk.c
-index a2eba2c..c54bf63 100644
+index 4565836..5e83b48 100644
--- a/gtk.c
+++ b/gtk.c
-@@ -2481,7 +2481,7 @@ char *fgetline(FILE *fp)
+@@ -2944,7 +2944,7 @@ static void list_presets_from_menu(struct preset_menu *menu)
int main(int argc, char **argv)
{
char *pname = argv[0];
- char *error;
+ char *error = NULL;
- int ngenerate = 0, print = FALSE, px = 1, py = 1;
- int time_generation = FALSE, test_solve = FALSE, list_presets = FALSE;
- int soln = FALSE, colour = FALSE;
---
-1.9.1
-
+ int ngenerate = 0, px = 1, py = 1;
+ bool print = false;
+ bool time_generation = false, test_solve = false, list_presets = false;
diff --git a/meta/recipes-sato/puzzles/puzzles_git.bb b/meta/recipes-sato/puzzles/puzzles_git.bb
index 59b952522d..a0f3b5d9cd 100644
--- a/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -1,7 +1,7 @@
SUMMARY = "Simon Tatham's Portable Puzzle Collection"
HOMEPAGE = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=da6110d4ed1225a287eab2bf0ac0193b"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=6099f4981f9461d7f411091e69a7f07a"
DEPENDS = "libxt"
@@ -10,7 +10,6 @@ REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "git://git.tartarus.org/simon/puzzles.git \
file://fix-compiling-failure-with-option-g-O.patch \
- file://0001-Use-labs-instead-of-abs.patch \
file://0001-palisade-Fix-warnings-with-clang-on-arm.patch \
file://0001-Use-Wno-error-format-overflow-if-the-compiler-suppor.patch \
file://0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch \
@@ -18,13 +17,13 @@ SRC_URI = "git://git.tartarus.org/simon/puzzles.git \
"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "c6e0161dd475415316ed66dc82794d68e52f0025"
+SRCREV = "9aa7b7cdfb2bcd200f45941a58d6ae698882a2d4"
PE = "2"
PV = "0.0+git${SRCPV}"
S = "${WORKDIR}/git"
-inherit autotools distro_features_check pkgconfig
+inherit autotools features_check pkgconfig
PACKAGECONFIG ??= "gtk3"
PACKAGECONFIG[gtk2] = "--with-gtk=2,,gtk+,"
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 f3305aef78..2b1f513f1c 100644
--- a/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
+++ b/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
@@ -16,12 +16,12 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig distro_features_check
+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/settings-daemon/settings-daemon_0.0.2.bb b/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
index bb6b69b900..227fd54b79 100644
--- a/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
+++ b/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
@@ -17,7 +17,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig gconf distro_features_check
+inherit autotools pkgconfig gconf features_check
FILES_${PN} = "${bindir}/* ${sysconfdir}"
diff --git a/meta/recipes-sato/webkit/libwpe_1.7.1.bb b/meta/recipes-sato/webkit/libwpe_1.7.1.bb
new file mode 100644
index 0000000000..e25d9404a0
--- /dev/null
+++ b/meta/recipes-sato/webkit/libwpe_1.7.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "General-purpose library specifically developed for the WPE-flavored port of WebKit."
+HOMEPAGE = "https://github.com/WebPlatformForEmbedded/libwpe"
+BUGTRACKER = "https://github.com/WebPlatformForEmbedded/libwpe/issues"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=371a616eb4903c6cb79e9893a5f615cc"
+DEPENDS = "virtual/egl libxkbcommon"
+
+# Workaround build issue with RPi userland EGL libraries.
+CFLAGS_append_rpi = " ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '-D_GNU_SOURCE', d)}"
+
+inherit cmake features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "a784b7fa0c658b28071100f6f6749b0d85bbcddd82de028e07672ce13982d340"
diff --git a/meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch b/meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch
new file mode 100644
index 0000000000..268118b5ca
--- /dev/null
+++ b/meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch
@@ -0,0 +1,45 @@
+From 8ee7806ad2d5606967f7a1529a113fb9d1a386de Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 3 Feb 2020 17:06:27 -0800
+Subject: [PATCH] Enable THREADS_PREFER_PTHREAD_FLAG
+
+Fixes build failures on risv64
+
+Taken from https://trac.webkit.org/changeset/231843/webkit
+
+ Enable THREADS_PREFER_PTHREAD_FLAG. This uses -pthread instead of
+-lpthread, fixing the 64-bit RISC-V build of the GTK+ port due to
+missing atomic primitives.
+
+Upstream-Status: Submitted [https://trac.webkit.org/changeset/231843/webkit]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Source/cmake/OptionsGTK.cmake | 2 ++
+ Source/cmake/OptionsJSCOnly.cmake | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
+index d3beef19..6a92856f 100644
+--- a/Source/cmake/OptionsGTK.cmake
++++ b/Source/cmake/OptionsGTK.cmake
+@@ -17,6 +17,8 @@ set(WEBKITGTK_HEADER_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/webkitgtk-${WEBKIT
+ set(INTROSPECTION_INSTALL_GIRDIR "${CMAKE_INSTALL_FULL_DATADIR}/gir-1.0")
+ set(INTROSPECTION_INSTALL_TYPELIBDIR "${LIB_INSTALL_DIR}/girepository-1.0")
+
++set(THREADS_PREFER_PTHREAD_FLAG ON)
++
+ find_package(Cairo 1.14.0 REQUIRED)
+ find_package(Fontconfig 2.8.0 REQUIRED)
+ find_package(Freetype 2.4.2 REQUIRED)
+diff --git a/Source/cmake/OptionsJSCOnly.cmake b/Source/cmake/OptionsJSCOnly.cmake
+index b2e87418..326ade23 100644
+--- a/Source/cmake/OptionsJSCOnly.cmake
++++ b/Source/cmake/OptionsJSCOnly.cmake
+@@ -1,3 +1,4 @@
++set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
+
+ if (MSVC)
+--
+2.25.0
+
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-WebKitMacros-Append-to-I-and-not-to-isystem.patch b/meta/recipes-sato/webkit/webkitgtk/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch
deleted file mode 100644
index e71905d26a..0000000000
--- a/meta/recipes-sato/webkit/webkitgtk/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From d1634e56a2589ec62325011bf77d480a67123b52 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 17 Apr 2016 12:35:41 -0700
-Subject: [PATCH] WebKitMacros: Append to -I and not to -isystem
-
-gcc-6 has now introduced stdlib.h in libstdc++ for better
-compliance and its including the C library stdlib.h using
-include_next which is sensitive to order of system header
-include paths. Its infact better to not tinker with the
-system header include paths at all. Since adding /usr/include
-to -system is redundant and compiler knows about it moreover
-now with gcc6 it interferes with compiler's functioning
-and ends up with compile errors e.g.
-
-/usr/include/c++/6.0.0/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
----
- Source/JavaScriptCore/shell/CMakeLists.txt | 2 +-
- Source/WebCore/PlatformGTK.cmake | 6 +++---
- Source/WebKit/PlatformGTK.cmake | 2 +-
- Source/cmake/WebKitMacros.cmake | 2 +-
- Tools/MiniBrowser/gtk/CMakeLists.txt | 2 +-
- Tools/TestWebKitAPI/PlatformGTK.cmake | 2 +-
- 6 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/Source/JavaScriptCore/shell/CMakeLists.txt b/Source/JavaScriptCore/shell/CMakeLists.txt
-index 87153e35..cd0beed4 100644
---- a/Source/JavaScriptCore/shell/CMakeLists.txt
-+++ b/Source/JavaScriptCore/shell/CMakeLists.txt
-@@ -36,7 +36,7 @@ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
- WEBKIT_WRAP_SOURCELIST(${JSC_SOURCES})
- WEBKIT_WRAP_SOURCELIST(${TESTAPI_SOURCES})
- include_directories(./ ${JavaScriptCore_INCLUDE_DIRECTORIES} ${JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES})
--include_directories(SYSTEM ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
-+include_directories(${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
- add_executable(jsc ${JSC_SOURCES})
- target_link_libraries(jsc ${JSC_LIBRARIES})
-
-diff --git a/Source/WebCore/PlatformGTK.cmake b/Source/WebCore/PlatformGTK.cmake
-index e0dd9cd9..a2997f3e 100644
---- a/Source/WebCore/PlatformGTK.cmake
-+++ b/Source/WebCore/PlatformGTK.cmake
-@@ -164,7 +164,7 @@ if (ENABLE_PLUGIN_PROCESS_GTK2)
- target_include_directories(WebCorePlatformGTK2 PRIVATE
- ${WebCore_INCLUDE_DIRECTORIES}
- )
-- target_include_directories(WebCorePlatformGTK2 SYSTEM PRIVATE
-+ target_include_directories(WebCorePlatformGTK2 PRIVATE
- ${WebCore_SYSTEM_INCLUDE_DIRECTORIES}
- ${GTK2_INCLUDE_DIRS}
- ${GDK2_INCLUDE_DIRS}
-@@ -190,7 +190,7 @@ add_dependencies(WebCorePlatformGTK WebCore)
- target_include_directories(WebCorePlatformGTK PRIVATE
- ${WebCore_INCLUDE_DIRECTORIES}
- )
--target_include_directories(WebCorePlatformGTK SYSTEM PRIVATE
-+target_include_directories(WebCorePlatformGTK PRIVATE
- ${WebCore_SYSTEM_INCLUDE_DIRECTORIES}
- ${GTK_INCLUDE_DIRS}
- ${GDK_INCLUDE_DIRS}
-@@ -206,7 +206,7 @@ include_directories(
- "${WEBCORE_DIR}/bindings/gobject/"
- )
-
--include_directories(SYSTEM
-+include_directories(
- ${WebCore_SYSTEM_INCLUDE_DIRECTORIES}
- )
-
-diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake
-index 693bbdfe..20e3802f 100644
---- a/Source/WebKit/PlatformGTK.cmake
-+++ b/Source/WebKit/PlatformGTK.cmake
-@@ -664,7 +664,7 @@ if (ENABLE_PLUGIN_PROCESS_GTK2)
- target_include_directories(WebKitPluginProcess2 PRIVATE
- ${WebKitCommonIncludeDirectories}
- )
-- target_include_directories(WebKitPluginProcess2 SYSTEM PRIVATE
-+ target_include_directories(WebKitPluginProcess2 PRIVATE
- ${WebKitCommonSystemIncludeDirectories}
- ${GTK2_INCLUDE_DIRS}
- ${GDK2_INCLUDE_DIRS}
-diff --git a/Source/cmake/WebKitMacros.cmake b/Source/cmake/WebKitMacros.cmake
-index 6d58d57e..976e2362 100644
---- a/Source/cmake/WebKitMacros.cmake
-+++ b/Source/cmake/WebKitMacros.cmake
-@@ -152,7 +152,7 @@ macro(WEBKIT_FRAMEWORK _target)
- ${${_target}_SOURCES}
- )
- target_include_directories(${_target} PUBLIC "$<BUILD_INTERFACE:${${_target}_INCLUDE_DIRECTORIES}>")
-- target_include_directories(${_target} SYSTEM PRIVATE "$<BUILD_INTERFACE:${${_target}_SYSTEM_INCLUDE_DIRECTORIES}>")
-+ target_include_directories(${_target} PRIVATE "$<BUILD_INTERFACE:${${_target}_SYSTEM_INCLUDE_DIRECTORIES}>")
- target_include_directories(${_target} PRIVATE "$<BUILD_INTERFACE:${${_target}_PRIVATE_INCLUDE_DIRECTORIES}>")
- target_link_libraries(${_target} ${${_target}_LIBRARIES})
- set_target_properties(${_target} PROPERTIES COMPILE_DEFINITIONS "BUILDING_${_target}")
-diff --git a/Tools/MiniBrowser/gtk/CMakeLists.txt b/Tools/MiniBrowser/gtk/CMakeLists.txt
-index a0d32059..f259ade2 100644
---- a/Tools/MiniBrowser/gtk/CMakeLists.txt
-+++ b/Tools/MiniBrowser/gtk/CMakeLists.txt
-@@ -59,7 +59,7 @@ endif ()
- add_definitions(-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6)
-
- include_directories(${MiniBrowser_INCLUDE_DIRECTORIES})
--include_directories(SYSTEM ${MiniBrowser_SYSTEM_INCLUDE_DIRECTORIES})
-+include_directories(${MiniBrowser_SYSTEM_INCLUDE_DIRECTORIES})
- add_executable(MiniBrowser ${MiniBrowser_SOURCES})
- target_link_libraries(MiniBrowser ${MiniBrowser_LIBRARIES})
-
-diff --git a/Tools/TestWebKitAPI/PlatformGTK.cmake b/Tools/TestWebKitAPI/PlatformGTK.cmake
-index 8dd0e146..d037fc35 100644
---- a/Tools/TestWebKitAPI/PlatformGTK.cmake
-+++ b/Tools/TestWebKitAPI/PlatformGTK.cmake
-@@ -22,7 +22,7 @@ include_directories(
- ${WEBKIT_DIR}/UIProcess/API/gtk
- )
-
--include_directories(SYSTEM
-+include_directories(
- ${GDK3_INCLUDE_DIRS}
- ${GLIB_INCLUDE_DIRS}
- ${GSTREAMER_INCLUDE_DIRS}
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/0001-gstreamer-add-a-missing-format-string.patch b/meta/recipes-sato/webkit/webkitgtk/0001-gstreamer-add-a-missing-format-string.patch
deleted file mode 100644
index bd4ac1e353..0000000000
--- a/meta/recipes-sato/webkit/webkitgtk/0001-gstreamer-add-a-missing-format-string.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 2d9687840b97186b80053dd262209e39455ac876 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 8 May 2019 15:31:23 +0200
-Subject: [PATCH] gstreamer: add a missing format string
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- .../platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
-index e1e497ee..483fd65c 100644
---- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
-+++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
-@@ -738,7 +738,7 @@ static GstStateChangeReturn webKitWebSrcChangeState(GstElement* element, GstStat
- WebKitWebSrc* src = WEBKIT_WEB_SRC(element);
-
- #if GST_CHECK_VERSION(1, 14, 0)
-- GST_DEBUG_OBJECT(src, gst_state_change_get_name(transition));
-+ GST_DEBUG_OBJECT(src, "%s", gst_state_change_get_name(transition));
- #endif
- switch (transition) {
- case GST_STATE_CHANGE_READY_TO_NULL:
diff --git a/meta/recipes-sato/webkit/webkitgtk/detect-gstreamer-gl.patch b/meta/recipes-sato/webkit/webkitgtk/detect-gstreamer-gl.patch
deleted file mode 100644
index 57ae48c141..0000000000
--- a/meta/recipes-sato/webkit/webkitgtk/detect-gstreamer-gl.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From: Alberto Garcia <berto@igalia.com>
-Subject: Disable USE_GSTREAMER_GL is the package is not found
-Forwarded: no
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: webkitgtk/Source/cmake/GStreamerChecks.cmake
-===================================================================
---- webkitgtk.orig/Source/cmake/GStreamerChecks.cmake
-+++ webkitgtk/Source/cmake/GStreamerChecks.cmake
-@@ -43,7 +43,8 @@ if (ENABLE_VIDEO OR ENABLE_WEB_AUDIO)
- message(FATAL_ERROR "GStreamer 1.10 is needed for USE_GSTREAMER_GL.")
- else ()
- if (NOT PC_GSTREAMER_GL_FOUND)
-- message(FATAL_ERROR "GStreamerGL is needed for USE_GSTREAMER_GL.")
-+ set(USE_GSTREAMER_GL OFF)
-+ message(STATUS "GStreamerGL is needed for USE_GSTREAMER_GL.")
- endif ()
- endif ()
- endif ()
diff --git a/meta/recipes-sato/webkit/webkitgtk/narrowing.patch b/meta/recipes-sato/webkit/webkitgtk/narrowing.patch
deleted file mode 100644
index 598b6b5df5..0000000000
--- a/meta/recipes-sato/webkit/webkitgtk/narrowing.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fix build with clang on arm where char is unsigned
-
-Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=197087]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/Source/WebCore/contentextensions/DFACombiner.cpp
-+++ b/Source/WebCore/contentextensions/DFACombiner.cpp
-@@ -37,7 +37,7 @@ namespace WebCore {
- namespace ContentExtensions {
-
- class DFAMerger {
-- typedef MutableRangeList<char, uint64_t, 128> CombinedTransitionsMutableRangeList;
-+ typedef MutableRangeList<signed char, uint64_t, 128> CombinedTransitionsMutableRangeList;
-
- enum class WhichDFA {
- A,
---- a/Source/WebCore/contentextensions/NFAToDFA.cpp
-+++ b/Source/WebCore/contentextensions/NFAToDFA.cpp
-@@ -41,9 +41,9 @@ namespace WebCore {
-
- namespace ContentExtensions {
-
--typedef MutableRange<char, NFANodeIndexSet> NFANodeRange;
--typedef MutableRangeList<char, NFANodeIndexSet> NFANodeRangeList;
--typedef MutableRangeList<char, NFANodeIndexSet, 128> PreallocatedNFANodeRangeList;
-+typedef MutableRange<signed char, NFANodeIndexSet> NFANodeRange;
-+typedef MutableRangeList<signed char, NFANodeIndexSet> NFANodeRangeList;
-+typedef MutableRangeList<signed char, NFANodeIndexSet, 128> PreallocatedNFANodeRangeList;
- typedef Vector<uint32_t, 0, ContentExtensionsOverflowHandler> UniqueNodeList;
- typedef Vector<UniqueNodeList, 0, ContentExtensionsOverflowHandler> NFANodeClosures;
-
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.24.4.bb b/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb
index 8c695ce9e7..8ebb3709a8 100644
--- a/meta/recipes-sato/webkit/webkitgtk_2.24.4.bb
+++ b/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb
@@ -1,6 +1,6 @@
SUMMARY = "WebKit web rendering engine for the GTK+ platform"
-HOMEPAGE = "http://www.webkitgtk.org/"
-BUGTRACKER = "http://bugs.webkit.org/"
+HOMEPAGE = "https://www.webkitgtk.org/"
+BUGTRACKER = "https://bugs.webkit.org/"
LICENSE = "BSD & LGPLv2+"
LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
@@ -9,59 +9,62 @@ LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d842
file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
"
-SRC_URI = "http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
+SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \
file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \
file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \
file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \
- file://x32_support.patch \
+ file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \
file://cross-compile.patch \
- file://0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch \
file://0001-Fix-build-with-musl.patch \
- file://detect-gstreamer-gl.patch \
file://include_array.patch \
- file://narrowing.patch \
- file://0001-gstreamer-add-a-missing-format-string.patch \
+ file://0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch \
"
+SRC_URI[sha256sum] = "821952e8c9303ed752f1fb1d4283f612c25249d00d705d2b79c2db1bc49c9464"
-SRC_URI[md5sum] = "c214963d8c0e7d83460da04a0d8dda87"
-SRC_URI[sha256sum] = "8668b129c026624ec226a4cccf4995f9d26f3e88fc28ab75b0e965f3c32b7dd8"
+inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
-inherit cmake pkgconfig gobject-introspection perlnative distro_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.contains('DISTRO_FEATURES', 'x11', 'x11', 'wayland' ,d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'webgl opengl', '' ,d)} \
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', 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"
-PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11"
+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 libxcomposite libxdamage libxrender libxt"
PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
-PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant"
-PACKAGECONFIG[gtk2] = "-DENABLE_PLUGIN_PROCESS_GTK2=ON,-DENABLE_PLUGIN_PROCESS_GTK2=OFF,gtk+"
+PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2"
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"
+# webkitgtk is full of /usr/bin/env python, particular for generating docs
+do_configure[postfuncs] += "setup_python_link"
+setup_python_link() {
+ if [ ! -e ${STAGING_BINDIR_NATIVE}/python ]; then
+ ln -s `which python3` ${STAGING_BINDIR_NATIVE}/python
+ fi
+}
+
EXTRA_OECMAKE = " \
-DPORT=GTK \
-DCMAKE_BUILD_TYPE=Release \
@@ -69,6 +72,7 @@ EXTRA_OECMAKE = " \
${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \
-DENABLE_MINIBROWSER=ON \
-DPYTHON_EXECUTABLE=`which python3` \
+ -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
"
# Javascript JIT is not supported on ARC
@@ -87,7 +91,7 @@ EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF "
EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF "
EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF "
-EXTRA_OECMAKE_append_mipsarchn32 = " -DUSE_LD_GOLD=OFF "
+EXTRA_OECMAKE_append_mipsarch = " -DUSE_LD_GOLD=OFF "
EXTRA_OECMAKE_append_powerpc = " -DUSE_LD_GOLD=OFF "
# JIT not supported on MIPS either
@@ -102,8 +106,6 @@ EXTRA_OECMAKE_append_x86-x32 = " -DENABLE_JIT=OFF "
SECURITY_CFLAGS_remove_aarch64 = "-fpie"
SECURITY_CFLAGS_append_aarch64 = " -fPIE"
-LDFLAGS_append_toolchain-clang = " -rtlib=compiler-rt"
-
FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so"
RRECOMMENDS_${PN} += "ca-certificates shared-mime-info"
@@ -121,10 +123,10 @@ ARM_INSTRUCTION_SET_armv7a = "thumb"
ARM_INSTRUCTION_SET_armv7r = "thumb"
ARM_INSTRUCTION_SET_armv7ve = "thumb"
-# qemu: uncaught target signal 11 (Segmentation fault) - core dumped
-# Segmentation fault
-GI_DATA_ENABLED_armv7a = "False"
-GI_DATA_ENABLED_armv7ve = "False"
+# 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.7.1.bb b/meta/recipes-sato/webkit/wpebackend-fdo_1.7.1.bb
new file mode 100644
index 0000000000..519762d125
--- /dev/null
+++ b/meta/recipes-sato/webkit/wpebackend-fdo_1.7.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "WPE's backend based on a freedesktop.org stack."
+HOMEPAGE = "https://github.com/Igalia/WPEBackend-fdo"
+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 libepoxy"
+
+DEPENDS_append_class-target = " wayland-native"
+
+inherit meson features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
+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/aspell/aspell_0.60.7.bb b/meta/recipes-support/aspell/aspell_0.60.8.bb
index da99d12630..629987810a 100644
--- a/meta/recipes-support/aspell/aspell_0.60.7.bb
+++ b/meta/recipes-support/aspell/aspell_0.60.8.bb
@@ -4,11 +4,9 @@ SECTION = "console/utils"
LICENSE = "LGPLv2 | LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-PR = "r1"
-
SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz"
-SRC_URI[md5sum] = "8ef2252609c511cd2bb26f3a3932ef28"
-SRC_URI[sha256sum] = "5ca8fc8cb0370cc6c9eb5b64c6d1bc5d57b3750dbf17887726c3407d833b70e4"
+SRC_URI[md5sum] = "012fa9209203ae4e5a61c2a668fd10e3"
+SRC_URI[sha256sum] = "f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2"
PACKAGECONFIG ??= ""
PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses"
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 bcf1c9c77a..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 distro_features_check upstream-version-is-even
+inherit gnomebase upstream-version-is-even
PACKAGES =+ "${PN}-gnome ${PN}-gtk2"
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 11052a8ece..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,14 +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"
-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/acl/0001-test-patch-out-failing-bits.patch b/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch
new file mode 100644
index 0000000000..ba2ffee5d2
--- /dev/null
+++ b/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch
@@ -0,0 +1,63 @@
+From 9e08219e0e99ee2589cf35fa8d52cef3515accce Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 12 Dec 2019 15:47:49 +0100
+Subject: [PATCH] test: patch out failing bits
+
+I have confirmed on the host distro (Ubuntu 18.04) that they
+fail as well; upstream probably haven't noticed because the
+test is only executed under sudo.
+
+Upstream-Status: Inappropriate [disabling tests instead of fixing them properly]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ test/root/permissions.test | 13 -------------
+ 1 file changed, 13 deletions(-)
+
+diff --git a/test/root/permissions.test b/test/root/permissions.test
+index 8f8f825..21e8a95 100644
+--- a/test/root/permissions.test
++++ b/test/root/permissions.test
+@@ -50,10 +50,6 @@ User daemon is a member in the owning group, which has only read access.
+ Verify this.
+
+ $ su daemon
+- $ cat f
+- > root
+- > bin
+-
+ $ echo daemon >> f
+ >~ .*f: Permission denied$
+
+@@ -146,8 +142,6 @@ the owning group, he should still have no write access.
+ $ setfacl -x g:daemon f
+
+ $ su daemon
+- $ echo daemon4 >> f
+- >~ .*f: Permission denied$
+
+
+ Change the owning group. The other permissions should now grant user
+@@ -158,12 +152,6 @@ daemon write access.
+
+ $ su daemon
+ $ echo daemon5 >> f
+- $ cat f
+- > root
+- > bin
+- > daemon
+- > daemon2
+- > daemon5
+
+
+ Verify that permissions in separate matching ACL entries do not
+@@ -173,7 +161,6 @@ accumulate.
+ $ setfacl -m g:bin:r,g:daemon:w f
+
+ $ su daemon
+- $ : < f
+ $ : > f
+ $ : <> f
+ >~ .*f: Permission denied$
+--
+2.17.1
+
diff --git a/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch b/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch
new file mode 100644
index 0000000000..57ef0bb728
--- /dev/null
+++ b/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch
@@ -0,0 +1,24 @@
+From 39d332a8801de5d9ef09dacb3dba85c208b7b2ad Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 12 Dec 2019 13:45:52 +0100
+Subject: [PATCH] tests: do not hardcode the build path into a helper library
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ test/Makemodule.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/Makemodule.am b/test/Makemodule.am
+index 17d4927..015de7f 100644
+--- a/test/Makemodule.am
++++ b/test/Makemodule.am
+@@ -30,7 +30,7 @@ EXTRA_DIST += \
+ check_LTLIBRARIES = libtestlookup.la
+
+ libtestlookup_la_SOURCES = test/test_passwd.c test/test_group.c
+-libtestlookup_la_CFLAGS = -DBASEDIR=\"$(abs_srcdir)\"
++libtestlookup_la_CFLAGS = -DBASEDIR=\"/tmp/acl-ptest\"
+ libtestlookup_la_LDFLAGS = -rpath $(abs_builddir)
+
+ AM_TESTS_ENVIRONMENT = PATH="$(abs_top_builddir):$$PATH";
diff --git a/meta/recipes-support/attr/acl/Makefile-libacl-should-depend-on-include.patch b/meta/recipes-support/attr/acl/Makefile-libacl-should-depend-on-include.patch
deleted file mode 100644
index 4c7cba3b88..0000000000
--- a/meta/recipes-support/attr/acl/Makefile-libacl-should-depend-on-include.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From d82457ce5ca7455e336da5e244d95f90e52aaef8 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Tue, 18 Apr 2017 01:17:26 -0700
-Subject: [PATCH] Makefile: libacl should depend on include
-
-Fixed race issue:
- In file included from acl_copy_entry.c:22:0:
- libacl.h:19:21: fatal error: sys/acl.h: No such file or directory
- #include <sys/acl.h>
-
-[snip]
-
- compilation terminated.
- acl_get_file.c:27:24: fatal error: acl/libacl.h: No such file or directory
- #include <acl/libacl.h>
- ^
-
-The acl.h is in "include" directory, and include/Makefile creates
-symlink "sys" and "acl" poinst to current dirctory:
-$ ls include/ -l
-acl -> .
-sys -> .
-
-So if "libacl" target runs before "include", the error would happen
-since no "acl" or "sys" directory.
-
-Let libacl depend on include can fix the problem.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index dce32d3..8a79379 100644
---- a/Makefile
-+++ b/Makefile
-@@ -48,7 +48,7 @@ else
- endif
-
- # tool/lib dependencies
--libacl: libmisc
-+libacl: include libmisc
- getfacl setfacl chacl: libacl
-
- ifeq ($(HAVE_BUILDDEFS), yes)
---
-2.10.2
-
diff --git a/meta/recipes-support/attr/acl/acl-fix-the-order-of-expected-output-of-getfacl.patch b/meta/recipes-support/attr/acl/acl-fix-the-order-of-expected-output-of-getfacl.patch
deleted file mode 100644
index cf765fdbb8..0000000000
--- a/meta/recipes-support/attr/acl/acl-fix-the-order-of-expected-output-of-getfacl.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-acl: fix the order of expected output of getfacl
-
-The result of getfacl is sorted by user id.
-In Centos or RHEL, bin user id is 1 and daemon user id is 2.
-But in our image, bin user id is 2 and daemon user id is 1.
-The patch fixes this issue to make ptest pass.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
----
- test/misc.test | 38 +++++++++++++++++++-------------------
- 1 file changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/test/misc.test b/test/misc.test
-index 6e98053..53ae5b0 100644
---- a/test/misc.test
-+++ b/test/misc.test
-@@ -79,8 +79,8 @@ Multiple users
-
- $ getfacl --omit-header f
- > user::rw-
-- > user:bin:rw-
- > user:daemon:r--
-+ > user:bin:rw-
- > group::r--
- > mask::rw-
- > other::r--
-@@ -94,8 +94,8 @@ Multiple groups
-
- $ getfacl --omit-header f
- > user::rw-
-- > user:bin:rw-
- > user:daemon:r--
-+ > user:bin:rw-
- > group::r--
- > group:daemon:r--
- > group:users:rw-
-@@ -111,8 +111,8 @@ Remove one group
-
- $ getfacl --omit-header f
- > user::rw-
-- > user:bin:rw-
- > user:daemon:r--
-+ > user:bin:rw-
- > group::r--
- > group:daemon:r--
- > mask::rw-
-@@ -146,8 +146,8 @@ Default ACL
-
- $ getfacl --omit-header d
- > user::rwx
-- > user:bin:rwx
- > user:daemon:rw-
-+ > user:bin:rwx
- > group::r-x
- > mask::rwx
- > other::---
-@@ -236,16 +236,16 @@ Add some users and groups
-
- $ getfacl --omit-header d/d
- > user::rwx
-- > user:bin:rwx #effective:r-x
- > user:daemon:r-x
-+ > user:bin:rwx #effective:r-x
- > group::r-x
- > group:daemon:rwx #effective:r-x
- > group:users:r-x
- > mask::r-x
- > other::---
- > default:user::rwx
-- > default:user:bin:rwx #effective:r-x
- > default:user:daemon:r-x
-+ > default:user:bin:rwx #effective:r-x
- > default:group::r-x
- > default:mask::r-x
- > default:other::---
-@@ -262,16 +262,16 @@ Symlink in directory with default ACL?
-
- $ getfacl --omit-header d/l
- > user::rwx
-- > user:bin:rwx #effective:r-x
- > user:daemon:r-x
-+ > user:bin:rwx #effective:r-x
- > group::r-x
- > group:daemon:rwx #effective:r-x
- > group:users:r-x
- > mask::r-x
- > other::---
- > default:user::rwx
-- > default:user:bin:rwx #effective:r-x
- > default:user:daemon:r-x
-+ > default:user:bin:rwx #effective:r-x
- > default:group::r-x
- > default:mask::r-x
- > default:other::---
-@@ -287,16 +287,16 @@ Does mask manipulation work?
-
- $ getfacl --omit-header d/d
- > user::rwx
-- > user:bin:r-x
- > user:daemon:r-x
-+ > user:bin:r-x
- > group::r-x
- > group:daemon:r-x
- > group:users:r-x
- > mask::r-x
- > other::---
- > default:user::rwx
-- > default:user:bin:rwx #effective:r-x
- > default:user:daemon:r-x
-+ > default:user:bin:rwx #effective:r-x
- > default:group::r-x
- > default:mask::r-x
- > default:other::---
-@@ -308,16 +308,16 @@ Does mask manipulation work?
-
- $ getfacl --omit-header d/d
- > user::rwx
-- > user:bin:r-x
- > user:daemon:r-x
-+ > user:bin:r-x
- > group::r-x
- > group:daemon:r-x
- > group:users:r-x
- > mask::r-x
- > other::---
- > default:user::rwx
-- > default:user:bin:rwx
- > default:user:daemon:r-x
-+ > default:user:bin:rwx
- > default:group::r-x
- > default:mask::rwx
- > default:other::---
-@@ -333,8 +333,8 @@ Remove the default ACL
-
- $ getfacl --omit-header d
- > user::rwx
-- > user:bin:rwx
- > user:daemon:rw-
-+ > user:bin:rwx
- > group::r-x
- > mask::rwx
- > other::---
-@@ -373,14 +373,14 @@ Now, chmod should change the group_obj entry
-
- $ getfacl --omit-header d
- > user::rwx
-- > user:bin:r-x
- > user:daemon:rwx
-+ > user:bin:r-x
- > group::rwx
- > mask::rwx
- > other::r-x
- > default:user::rwx
-- > default:user:bin:r-x
- > default:user:daemon:rwx
-+ > default:user:bin:r-x
- > default:group::rwx
- > default:mask::rwx
- > default:other::r-x
-@@ -392,14 +392,14 @@ Now, chmod should change the group_obj entry
-
- $ getfacl --omit-header d
- > user::rwx
-- > user:bin:r-x
- > user:daemon:rwx #effective:r-x
-+ > user:bin:r-x
- > group::rwx #effective:r-x
- > mask::r-x
- > other::---
- > default:user::rwx
-- > default:user:bin:r-x
- > default:user:daemon:rwx
-+ > default:user:bin:r-x
- > default:group::rwx
- > default:mask::rwx
- > default:other::r-x
-@@ -411,14 +411,14 @@ Now, chmod should change the group_obj entry
-
- $ getfacl --omit-header d
- > user::rwx
-- > user:bin:r-x
- > user:daemon:rwx #effective:r-x
-+ > user:bin:r-x
- > group::rwx #effective:r-x
- > mask::r-x
- > other::---
- > default:user::rwx
-- > default:user:bin:r-x
- > default:user:daemon:rwx
-+ > default:user:bin:r-x
- > default:group::rwx
- > default:mask::rwx
- > default:other::r-x
---
-1.7.9.5
-
diff --git a/meta/recipes-support/attr/acl/configure.ac b/meta/recipes-support/attr/acl/configure.ac
deleted file mode 100644
index 7af2e8d886..0000000000
--- a/meta/recipes-support/attr/acl/configure.ac
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (C) 2009 Andreas Gruenbacher <agruen@suse.de>
-#
-# 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, see <http://www.gnu.org/licenses/>.
-#
-AC_INIT(include/acl.h)
-AC_CONFIG_AUX_DIR([.])
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_HEADER(include/config.h)
-AC_PREFIX_DEFAULT(/usr)
-
-AC_PROG_LIBTOOL
-
-AC_ARG_ENABLE(shared,
-[ --enable-shared=[yes/no] Enable use of shared libraries [default=yes]],,
- enable_shared=yes)
-AC_SUBST(enable_shared)
-
-AC_ARG_ENABLE(gettext,
-[ --enable-gettext=[yes/no] Enable alternate language support [default=yes]],,
- enable_gettext=yes)
-AC_SUBST(enable_gettext)
-
-AC_ARG_ENABLE(lib64,
-[ --enable-lib64=[yes/no] Enable lib64 support [default=no]],,
- enable_lib64=no)
-AC_SUBST(enable_lib64)
-
-AC_PACKAGE_GLOBALS(acl)
-AC_PACKAGE_UTILITIES(acl)
-AC_PACKAGE_NEED_ATTR_XATTR_H
-AC_PACKAGE_NEED_ATTR_ERROR_H
-AC_MULTILIB($enable_lib64)
-AC_PACKAGE_NEED_GETXATTR_LIBATTR
-AC_MANUAL_FORMAT
-
-AC_FUNC_GCC_VISIBILITY
-
-AC_OUTPUT(include/builddefs)
diff --git a/meta/recipes-support/attr/acl/run-ptest b/meta/recipes-support/attr/acl/run-ptest
index a56946d8e6..4312823365 100644
--- a/meta/recipes-support/attr/acl/run-ptest
+++ b/meta/recipes-support/attr/acl/run-ptest
@@ -4,61 +4,7 @@
#umask 077
-EXT3_IMAGE=ext3.img
-EXT3_MOUNT_POINT=/mnt/ext3
+mkdir -p /tmp/acl-ptest/test
+cp test/test.* /tmp/acl-ptest/test
-trap 'rm -f ${EXT3_IMAGE}' EXIT
-
-dd if=/dev/zero of=${EXT3_IMAGE} bs=1M count=1
-if [ "$?" -eq 0 ]; then
- echo "PASS: dump ext3.img"
-else
- echo "FAIL: dump ext3.img"
- exit 1
-fi
-
-mkfs.ext3 -F ${EXT3_IMAGE}
-if [ "$?" -eq 0 ]; then
- echo "PASS: mkfs.ext3 -F ext3.img"
-else
- echo "FAIL: mkfs.ext3 -F ext3.img"
- exit 1
-fi
-
-if [ -d $EXT3_MOUNT_POINT ]; then
- echo "mount point exist"
-else
- mkdir -p $EXT3_MOUNT_POINT
-fi
-
-
-mount -o loop,rw,acl ${EXT3_IMAGE} $EXT3_MOUNT_POINT
-if [ "$?" -eq 0 ]; then
- echo "PASS: mount ext3.img"
-else
- echo "FAIL: mount ext3.img"
- exit 1
-fi
-
-cp -rf ./test/ $EXT3_MOUNT_POINT
-
-cd $EXT3_MOUNT_POINT/test/
-
-if sed -e 's!^bin:x:2:$!bin:x:2:daemon!' < /etc/group > gtmp
-then if cp /etc/group group.orig;
- then cp gtmp /etc/group
- make -k tests root-tests | sed \
- -e 's|^\[.*\] \(.*\) -- ok$|PASS: \1|' \
- -e 's|^\[.*\] \(.*\) -- failed|FAIL: \1|'
- cp group.orig /etc/group
- else echo "FAIL: couldn't save original group file."
- exit 1
- fi
-else echo "FAIL: couldn't create modified group file."
- exit 1
-fi
-
-cd -
-umount $EXT3_MOUNT_POINT
-rm -rf $EXT3_MOUNT_POINT
-rm $EXT3_IMAGE
+make test-suite.log
diff --git a/meta/recipes-support/attr/acl/test-fix-directory-permissions.patch b/meta/recipes-support/attr/acl/test-fix-directory-permissions.patch
deleted file mode 100644
index e64990ad5b..0000000000
--- a/meta/recipes-support/attr/acl/test-fix-directory-permissions.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 311589fedf196168382d8f0db303ab328bcf9d83 Mon Sep 17 00:00:00 2001
-From: Peter Seebach <peter.seebach@windriver.com>
-Date: Wed, 11 May 2016 15:16:06 -0500
-Subject: [PATCH] acl.inc, run-ptest: improve ptest functionality on limited
-
-commit c45bae84817a70fef6c2b661a07a492a0d23ae85
-
- Fix permissions on temporary directory
-
- The temporary directory's permissions have to allow other users to
- view the directory. A default umask of 022 is common, but not mandatory,
- and secure systems may have more restrictive defaults.
-
- Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
-
-Upstream-Status: Backport [ http://git.savannah.gnu.org/cgit/acl.git/commit/?id=c6772a958800de064482634f77c20a0faafc5af6 ]
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- test/root/permissions.test | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/test/root/permissions.test b/test/root/permissions.test
-index 42615f5..098b52a 100644
---- a/test/root/permissions.test
-+++ b/test/root/permissions.test
-@@ -16,6 +16,7 @@ Cry immediately if we are not running as root.
- First, set up a temporary directory and create a regular file with
- defined permissions.
-
-+ $ umask 022
- $ mkdir d
- $ cd d
- $ umask 027
---
-2.8.1
-
diff --git a/meta/recipes-support/attr/acl/test-fix-insufficient-quoting-of.patch b/meta/recipes-support/attr/acl/test-fix-insufficient-quoting-of.patch
deleted file mode 100644
index f392465b58..0000000000
--- a/meta/recipes-support/attr/acl/test-fix-insufficient-quoting-of.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From e98ce8acf84d12ea67a3ac76bf63c6d87d9af86d Mon Sep 17 00:00:00 2001
-From: Kamil Dudka <kdudka@redhat.com>
-Date: Mon, 20 May 2013 16:38:06 +0200
-Subject: [PATCH] test: fix insufficient quoting of '\'
-
-This is a follow-up to 7f2c91b8369242a8dbc2b304a5b71b2a85f5b855, which
-caused sbits-restore.test to fail in the following way in case SELinux
-was disabled:
-
-*** sbits-restore.test ***
-[3] $ umask 022 -- ok
-[4] $ mkdir d -- ok
-[5] $ touch d/g -- ok
-[6] $ touch d/u -- ok
-[7] $ chmod u+s d/u -- ok
-[8] $ chmod g+s d/g -- ok
-[9] $ chmod +t d -- ok
-[10] $ getfacl -R d > d.acl -- ok
-[11] $ rm -R d -- ok
-[12] $ mkdir d -- ok
-[13] $ touch d/g -- ok
-[14] $ touch d/u -- ok
-[15] $ setfacl --restore d.acl -- ok
-[16] $ ls -dl d | awk '{print $1}' | sed 's/.$//g' -- failed
-drwxr-xr- != drwxr-xr-t
-[18] $ ls -dl d/u | awk '{print $1}' | sed 's/.$//g' -- failed
--rwSr--r- != -rwSr--r--
-[20] $ ls -dl d/g | awk '{print $1}' | sed 's/.$//g' -- failed
--rw-r-Sr- != -rw-r-Sr--
-[22] $ rm -Rf d -- ok
-17 commands (14 passed, 3 failed)
-
-Upstream-Status: Backport
-http://git.savannah.gnu.org/cgit/acl.git/commit/?id=e98ce8acf84d12ea67a3ac76bf63c6d87d9af86d
-
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
-Signed-off-by: He Zhe <zhe.he@windriver.com>
-
-Index: acl-2.2.52/test/cp.test
-===================================================================
---- acl-2.2.52.orig/test/cp.test
-+++ acl-2.2.52/test/cp.test
-@@ -9,7 +9,7 @@ The cp utility should only copy ACLs if
- > -rw-rw-r--+
-
- $ cp f g
-- $ ls -l g | awk -- '{ print $1 }' | sed 's/\.$//g'
-+ $ ls -l g | awk -- '{ print $1 }' | sed 's/\\.$//g'
- > -rw-r--r--
-
- $ rm g
-Index: acl-2.2.52/test/misc.test
-===================================================================
---- acl-2.2.52.orig/test/misc.test
-+++ acl-2.2.52/test/misc.test
-@@ -254,7 +254,7 @@ Add some users and groups
- Symlink in directory with default ACL?
-
- $ ln -s d d/l
-- $ ls -dl d/l | awk '{print $1}' | sed 's/\.$//g'
-+ $ ls -dl d/l | awk '{print $1}' | sed 's/\\.$//g'
- > lrwxrwxrwx
-
- $ ls -dl -L d/l | awk '{print $1}'
-@@ -343,7 +343,7 @@ Remove the default ACL
- Reset to base entries
-
- $ setfacl -b d
-- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
-+ $ ls -dl d | awk '{print $1}' | sed 's/\\.$//g'
- > drwxr-x---
-
- $ getfacl --omit-header d
-@@ -355,7 +355,7 @@ Reset to base entries
- Now, chmod should change the group_obj entry
-
- $ chmod 775 d
-- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
-+ $ ls -dl d | awk '{print $1}' | sed 's/\\.$//g'
- > drwxrwxr-x
-
- $ getfacl --omit-header d
-Index: acl-2.2.52/test/sbits-restore.test
-===================================================================
---- acl-2.2.52.orig/test/sbits-restore.test
-+++ acl-2.2.52/test/sbits-restore.test
-@@ -13,10 +13,10 @@ Ensure setting of SUID/SGID/sticky via -
- $ touch d/g
- $ touch d/u
- $ setfacl --restore d.acl
-- $ ls -dl d | awk '{print $1}' | sed 's/\.$//g'
-+ $ ls -dl d | awk '{print $1}' | sed 's/\\.$//g'
- > drwxr-xr-t
-- $ ls -dl d/u | awk '{print $1}' | sed 's/\.$//g'
-+ $ ls -dl d/u | awk '{print $1}' | sed 's/\\.$//g'
- > -rwSr--r--
-- $ ls -dl d/g | awk '{print $1}' | sed 's/\.$//g'
-+ $ ls -dl d/g | awk '{print $1}' | sed 's/\\.$//g'
- > -rw-r-Sr--
- $ rm -Rf d
diff --git a/meta/recipes-support/attr/acl/test-fixups-on-SELinux-machines-for-root-testcases.patch b/meta/recipes-support/attr/acl/test-fixups-on-SELinux-machines-for-root-testcases.patch
deleted file mode 100644
index 8cc11a63e1..0000000000
--- a/meta/recipes-support/attr/acl/test-fixups-on-SELinux-machines-for-root-testcases.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From d2f49ee6fe4850b8dda5b08676b36201d3c43710 Mon Sep 17 00:00:00 2001
-From: He Zhe <zhe.he@windriver.com>
-Date: Wed, 2 Mar 2016 15:46:57 +0800
-Subject: [PATCH] test: fixups on SELinux machines for root testcases
-
-ls adds a '.' at the end of the permission field list on SELinux
-machines, filter this out so root tests work on SELinux machines.
-
-Upstream-Status: Accepted
-http://git.savannah.gnu.org/cgit/acl.git/commit/?id=26a87d36f80d5e98bccb5878834d9e69dadfe3e9
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
----
- test/root/permissions.test | 8 ++++----
- test/root/restore.test | 2 +-
- test/root/setfacl.test | 2 +-
- 3 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/test/root/permissions.test b/test/root/permissions.test
-index 9b9e3de..665339a 100644
---- a/test/root/permissions.test
-+++ b/test/root/permissions.test
-@@ -19,7 +19,7 @@ defined permissions.
- $ cd d
- $ umask 027
- $ touch f
-- $ ls -l f | awk -- '{ print $1, $3, $4 }'
-+ $ ls -l f | awk -- '{ print $1, $3, $4 }' | sed 's/\\.//g'
- > -rw-r----- root root
-
-
-@@ -39,7 +39,7 @@ Now, change the ownership of the file to bin:bin and verify that this
- gives user bin write access.
-
- $ chown bin:bin f
-- $ ls -l f | awk -- '{ print $1, $3, $4 }'
-+ $ ls -l f | awk -- '{ print $1, $3, $4 }' | sed 's/\\.//g'
- > -rw-r----- bin bin
- $ su bin
- $ echo bin >> f
-@@ -256,12 +256,12 @@ directories if the file has an ACL and only CAP_FOWNER would grant them.
- $ mkdir -m 600 x
- $ chown daemon:daemon x
- $ echo j > x/j
-- $ ls -l x/j | awk -- '{ print $1, $3, $4 }'
-+ $ ls -l x/j | awk -- '{ print $1, $3, $4 }' | sed 's/\\.//g'
- > -rw-r----- root root
-
- $ setfacl -m u:daemon:r x
-
-- $ ls -l x/j | awk -- '{ print $1, $3, $4 }'
-+ $ ls -l x/j | awk -- '{ print $1, $3, $4 }' | sed 's/\\.//g'
- > -rw-r----- root root
- (With the bug this gives: `ls: x/j: Permission denied'.)
-
-diff --git a/test/root/restore.test b/test/root/restore.test
-index 63a9d01..c85097c 100644
---- a/test/root/restore.test
-+++ b/test/root/restore.test
-@@ -21,7 +21,7 @@ Cry immediately if we are not running as root.
- $ chown bin passwd
- $ chmod u+s passwd
- $ setfacl --restore passwd.acl
-- $ ls -dl passwd | awk '{print $1 " " $3 " " $4}'
-+ $ ls -dl passwd | awk '{print $1 " " $3 " " $4}' | sed 's/\\.//g'
- > -rwsr-xr-x root root
-
- $ rm passwd passwd.acl
-diff --git a/test/root/setfacl.test b/test/root/setfacl.test
-index a46a9f4..7efbad7 100644
---- a/test/root/setfacl.test
-+++ b/test/root/setfacl.test
-@@ -12,7 +12,7 @@ Cry immediately if we are not running as root.
- $ sg bin
- $ umask 027
- $ touch g
-- $ ls -dl g | awk '{print $1}'
-+ $ ls -dl g | awk '{print $1}' | sed 's/\\.//g'
- > -rw-r-----
-
- $ setfacl -m m:- g
---
-1.9.1
-
diff --git a/meta/recipes-support/attr/acl_2.2.52.bb b/meta/recipes-support/attr/acl_2.2.52.bb
deleted file mode 100644
index 6bc77d868d..0000000000
--- a/meta/recipes-support/attr/acl_2.2.52.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Utilities for managing POSIX Access Control Lists"
-HOMEPAGE = "http://savannah.nongnu.org/projects/acl/"
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1+ & GPLv2+"
-LICENSE_${PN} = "GPLv2+"
-LICENSE_lib${BPN} = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=c781d70ed2b4d48995b790403217a249 \
- file://doc/COPYING.LGPL;md5=9e9a206917f8af112da634ce3ab41764"
-
-DEPENDS = "attr"
-
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/acl/${BP}.src.tar.gz \
- file://configure.ac;subdir=${BP} \
- file://run-ptest \
- file://acl-fix-the-order-of-expected-output-of-getfacl.patch \
- file://test-fix-insufficient-quoting-of.patch \
- file://test-fixups-on-SELinux-machines-for-root-testcases.patch \
- file://test-fix-directory-permissions.patch \
- file://Makefile-libacl-should-depend-on-include.patch \
-"
-
-SRC_URI[md5sum] = "a61415312426e9c2212bd7dc7929abda"
-SRC_URI[sha256sum] = "179074bb0580c06c4b4137be4c5a92a701583277967acdb5546043c7874e0d23"
-
-require ea-acl.inc
-
-# avoid RPATH hardcode to staging dir
-do_configure_append() {
- sed -i ${S}/config.status -e s,^\\\(hardcode_into_libs=\\\).*$,\\1\'no\',
- ${S}/config.status
-}
-
-# libdir should point to .la
-do_install_append() {
- sed -i ${D}${libdir}/libacl.la -e \
- s,^libdir=\'${base_libdir}\'$,libdir=\'${libdir}\',
-}
-
-inherit ptest
-
-PTEST_BUILD_HOST_FILES = "builddefs"
-PTEST_BUILD_HOST_PATTERN = "^RPM"
-do_install_ptest() {
- tar -c --exclude=nfs test/ | ( cd ${D}${PTEST_PATH} && tar -xf - )
- install -d ${D}${PTEST_PATH}/include
- install -m 644 ${S}/include/builddefs ${S}/include/buildmacros ${S}/include/buildrules ${D}${PTEST_PATH}/include/
-}
-
-RDEPENDS_${PN}-ptest = "acl bash coreutils perl perl-module-filehandle perl-module-getopt-std perl-module-posix shadow"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/acl_2.2.53.bb b/meta/recipes-support/attr/acl_2.2.53.bb
new file mode 100644
index 0000000000..5bb50f77f7
--- /dev/null
+++ b/meta/recipes-support/attr/acl_2.2.53.bb
@@ -0,0 +1,74 @@
+SUMMARY = "Utilities for managing POSIX Access Control Lists"
+HOMEPAGE = "http://savannah.nongnu.org/projects/acl/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1+ & GPLv2+"
+LICENSE_${PN} = "GPLv2+"
+LICENSE_lib${BPN} = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=c781d70ed2b4d48995b790403217a249 \
+ file://doc/COPYING.LGPL;md5=9e9a206917f8af112da634ce3ab41764"
+
+DEPENDS = "attr"
+
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/acl/${BP}.tar.gz \
+ file://run-ptest \
+ file://0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch \
+ file://0001-test-patch-out-failing-bits.patch \
+ "
+
+SRC_URI[md5sum] = "007aabf1dbb550bcddde52a244cd1070"
+SRC_URI[sha256sum] = "06be9865c6f418d851ff4494e12406568353b891ffe1f596b34693c387af26c7"
+
+inherit autotools gettext ptest
+
+PACKAGES =+ "lib${BPN}"
+
+FILES_lib${BPN} = "${libdir}/lib*${SOLIBS}"
+
+PTEST_BUILD_HOST_FILES = "builddefs"
+PTEST_BUILD_HOST_PATTERN = "^RPM"
+
+do_compile_ptest() {
+ oe_runmake libtestlookup.la
+}
+
+do_install_ptest() {
+ cp -rf ${S}/test/ ${D}${PTEST_PATH}
+ cp -rf ${S}/build-aux/ ${D}${PTEST_PATH}
+ mkdir -p ${D}${PTEST_PATH}/.libs
+ cp -rf ${B}/.libs/libtestlookup* ${D}${PTEST_PATH}/.libs
+ cp ${B}/Makefile ${D}${PTEST_PATH}
+
+ sed -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:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
+ -i ${D}${PTEST_PATH}/Makefile
+
+ sed -i "s|^srcdir =.*|srcdir = \.|g" ${D}${PTEST_PATH}/Makefile
+ sed -i "s|^abs_srcdir =.*|abs_srcdir = \.|g" ${D}${PTEST_PATH}/Makefile
+ sed -i "s|^abs_top_srcdir =.*|abs_top_srcdir = \.\.|g" ${D}${PTEST_PATH}/Makefile
+ sed -i "s|^Makefile:.*|Makefile:|g" ${D}${PTEST_PATH}/Makefile
+
+ rm ${D}${PTEST_PATH}/.libs/libtestlookup.lai
+}
+
+RDEPENDS_${PN}-ptest = "acl \
+ bash \
+ coreutils \
+ perl \
+ perl-module-filehandle \
+ perl-module-getopt-std \
+ perl-module-posix \
+ shadow \
+ make \
+ gawk \
+ e2fsprogs-mke2fs \
+ perl-module-cwd \
+ perl-module-file-basename \
+ perl-module-file-path \
+ perl-module-file-spec \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/attr.inc b/meta/recipes-support/attr/attr.inc
index 3503d66b9e..0c3330a686 100644
--- a/meta/recipes-support/attr/attr.inc
+++ b/meta/recipes-support/attr/attr.inc
@@ -8,22 +8,19 @@ LICENSE = "LGPLv2.1+ & GPLv2+"
LICENSE_${PN} = "GPLv2+"
LICENSE_lib${BPN} = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=2d0aa14b3fce4694e4f615e30186335f \
- file://attr/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \
+ file://doc/COPYING.LGPL;md5=b8d31f339300bc239d73461d68e77b9c \
+ file://tools/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \
file://libattr/libattr.c;endline=17;md5=7970f77049f8fa1199fff62a7ab724fb"
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/attr/${BP}.src.tar.gz \
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/attr/${BP}.tar.gz \
file://run-ptest \
"
-require ea-acl.inc
+inherit ptest update-alternatives autotools gettext
-# libdir should point to .la
-do_install_append() {
- sed -i ${D}${libdir}/libattr.la -e \
- s,^libdir=\'${base_libdir}\'$,libdir=\'${libdir}\',
-}
+PACKAGES =+ "lib${BPN}"
-inherit ptest update-alternatives
+FILES_lib${BPN} = "${libdir}/lib*${SOLIBS}"
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN} = "setfattr"
@@ -33,14 +30,34 @@ PTEST_BUILD_HOST_FILES = "builddefs"
PTEST_BUILD_HOST_PATTERN = "^RPM"
do_install_ptest() {
- tar -c --exclude=ext test/ | ( cd ${D}${PTEST_PATH} && tar -xf - )
- mkdir ${D}${PTEST_PATH}/include
- for i in builddefs buildmacros buildrules; \
- do cp ${S}/include/$i ${D}${PTEST_PATH}/include/; \
- done
- sed -e 's|; @echo|; echo|' -i ${D}${PTEST_PATH}/test/Makefile
+ cp ${B}/Makefile ${D}${PTEST_PATH}
+ sed -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:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
+ -i ${D}${PTEST_PATH}/Makefile
+
+ sed -i "s|^srcdir =.*|srcdir = \.|g" ${D}${PTEST_PATH}/Makefile
+ sed -i "s|^abs_srcdir =.*|abs_srcdir = \.|g" ${D}${PTEST_PATH}/Makefile
+ sed -i "s|^abs_top_srcdir =.*|abs_top_srcdir = \.\.|g" ${D}${PTEST_PATH}/Makefile
+ sed -i "s|^Makefile:.*|Makefile:|g" ${D}${PTEST_PATH}/Makefile
+ cp -rf ${S}/build-aux/ ${D}${PTEST_PATH}
+ cp -rf ${S}/test/ ${D}${PTEST_PATH}
}
-RDEPENDS_${PN}-ptest = "attr coreutils perl-module-filehandle perl-module-getopt-std perl-module-posix make perl"
+RDEPENDS_${PN}-ptest = "attr \
+ coreutils \
+ perl-module-filehandle \
+ perl-module-getopt-std \
+ perl-module-posix \
+ make \
+ perl \
+ gawk \
+ perl-module-cwd \
+ perl-module-file-basename \
+ perl-module-file-path \
+ perl-module-file-spec \
+ "
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/attr/0001-Use-stdint-types-consistently.patch b/meta/recipes-support/attr/attr/0001-Use-stdint-types-consistently.patch
deleted file mode 100644
index dcd6507bcc..0000000000
--- a/meta/recipes-support/attr/attr/0001-Use-stdint-types-consistently.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 37a27b6fd09ecb37097b85e5db74e4f77b80fe0a Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Tue, 12 Jan 2016 22:20:33 +0100
-Subject: [PATCH] Use stdint types consistently
-
----
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
- include/attributes.h | 6 ++++--
- man/man3/attr_list.3 | 8 ++++----
- 2 files changed, 8 insertions(+), 6 deletions(-)
-
-Index: attr-2.4.47/include/attributes.h
-===================================================================
---- attr-2.4.47.orig/include/attributes.h
-+++ attr-2.4.47/include/attributes.h
-@@ -22,6 +22,7 @@
- extern "C" {
- #endif
-
-+#include <stdint.h>
- /*
- * An almost-IRIX-compatible extended attributes API
- * (the IRIX attribute "list" operation is missing, added ATTR_SECURE).
-@@ -69,7 +70,7 @@ typedef struct attrlist {
- * al_offset[i] entry points to.
- */
- typedef struct attrlist_ent { /* data from attr_list() */
-- u_int32_t a_valuelen; /* number bytes in value of attr */
-+ uint32_t a_valuelen; /* number bytes in value of attr */
- char a_name[1]; /* attr name (NULL terminated) */
- } attrlist_ent_t;
-
-@@ -90,7 +91,7 @@ typedef struct attrlist_ent { /* data fr
- * operation on a cursor is to bzero() it.
- */
- typedef struct attrlist_cursor {
-- u_int32_t opaque[4]; /* an opaque cookie */
-+ uint32_t opaque[4]; /* an opaque cookie */
- } attrlist_cursor_t;
-
- /*
-Index: attr-2.4.47/man/man3/attr_list.3
-===================================================================
---- attr-2.4.47.orig/man/man3/attr_list.3
-+++ attr-2.4.47/man/man3/attr_list.3
-@@ -72,9 +72,9 @@ The contents of an \f4attrlist_t\fP stru
- .nf
- .ft 4
- .ta 9n 22n
--__int32_t al_count; /\(** number of entries in attrlist \(**/
--__int32_t al_more; /\(** T/F: more attrs (do syscall again) \(**/
--__int32_t al_offset[1]; /\(** byte offsets of attrs [var-sized] \(**/
-+int32_t al_count; /\(** number of entries in attrlist \(**/
-+int32_t al_more; /\(** T/F: more attrs (do syscall again) \(**/
-+int32_t al_offset[1]; /\(** byte offsets of attrs [var-sized] \(**/
- .ft 1
- .fi
- .RE
-@@ -113,7 +113,7 @@ include the following members:
- .nf
- .ft 4
- .ta 9n 22n
--u_int32_t a_valuelen; /\(** number bytes in value of attr \(**/
-+uint32_t a_valuelen; /\(** number bytes in value of attr \(**/
- char a_name[]; /\(** attr name (NULL terminated) \(**/
- .ft 1
- .fi
diff --git a/meta/recipes-support/attr/attr/attr-Missing-configure.ac.patch b/meta/recipes-support/attr/attr/attr-Missing-configure.ac.patch
deleted file mode 100644
index 20fcc3cee7..0000000000
--- a/meta/recipes-support/attr/attr/attr-Missing-configure.ac.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Subject: [PATCH] attr: Missing configure.ac
-
-Upstream-Status: Backport [Upstream released tarball missing this file]
-Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
----
- configure.ac | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 48 insertions(+)
- create mode 100644 configure.ac
-
-diff --git a/configure.ac b/configure.ac
-new file mode 100644
-index 0000000..b966d0e
---- /dev/null
-+++ b/configure.ac
-@@ -0,0 +1,48 @@
-+# Copyright (C) 2009 Andreas Gruenbacher <agruen@suse.de>
-+#
-+# 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, see <http://www.gnu.org/licenses/>.
-+#
-+AC_INIT(include/attributes.h)
-+AC_CONFIG_AUX_DIR([.])
-+AC_CONFIG_MACRO_DIR([m4])
-+AC_CONFIG_HEADER(include/config.h)
-+AC_PREFIX_DEFAULT(/usr)
-+
-+AC_PROG_LIBTOOL
-+
-+AC_ARG_ENABLE(shared,
-+[ --enable-shared=[yes/no] Enable use of shared libraries [default=yes]],,
-+ enable_shared=yes)
-+AC_SUBST(enable_shared)
-+
-+AC_ARG_ENABLE(gettext,
-+[ --enable-gettext=[yes/no] Enable alternate language support [default=yes]],,
-+ enable_gettext=yes)
-+AC_SUBST(enable_gettext)
-+
-+AC_ARG_ENABLE(lib64,
-+[ --enable-lib64=[yes/no] Enable lib64 support [default=no]],,
-+ enable_lib64=no)
-+AC_SUBST(enable_lib64)
-+
-+AC_PACKAGE_GLOBALS(attr)
-+AC_PACKAGE_UTILITIES(attr)
-+AC_MANUAL_FORMAT
-+AC_MULTILIB($enable_lib64)
-+
-+AC_C_CONST
-+AC_TYPE_MODE_T
-+AC_FUNC_ALLOCA
-+
-+AC_OUTPUT(include/builddefs)
diff --git a/meta/recipes-support/attr/attr/dont-use-decl-macros.patch b/meta/recipes-support/attr/attr/dont-use-decl-macros.patch
deleted file mode 100644
index 9d4b8929e8..0000000000
--- a/meta/recipes-support/attr/attr/dont-use-decl-macros.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Use extern "C" instead of __BEGIN_DECL/__END_DECL macros
-these macros are defined in sys/cdefs.h for glibc and this header is not available on all libc
-
-anyway they defined like below
-
-#ifdef __cplusplus
-# define __BEGIN_DECLS extern "C" {
-# define __END_DECLS }
-#else
-# define __BEGIN_DECLS /* empty */
-# define __END_DECLS /* empty */
-#endif
-
-__THROW macro is also not available on musl, defined thusly
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: attr-2.4.47/include/xattr.h
-===================================================================
---- attr-2.4.47.orig/include/xattr.h 2014-04-02 00:01:30.252091280 -0700
-+++ attr-2.4.47/include/xattr.h 2014-04-02 00:12:57.985428099 -0700
-@@ -30,8 +30,20 @@
- #define XATTR_CREATE 0x1 /* set value, fail if attr already exists */
- #define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */
-
--
--__BEGIN_DECLS
-+#ifndef __THROW
-+# ifndef __GNUC_PREREQ
-+# define __GNUC_PREREQ(maj, min) (0)
-+# endif
-+# if defined __cplusplus && __GNUC_PREREQ (2,8)
-+# define __THROW throw ()
-+# else
-+# define __THROW
-+# endif
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- extern int setxattr (const char *__path, const char *__name,
- const void *__value, size_t __size, int __flags) __THROW;
-@@ -58,6 +70,8 @@
- extern int lremovexattr (const char *__path, const char *__name) __THROW;
- extern int fremovexattr (int __filedes, const char *__name) __THROW;
-
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-
- #endif /* __XATTR_H__ */
diff --git a/meta/recipes-support/attr/attr/run-ptest b/meta/recipes-support/attr/attr/run-ptest
new file mode 100644
index 0000000000..f64244f239
--- /dev/null
+++ b/meta/recipes-support/attr/attr/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+make test-suite.log
diff --git a/meta/recipes-support/attr/attr_2.4.47.bb b/meta/recipes-support/attr/attr_2.4.47.bb
deleted file mode 100644
index fc88bef830..0000000000
--- a/meta/recipes-support/attr/attr_2.4.47.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require attr.inc
-
-# configure.ac was missing from the release tarball. This should be fixed in
-# future releases of attr, remove this when updating the recipe.
-SRC_URI += "file://attr-Missing-configure.ac.patch \
- file://dont-use-decl-macros.patch \
- file://Remove-the-section-2-man-pages.patch \
- file://Remove-the-attr.5-man-page-moved-to-man-pages.patch \
- file://0001-Use-stdint-types-consistently.patch \
- "
-
-SRC_URI[md5sum] = "84f58dec00b60f2dc8fd1c9709291cc7"
-SRC_URI[sha256sum] = "25772f653ac5b2e3ceeb89df50e4688891e21f723c460636548971652af0a859"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/attr_2.4.48.bb b/meta/recipes-support/attr/attr_2.4.48.bb
new file mode 100644
index 0000000000..530d4e4883
--- /dev/null
+++ b/meta/recipes-support/attr/attr_2.4.48.bb
@@ -0,0 +1,6 @@
+require attr.inc
+
+SRC_URI[md5sum] = "bc1e5cb5c96d99b24886f1f527d3bb3d"
+SRC_URI[sha256sum] = "5ead72b358ec709ed00bbf7a9eaef1654baad937c001c044fe8b74c57f5324e7"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/ea-acl.inc b/meta/recipes-support/attr/ea-acl.inc
deleted file mode 100644
index 9336ffc938..0000000000
--- a/meta/recipes-support/attr/ea-acl.inc
+++ /dev/null
@@ -1,52 +0,0 @@
-# this build system is mostly shared by attr and acl
-
-SRC_URI += "file://relative-libdir.patch;striplevel=0 \
- "
-# This patch should be applied after '(attr\|acl)-Missing-configure.ac.patch'
-SRC_URI_append = " file://0001-Added-configure-option-to-enable-disable-static-libr.patch"
-
-inherit autotools-brokensep gettext
-
-# When upstream is using automake properly, this can be removed
-CLEANBROKEN = "1"
-
-# the package comes with a custom config.h.in, it cannot be
-# overwritten by autoheader
-EXTRA_AUTORECONF += "--exclude=autoheader"
-EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root"
-EXTRA_OECONF_append_class-native = " --enable-gettext=no"
-EXTRA_OECONF_append_class-target = "${@['', ' --disable-gettext '][(d.getVar('USE_NLS') == 'no')]}"
-
-EXTRA_OEMAKE = "PKG_LIB_DIR=${base_libdir} PKG_DEVLIB_DIR=${libdir}"
-
-do_install () {
- oe_runmake install install-lib install-dev DIST_ROOT="${D}" ZIP="gzip -n"
-}
-
-do_install_append_class-native () {
- if test "${libdir}" = "${base_libdir}" ; then
- return
- fi
- librelpath=${@os.path.relpath(d.getVar('libdir'), d.getVar('base_libdir'))}
- baselibrelpath=${@os.path.relpath(d.getVar('base_libdir'), d.getVar('libdir'))}
-
- # Remove bad symlinks & create the correct symlinks
- if test -L ${D}${libdir}/lib${BPN}.so ; then
- rm -rf ${D}${libdir}/lib${BPN}.so
- ln -sf $baselibrelpath/lib${BPN}.so ${D}${libdir}/lib${BPN}.so
- fi
- if test -L ${D}${base_libdir}/lib${BPN}.a ; then
- rm -rf ${D}${base_libdir}/lib${BPN}.a
- ln -sf $librelpath/lib${BPN}.a ${D}${base_libdir}/lib${BPN}.a
- fi
- if test -L ${D}${base_libdir}/lib${BPN}.la ; then
- rm -rf ${D}${base_libdir}/lib${BPN}.la
- ln -sf $librelpath/lib${BPN}.la ${D}${base_libdir}/lib${BPN}.la
- fi
-}
-
-PACKAGES =+ "lib${BPN}"
-
-FILES_lib${BPN} = "${base_libdir}/lib*${SOLIBS}"
-
-BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/attr/files/0001-Added-configure-option-to-enable-disable-static-libr.patch b/meta/recipes-support/attr/files/0001-Added-configure-option-to-enable-disable-static-libr.patch
deleted file mode 100644
index 1c1159f2c9..0000000000
--- a/meta/recipes-support/attr/files/0001-Added-configure-option-to-enable-disable-static-libr.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 01256c61ba126449c46dd4ab5d5e145488b981fa Mon Sep 17 00:00:00 2001
-From: Amarnath Valluri <amarnath.valluri@intel.com>
-Date: Mon, 23 Jan 2017 13:25:13 +0200
-Subject: [PATCH] Added configure option to enable/disable static library
-
-Create static library archive only in case of --enable-static.
-
-Upstream-Status: Pending
-
-Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
----
- configure.ac | 6 ++++++
- include/builddefs.in | 1 +
- include/buildmacros | 3 +++
- 3 files changed, 10 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index b966d0e..e48268b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -26,6 +26,12 @@ AC_ARG_ENABLE(shared,
- enable_shared=yes)
- AC_SUBST(enable_shared)
-
-+AC_ARG_ENABLE(static,
-+[ --enable-static=[yes/no] Enable use of static libraries [default=yes]],,
-+ enable_static=yes)
-+AC_SUBST(enable_static)
-+
-+
- AC_ARG_ENABLE(gettext,
- [ --enable-gettext=[yes/no] Enable alternate language support [default=yes]],,
- enable_gettext=yes)
-diff --git a/include/builddefs.in b/include/builddefs.in
-index d9931db..3b3dbd2 100644
---- a/include/builddefs.in
-+++ b/include/builddefs.in
-@@ -71,6 +71,7 @@ RPMBUILD = @rpmbuild@
- RPM_VERSION = @rpm_version@
-
- ENABLE_SHARED = @enable_shared@
-+ENABLE_STATIC = @enable_static@
- ENABLE_GETTEXT = @enable_gettext@
-
- HAVE_ZIPPED_MANPAGES = @have_zipped_manpages@
-diff --git a/include/buildmacros b/include/buildmacros
-index 39fa7e2..b0f25c5 100644
---- a/include/buildmacros
-+++ b/include/buildmacros
-@@ -80,6 +80,7 @@ endif
- # /usr/lib.
- ifeq ($(ENABLE_SHARED),yes)
- INSTALL_LTLIB_DEV = \
-+ set -x; \
- cd $(TOPDIR)/$(LIBNAME)/.libs; \
- ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR); \
- ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_DEVLIB_DIR); \
-@@ -88,7 +89,9 @@ INSTALL_LTLIB_DEV = \
- ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \
- if test "x$(PKG_DEVLIB_DIR)" != "x$(PKG_LIB_DIR)" ; then \
- rel_lib_prefix=$$(echo $(PKG_LIB_DIR) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
-+ if test "$(ENABLE_STATIC)" = "yes" ; then \
- ../$(INSTALL) -S $$rel_lib_prefix$(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \
-+ fi ;\
- ../$(INSTALL) -S $$rel_lib_prefix$(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \
- rel_devlib_prefix=$$(echo $(PKG_DEVLIB_DIR) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
- ../$(INSTALL) -S $$rel_devlib_prefix$(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_DEVLIB_DIR)/$(LIBNAME).so; \
---
-2.7.4
-
diff --git a/meta/recipes-support/attr/files/Remove-the-attr.5-man-page-moved-to-man-pages.patch b/meta/recipes-support/attr/files/Remove-the-attr.5-man-page-moved-to-man-pages.patch
deleted file mode 100644
index d5ab83d7c6..0000000000
--- a/meta/recipes-support/attr/files/Remove-the-attr.5-man-page-moved-to-man-pages.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-From 6047c8522b91235ad1e835f44f5e36472d9d49b2 Mon Sep 17 00:00:00 2001
-From: Andreas Gruenbacher <andreas.gruenbacher@gmail.com>
-Date: Wed, 22 Apr 2015 11:46:59 +0200
-Subject: [PATCH 2/2] Remove the attr.5 man page (moved to man-pages)
-
-Commit dce9b4448c7f2b22bd206cd068fb05cb2f3255b9 from
-https://git.savannah.nongnu.org/git/attr.git
-
-The attr.5 page is part of the extended attribute system call documentation,
-which has been moved into the man-pages package. Move the attr.5 page there
-as well.
-
-Upstream-Status: Backport
-
-[MA: updated to apply directly to v2.4.47]
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- man/Makefile | 2 +-
- man/man5/Makefile | 35 -------------
- man/man5/attr.5 | 153 ------------------------------------------------------
- 3 files changed, 1 insertion(+), 189 deletions(-)
- delete mode 100644 man/man5/Makefile
- delete mode 100644 man/man5/attr.5
-
-diff --git a/man/Makefile b/man/Makefile
-index 755daed..9301f09 100644
---- a/man/Makefile
-+++ b/man/Makefile
-@@ -19,7 +19,7 @@
- TOPDIR = ..
- include $(TOPDIR)/include/builddefs
-
--SUBDIRS = man1 man3 man5
-+SUBDIRS = man1 man3
-
- default : $(SUBDIRS)
-
-diff --git a/man/man5/Makefile b/man/man5/Makefile
-deleted file mode 100644
-index 6b70d3d..0000000
---- a/man/man5/Makefile
-+++ /dev/null
-@@ -1,35 +0,0 @@
--#
--# Copyright (c) 2000, 2002 Silicon Graphics, Inc. All Rights Reserved.
--# Copyright (C) 2009 Andreas Gruenbacher <agruen@suse.de>
--#
--# 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, see <http://www.gnu.org/licenses/>.
--#
--
--TOPDIR = ../..
--include $(TOPDIR)/include/builddefs
--
--MAN_SECTION = 5
--
--MAN_PAGES = $(shell echo *.$(MAN_SECTION))
--MAN_DEST = $(PKG_MAN_DIR)/man$(MAN_SECTION)
--LSRCFILES = $(MAN_PAGES)
--
--default : $(MAN_PAGES)
--
--include $(BUILDRULES)
--
--install : default
-- $(INSTALL) -m 755 -d $(MAN_DEST)
-- $(INSTALL_MAN)
--install-dev install-lib:
-diff --git a/man/man5/attr.5 b/man/man5/attr.5
-deleted file mode 100644
-index a02757d..0000000
---- a/man/man5/attr.5
-+++ /dev/null
-@@ -1,153 +0,0 @@
--.\" Extended attributes manual page
--.\"
--.\" Copyright (C) 2000, 2002, 2007 Andreas Gruenbacher <agruen@suse.de>
--.\" Copyright (C) 2001, 2002, 2004, 2007 Silicon Graphics, Inc.
--.\" All rights reserved.
--.\"
--.\" This is free documentation; 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.
--.\"
--.\" The GNU General Public License's references to "object code"
--.\" and "executables" are to be interpreted as the output of any
--.\" document formatting or typesetting system, including
--.\" intermediate and printed output.
--.\"
--.\" This manual 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 manual. If not, see
--.\" <http://www.gnu.org/licenses/>.
--.\"
--.TH ATTR 5
--.SH NAME
--attr - Extended attributes
--.SH DESCRIPTION
--Extended attributes are name:value pairs associated permanently with
--files and directories, similar to the environment strings associated
--with a process.
--An attribute may be defined or undefined.
--If it is defined, its value may be empty or non-empty.
--.PP
--Extended attributes are extensions to the normal attributes which are
--associated with all inodes in the system (i.e. the
--.BR stat (2)
--data).
--They are often used to provide additional functionality
--to a filesystem \- for example, additional security features such as
--Access Control Lists (ACLs) may be implemented using extended attributes.
--.PP
--Users with search access to a file or directory may retrieve a list of
--attribute names defined for that file or directory.
--.PP
--Extended attributes are accessed as atomic objects.
--Reading retrieves the whole value of an attribute and stores it in a buffer.
--Writing replaces any previous value with the new value.
--.PP
--Space consumed for extended attributes is counted towards the disk quotas
--of the file owner and file group.
--.PP
--Currently, support for extended attributes is implemented on Linux by the
--ext2, ext3, ext4, XFS, JFS and reiserfs filesystems.
--.SH EXTENDED ATTRIBUTE NAMESPACES
--Attribute names are zero-terminated strings.
--The attribute name is always specified in the fully qualified
--.IR namespace.attribute
--form, eg.
--.IR user.mime_type ,
--.IR trusted.md5sum ,
--.IR system.posix_acl_access ,
--or
--.IR security.selinux .
--.PP
--The namespace mechanism is used to define different classes of extended
--attributes.
--These different classes exist for several reasons, e.g. the permissions
--and capabilities required for manipulating extended attributes of one
--namespace may differ to another.
--.PP
--Currently the
--.IR security ,
--.IR system ,
--.IR trusted ,
--and
--.IR user
--extended attribute classes are defined as described below. Additional
--classes may be added in the future.
--.SS Extended security attributes
--The security attribute namespace is used by kernel security modules,
--such as Security Enhanced Linux.
--Read and write access permissions to security attributes depend on the
--policy implemented for each security attribute by the security module.
--When no security module is loaded, all processes have read access to
--extended security attributes, and write access is limited to processes
--that have the CAP_SYS_ADMIN capability.
--.SS Extended system attributes
--Extended system attributes are used by the kernel to store system
--objects such as Access Control Lists and Capabilities. Read and write
--access permissions to system attributes depend on the policy implemented
--for each system attribute implemented by filesystems in the kernel.
--.SS Trusted extended attributes
--Trusted extended attributes are visible and accessible only to processes that
--have the CAP_SYS_ADMIN capability (the super user usually has this
--capability).
--Attributes in this class are used to implement mechanisms in user
--space (i.e., outside the kernel) which keep information in extended attributes
--to which ordinary processes should not have access.
--.SS Extended user attributes
--Extended user attributes may be assigned to files and directories for
--storing arbitrary additional information such as the mime type,
--character set or encoding of a file. The access permissions for user
--attributes are defined by the file permission bits.
--.PP
--The file permission bits of regular files and directories are
--interpreted differently from the file permission bits of special files
--and symbolic links. For regular files and directories the file
--permission bits define access to the file's contents, while for device special
--files they define access to the device described by the special file.
--The file permissions of symbolic links are not used in access
--checks. These differences would allow users to consume filesystem resources in
--a way not controllable by disk quotas for group or world writable special files and directories.
--.PP
--For this reason, extended user attributes are only allowed for regular files and directories, and access to extended user attributes is restricted to the
--owner and to users with appropriate capabilities for directories with the
--sticky bit set (see the
--.BR chmod (1)
--manual page for an explanation of Sticky Directories).
--.SH FILESYSTEM DIFFERENCES
--The kernel and the filesystem may place limits on the maximum number
--and size of extended attributes that can be associated with a file.
--Some file systems, such as ext2/3 and reiserfs, require the filesystem
--to be mounted with the
--.B user_xattr
--mount option in order for extended user attributes to be used.
--.PP
--In the current ext2, ext3 and ext4 filesystem implementations, each
--extended attribute must fit on a single filesystem block (1024, 2048
--or 4096 bytes, depending on the block size specified when the
--filesystem was created).
--.PP
--In the XFS and reiserfs filesystem implementations, there is no
--practical limit on the number or size of extended attributes
--associated with a file, and the algorithms used to store extended
--attribute information on disk are scalable.
--.PP
--In the JFS filesystem implementation, names can be up to 255 bytes and
--values up to 65,535 bytes.
--.SH ADDITIONAL NOTES
--Since the filesystems on which extended attributes are stored might also
--be used on architectures with a different byte order and machine word
--size, care should be taken to store attribute values in an architecture
--independent format.
--.SH AUTHORS
--Andreas Gruenbacher,
--.RI < a.gruenbacher@bestbits.at >
--and the SGI XFS development team,
--.RI < linux-xfs@oss.sgi.com >.
--.SH SEE ALSO
--getfattr(1),
--setfattr(1).
---
-2.7.4
-
diff --git a/meta/recipes-support/attr/files/Remove-the-section-2-man-pages.patch b/meta/recipes-support/attr/files/Remove-the-section-2-man-pages.patch
deleted file mode 100644
index 044c5a037c..0000000000
--- a/meta/recipes-support/attr/files/Remove-the-section-2-man-pages.patch
+++ /dev/null
@@ -1,666 +0,0 @@
-From b972600a26f3a930e53e2fce2625266a5d29813e Mon Sep 17 00:00:00 2001
-From: Andreas Gruenbacher <andreas.gruenbacher@gmail.com>
-Date: Tue, 14 Apr 2015 23:53:11 +0200
-Subject: [PATCH 1/2] Remove the section 2 man pages
-
-Commit 8d1263bca95722d66a6f8e83450f49d0956ea534 from upstream
-https://git.savannah.nongnu.org/git/attr.git/
-
-The section 2 man pages have long since been added to the man-pages package
-which documents all system calls; they were disabled in attr by default since
-January 2014. Get rid of them here.
-
-Upstream-Status: Backport
-
-[MA: modified to apply directly to v2.4.47]
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- man/Makefile | 2 +-
- man/man2/Makefile | 35 -----------
- man/man2/getxattr.2 | 143 --------------------------------------------
- man/man2/listxattr.2 | 158 -------------------------------------------------
- man/man2/removexattr.2 | 111 ----------------------------------
- man/man2/setxattr.2 | 143 --------------------------------------------
- 6 files changed, 1 insertion(+), 591 deletions(-)
- delete mode 100644 man/man2/Makefile
- delete mode 100644 man/man2/getxattr.2
- delete mode 100644 man/man2/listxattr.2
- delete mode 100644 man/man2/removexattr.2
- delete mode 100644 man/man2/setxattr.2
-
-diff --git a/man/Makefile b/man/Makefile
-index 9535426..755daed 100644
---- a/man/Makefile
-+++ b/man/Makefile
-@@ -19,7 +19,7 @@
- TOPDIR = ..
- include $(TOPDIR)/include/builddefs
-
--SUBDIRS = man1 man2 man3 man5
-+SUBDIRS = man1 man3 man5
-
- default : $(SUBDIRS)
-
-diff --git a/man/man2/Makefile b/man/man2/Makefile
-deleted file mode 100644
-index d77309d..0000000
---- a/man/man2/Makefile
-+++ /dev/null
-@@ -1,35 +0,0 @@
--#
--# Copyright (c) 2000-2002 Silicon Graphics, Inc. All Rights Reserved.
--# Copyright (C) 2009 Andreas Gruenbacher <agruen@suse.de>
--#
--# 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, see <http://www.gnu.org/licenses/>.
--#
--
--TOPDIR = ../..
--include $(TOPDIR)/include/builddefs
--
--MAN_SECTION = 2
--
--MAN_PAGES = $(shell echo *.$(MAN_SECTION))
--MAN_DEST = $(PKG_MAN_DIR)/man$(MAN_SECTION)
--LSRCFILES = $(MAN_PAGES)
--
--default install : $(MAN_PAGES)
--
--include $(BUILDRULES)
--
--install-dev : default
-- $(INSTALL) -m 755 -d $(MAN_DEST)
-- $(INSTALL_MAN)
--install-lib:
-diff --git a/man/man2/getxattr.2 b/man/man2/getxattr.2
-deleted file mode 100644
-index 405ad89..0000000
---- a/man/man2/getxattr.2
-+++ /dev/null
-@@ -1,143 +0,0 @@
--.\"
--.\" Extended attributes system calls manual pages
--.\"
--.\" (C) Andreas Gruenbacher, February 2001
--.\" (C) Silicon Graphics Inc, September 2001
--.\"
--.\" This is free documentation; 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.
--.\"
--.\" The GNU General Public License's references to "object code"
--.\" and "executables" are to be interpreted as the output of any
--.\" document formatting or typesetting system, including
--.\" intermediate and printed output.
--.\"
--.\" This manual 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 manual. If not, see
--.\" <http://www.gnu.org/licenses/>.
--.\"
--.TH GETXATTR 2 "Extended Attributes" "Dec 2001" "System calls"
--.SH NAME
--getxattr, lgetxattr, fgetxattr \- retrieve an extended attribute value
--.SH SYNOPSIS
--.fam C
--.nf
--.B #include <sys/types.h>
--.B #include <attr/xattr.h>
--.sp
--.BI "ssize_t getxattr (const char\ *" path ", const char\ *" name ",
--.BI "\t\t\t\t void\ *" value ", size_t " size );
--.BI "ssize_t lgetxattr (const char\ *" path ", const char\ *" name ",
--.BI "\t\t\t\t void\ *" value ", size_t " size );
--.BI "ssize_t fgetxattr (int " filedes ", const char\ *" name ",
--.BI "\t\t\t\t void\ *" value ", size_t " size );
--.fi
--.fam T
--.SH DESCRIPTION
--Extended attributes are
--.IR name :\c
--.I value
--pairs associated with inodes (files, directories, symlinks, etc).
--They are extensions to the normal attributes which are associated
--with all inodes in the system (i.e. the
--.BR stat (2)
--data).
--A complete overview of extended attributes concepts can be found in
--.BR attr (5).
--.PP
--.B getxattr
--retrieves the
--.I value
--of the extended attribute identified by
--.I name
--and associated with the given
--.I path
--in the filesystem.
--The length of the attribute
--.I value
--is returned.
--.PP
--.B lgetxattr
--is identical to
--.BR getxattr ,
--except in the case of a symbolic link, where the link itself is
--interrogated, not the file that it refers to.
--.PP
--.B fgetxattr
--is identical to
--.BR getxattr ,
--only the open file pointed to by
--.I filedes
--(as returned by
--.BR open (2))
--is interrogated in place of
--.IR path .
--.PP
--An extended attribute
--.I name
--is a simple NULL-terminated string.
--The name includes a namespace prefix \- there may be several, disjoint
--namespaces associated with an individual inode.
--The value of an extended attribute is a chunk of arbitrary textual or
--binary data of specified length.
--.PP
--An empty buffer of
--.I size
--zero can be passed into these calls to return the current size of the
--named extended attribute, which can be used to estimate the size of a
--buffer which is sufficiently large to hold the value associated with
--the extended attribute.
--.PP
--The interface is designed to allow guessing of initial buffer
--sizes, and to enlarge buffers when the return value indicates
--that the buffer provided was too small.
--.SH RETURN VALUE
--On success, a positive number is returned indicating the size of the
--extended attribute value.
--On failure, \-1 is returned and
--.I errno
--is set appropriately.
--.PP
--If the named attribute does not exist, or the process has no access to
--this attribute,
--.I errno
--is set to ENOATTR.
--.PP
--If the
--.I size
--of the
--.I value
--buffer is too small to hold the result,
--.I errno
--is set to ERANGE.
--.PP
--If extended attributes are not supported by the filesystem, or are disabled,
--.I errno
--is set to ENOTSUP.
--.PP
--The errors documented for the
--.BR stat (2)
--system call are also applicable here.
--.SH AUTHORS
--Andreas Gruenbacher,
--.RI < a.gruenbacher@bestbits.at >
--and the SGI XFS development team,
--.RI < linux-xfs@oss.sgi.com >.
--Please send any bug reports or comments to these addresses.
--.SH SEE ALSO
--.BR getfattr (1),
--.BR setfattr (1),
--.BR open (2),
--.BR stat (2),
--.BR setxattr (2),
--.BR listxattr (2),
--.BR removexattr (2),
--and
--.BR attr (5).
-diff --git a/man/man2/listxattr.2 b/man/man2/listxattr.2
-deleted file mode 100644
-index 8b4371c..0000000
---- a/man/man2/listxattr.2
-+++ /dev/null
-@@ -1,158 +0,0 @@
--.\"
--.\" Extended attributes system calls manual pages
--.\"
--.\" (C) Andreas Gruenbacher, February 2001
--.\" (C) Silicon Graphics Inc, September 2001
--.\"
--.\" This is free documentation; 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.
--.\"
--.\" The GNU General Public License's references to "object code"
--.\" and "executables" are to be interpreted as the output of any
--.\" document formatting or typesetting system, including
--.\" intermediate and printed output.
--.\"
--.\" This manual 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 manual. If not, see
--.\" <http://www.gnu.org/licenses/>.
--.\"
--.TH LISTXATTR 2 "Extended Attributes" "Dec 2001" "System calls"
--.SH NAME
--listxattr, llistxattr, flistxattr \- list extended attribute names
--.SH SYNOPSIS
--.fam C
--.nf
--.B #include <sys/types.h>
--.B #include <attr/xattr.h>
--.sp
--.BI "ssize_t listxattr (const char\ *" path ",
--.BI "\t\t\t\t char\ *" list ", size_t " size );
--.BI "ssize_t llistxattr (const char\ *" path ",
--.BI "\t\t\t\t char\ *" list ", size_t " size );
--.BI "ssize_t flistxattr (int " filedes ",
--.BI "\t\t\t\t char\ *" list ", size_t " size );
--.fi
--.fam T
--.SH DESCRIPTION
--Extended attributes are name:value
--pairs associated with inodes (files, directories, symlinks, etc).
--They are extensions to the normal attributes which are associated
--with all inodes in the system (i.e. the
--.BR stat (2)
--data).
--A complete overview of extended attributes concepts can be found in
--.BR attr (5).
--.PP
--.B listxattr
--retrieves the
--.I list
--of extended attribute names associated with the given
--.I path
--in the filesystem.
--The list is the set of (NULL-terminated) names, one after the other.
--Names of extended attributes to which the calling process does not
--have access may be omitted from the list.
--The length of the attribute name
--.I list
--is returned.
--.PP
--.B llistxattr
--is identical to
--.BR listxattr ,
--except in the case of a symbolic link, where the list of names of
--extended attributes associated with the link itself is retrieved,
--not the file that it refers to.
--.I list
--is a caller-allocated buffer of size
--.IR size .
--.PP
--.B flistxattr
--is identical to
--.BR listxattr ,
--only the open file pointed to by
--.I filedes
--(as returned by
--.BR open (2))
--is interrogated in place of
--.IR path .
--.PP
--A single extended attribute
--.I name
--is a simple NULL-terminated string.
--The name includes a namespace prefix \- there may be several, disjoint
--namespaces associated with an individual inode.
--.PP
--An empty buffer of
--.I size
--zero can be passed into these calls to return the current size of the
--list of extended attribute names, which can be used to estimate the
--size of a buffer which is sufficiently large to hold the list of names.
--.SH EXAMPLES
--The
--.I list
--of names is returned as an unordered array of NULL-terminated character
--strings (attribute names are separated by NULL characters), like this:
--.fam C
--.RS
--.nf
--user.name1\\0system.name1\\0user.name2\\0
--.fi
--.RE
--.fam T
--.P
--Filesystems like ext2, ext3 and XFS which implement POSIX ACLs using
--extended attributes, might return a
--.I list
--like this:
--.fam C
--.RS
--.nf
--system.posix_acl_access\\0system.posix_acl_default\\0
--.fi
--.RE
--.fam T
--.SH RETURN VALUE
--On success, a positive number is returned indicating the size of the
--extended attribute name list.
--On failure, \-1 is returned and
--.I errno
--is set appropriately.
--.PP
--If the
--.I size
--of the
--.I list
--buffer is too small to hold the result,
--.I errno
--is set to ERANGE.
--.PP
--If extended attributes are not supported by the filesystem, or are disabled,
--.I errno
--is set to ENOTSUP.
--.PP
--The errors documented for the
--.BR stat (2)
--system call are also applicable here.
--.SH AUTHORS
--Andreas Gruenbacher,
--.RI < a.gruenbacher@bestbits.at >
--and the SGI XFS development team,
--.RI < linux-xfs@oss.sgi.com >.
--Please send any bug reports or comments to these addresses.
--.SH SEE ALSO
--.BR getfattr (1),
--.BR setfattr (1),
--.BR open (2),
--.BR stat (2),
--.BR getxattr (2),
--.BR setxattr (2),
--.BR removexattr (2),
--and
--.BR attr (5).
-diff --git a/man/man2/removexattr.2 b/man/man2/removexattr.2
-deleted file mode 100644
-index 2c7d934..0000000
---- a/man/man2/removexattr.2
-+++ /dev/null
-@@ -1,111 +0,0 @@
--.\"
--.\" Extended attributes system calls manual pages
--.\"
--.\" (C) Andreas Gruenbacher, February 2001
--.\" (C) Silicon Graphics Inc, September 2001
--.\"
--.\" This is free documentation; 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.
--.\"
--.\" The GNU General Public License's references to "object code"
--.\" and "executables" are to be interpreted as the output of any
--.\" document formatting or typesetting system, including
--.\" intermediate and printed output.
--.\"
--.\" This manual 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 manual. If not, see
--.\" <http://www.gnu.org/licenses/>.
--.\"
--.TH REMOVEXATTR 2 "Extended Attributes" "Dec 2001" "System calls"
--.SH NAME
--removexattr, lremovexattr, fremovexattr \- remove an extended attribute
--.SH SYNOPSIS
--.fam C
--.nf
--.B #include <sys/types.h>
--.B #include <attr/xattr.h>
--.sp
--.BI "int removexattr (const char\ *" path ", const char\ *" name );
--.BI "int lremovexattr (const char\ *" path ", const char\ *" name );
--.BI "int fremovexattr (int " filedes ", const char\ *" name );
--.fi
--.fam T
--.SH DESCRIPTION
--Extended attributes are
--.IR name :\c
--value pairs associated with inodes (files, directories, symlinks, etc).
--They are extensions to the normal attributes which are associated
--with all inodes in the system (i.e. the
--.BR stat (2)
--data).
--A complete overview of extended attributes concepts can be found in
--.BR attr (5).
--.PP
--.B removexattr
--removes the extended attribute identified by
--.I name
--and associated with the given
--.I path
--in the filesystem.
--.PP
--.B lremovexattr
--is identical to
--.BR removexattr ,
--except in the case of a symbolic link, where the extended attribute is
--removed from the link itself, not the file that it refers to.
--.PP
--.B fremovexattr
--is identical to
--.BR removexattr ,
--only the extended attribute is removed from the open file pointed to by
--.I filedes
--(as returned by
--.BR open (2))
--in place of
--.IR path .
--.PP
--An extended attribute name is a simple NULL-terminated string.
--The
--.I name
--includes a namespace prefix \- there may be several, disjoint
--namespaces associated with an individual inode.
--.SH RETURN VALUE
--On success, zero is returned.
--On failure, \-1 is returned and
--.I errno
--is set appropriately.
--.PP
--If the named attribute does not exist,
--.I errno
--is set to ENOATTR.
--.PP
--If extended attributes are not supported by the filesystem, or are disabled,
--.I errno
--is set to ENOTSUP.
--.PP
--The errors documented for the
--.BR stat (2)
--system call are also applicable here.
--.SH AUTHORS
--Andreas Gruenbacher,
--.RI < a.gruenbacher@bestbits.at >
--and the SGI XFS development team,
--.RI < linux-xfs@oss.sgi.com >.
--Please send any bug reports or comments to these addresses.
--.SH SEE ALSO
--.BR getfattr (1),
--.BR setfattr (1),
--.BR open (2),
--.BR stat (2),
--.BR setxattr (2),
--.BR getxattr (2),
--.BR listxattr (2),
--and
--.BR attr (5).
-diff --git a/man/man2/setxattr.2 b/man/man2/setxattr.2
-deleted file mode 100644
-index b20dc9f..0000000
---- a/man/man2/setxattr.2
-+++ /dev/null
-@@ -1,143 +0,0 @@
--.\"
--.\" Extended attributes system calls manual pages
--.\"
--.\" (C) Andreas Gruenbacher, February 2001
--.\" (C) Silicon Graphics Inc, September 2001
--.\"
--.\" This is free documentation; 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.
--.\"
--.\" The GNU General Public License's references to "object code"
--.\" and "executables" are to be interpreted as the output of any
--.\" document formatting or typesetting system, including
--.\" intermediate and printed output.
--.\"
--.\" This manual 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 manual. If not, see
--.\" <http://www.gnu.org/licenses/>.
--.\"
--.TH SETXATTR 2 "Extended Attributes" "Dec 2001" "System calls"
--.SH NAME
--setxattr, lsetxattr, fsetxattr \- set an extended attribute value
--.SH SYNOPSIS
--.fam C
--.nf
--.B #include <sys/types.h>
--.B #include <attr/xattr.h>
--.sp
--.BI "int setxattr (const char\ *" path ", const char\ *" name ",
--.BI "\t\t\t const void\ *" value ", size_t " size ", int " flags );
--.BI "int lsetxattr (const char\ *" path ", const char\ *" name ",
--.BI "\t\t\t const void\ *" value ", size_t " size ", int " flags );
--.BI "int fsetxattr (int " filedes ", const char\ *" name ",
--.BI "\t\t\t const void\ *" value ", size_t " size ", int " flags );
--.fi
--.fam T
--.SH DESCRIPTION
--Extended attributes are
--.IR name :\c
--.I value
--pairs associated with inodes (files, directories, symlinks, etc).
--They are extensions to the normal attributes which are associated
--with all inodes in the system (i.e. the
--.BR stat (2)
--data).
--A complete overview of extended attributes concepts can be found in
--.BR attr (5).
--.PP
--.B setxattr
--sets the
--.I value
--of the extended attribute identified by
--.I name
--and associated with the given
--.I path
--in the filesystem.
--The
--.I size
--of the
--.I value
--must be specified.
--.PP
--.B lsetxattr
--is identical to
--.BR setxattr ,
--except in the case of a symbolic link, where the extended attribute is
--set on the link itself, not the file that it refers to.
--.PP
--.B fsetxattr
--is identical to
--.BR setxattr ,
--only the extended attribute is set on the open file pointed to by
--.I filedes
--(as returned by
--.BR open (2))
--in place of
--.IR path .
--.PP
--An extended attribute name is a simple NULL-terminated string.
--The
--.I name
--includes a namespace prefix \- there may be several, disjoint
--namespaces associated with an individual inode.
--The
--.I value
--of an extended attribute is a chunk of arbitrary textual or
--binary data of specified length.
--.PP
--The
--.I flags
--parameter can be used to refine the semantics of the operation.
--XATTR_CREATE specifies a pure create, which fails if the named
--attribute exists already.
--XATTR_REPLACE specifies a pure replace operation, which fails if the
--named attribute does not already exist.
--By default (no flags), the extended attribute will be created if
--need be, or will simply replace the value if the attribute exists.
--.SH RETURN VALUE
--On success, zero is returned.
--On failure, \-1 is returned and
--.I errno
--is set appropriately.
--.PP
--If XATTR_CREATE is specified, and the attribute exists already,
--.I errno
--is set to EEXIST.
--If XATTR_REPLACE is specified, and the attribute does not exist,
--.I errno
--is set to ENOATTR.
--.PP
--If there is insufficient space remaining to store the extended attribute,
--.I errno
--is set to either ENOSPC, or EDQUOT if quota enforcement was the cause.
--.PP
--If extended attributes are not supported by the filesystem, or are disabled,
--.I errno
--is set to ENOTSUP.
--.PP
--The errors documented for the
--.BR stat (2)
--system call are also applicable here.
--.SH AUTHORS
--Andreas Gruenbacher,
--.RI < a.gruenbacher@bestbits.at >
--and the SGI XFS development team,
--.RI < linux-xfs@oss.sgi.com >.
--Please send any bug reports or comments to these addresses.
--.SH SEE ALSO
--.BR getfattr (1),
--.BR setfattr (1),
--.BR open (2),
--.BR stat (2),
--.BR getxattr (2),
--.BR listxattr (2),
--.BR removexattr (2),
--and
--.BR attr (5).
---
-2.7.4
-
diff --git a/meta/recipes-support/attr/files/relative-libdir.patch b/meta/recipes-support/attr/files/relative-libdir.patch
deleted file mode 100644
index b72bf184d6..0000000000
--- a/meta/recipes-support/attr/files/relative-libdir.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Upstream-Status: Pending
-
-use relative path in symbolic links, or it fails in staging
-sed expression from udev
-
-7/29/2010 - created by Qing He <qing.he@intel.com>
-
-diff -u include.orig/buildmacros include/buildmacros
---- include.orig/buildmacros 2010-07-29 17:39:48.000000000 +0800
-+++ include/buildmacros 2010-07-29 18:20:34.000000000 +0800
-@@ -88,9 +88,11 @@
- ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
- ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \
- if test "x$(PKG_DEVLIB_DIR)" != "x$(PKG_LIB_DIR)" ; then \
-- ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \
-- ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \
-- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_DEVLIB_DIR)/$(LIBNAME).so; \
-+ rel_lib_prefix=$$(echo $(PKG_LIB_DIR) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
-+ ../$(INSTALL) -S $$rel_lib_prefix$(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \
-+ ../$(INSTALL) -S $$rel_lib_prefix$(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \
-+ rel_devlib_prefix=$$(echo $(PKG_DEVLIB_DIR) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
-+ ../$(INSTALL) -S $$rel_devlib_prefix$(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_DEVLIB_DIR)/$(LIBNAME).so; \
- fi
- else
- INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC)
diff --git a/meta/recipes-support/attr/files/run-ptest b/meta/recipes-support/attr/files/run-ptest
deleted file mode 100644
index a6c6867f2d..0000000000
--- a/meta/recipes-support/attr/files/run-ptest
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-make -C test -k tests root-tests |sed \
- -e 's|^\[.*\] \(.*\) -- ok$|PASS: \1|' \
- -e 's|^\[.*\] \(.*\) -- failed|FAIL: \1|'
diff --git a/meta/recipes-support/bash-completion/bash-completion_2.9.bb b/meta/recipes-support/bash-completion/bash-completion_2.11.bb
index cd2c4cbba8..da0baa7afc 100644
--- a/meta/recipes-support/bash-completion/bash-completion_2.9.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] = "60139333b25c4d54ad40323b701be130"
-SRC_URI[sha256sum] = "d48fe378e731062f479c5f8802ffa9d3c40a275a19e6e0f6f6cc4b90fa12b2f5"
+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.71.0.bb b/meta/recipes-support/boost/bjam-native_1.71.0.bb
deleted file mode 100644
index d843eb038c..0000000000
--- a/meta/recipes-support/boost/bjam-native_1.71.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.71.0.inc b/meta/recipes-support/boost/boost-1.74.0.inc
index 7164d0f1c5..b47fdaf099 100644
--- a/meta/recipes-support/boost/boost-1.71.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] = "4cdf9b5c2dc01fb2b7b733d5af30e558"
-SRC_URI[sha256sum] = "d73a8da01e8bf8c7eda40b4c84915071a8c8a0df4a6734537ddde4a8580524ee"
+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-dont-setup-compiler-flags-m32-m64.patch b/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
new file mode 100644
index 0000000000..78b19225d4
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
@@ -0,0 +1,42 @@
+From 59402e3a61d14eb7ce8c2019ea1a87ad4bd28605 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Thu, 14 Nov 2019 10:13:53 +0800
+Subject: [PATCH] dont setup compiler flags -m32/-m64
+
+We don't want these to be setup by boost as we pass our own flags.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ tools/build/src/tools/gcc.jam | 14 --------------
+ 1 file changed, 14 deletions(-)
+
+diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
+index c7e3cf3..24486e0 100644
+--- a/tools/build/src/tools/gcc.jam
++++ b/tools/build/src/tools/gcc.jam
+@@ -430,20 +430,6 @@ local rule compile-link-flags ( * )
+ }
+
+ {
+- # Handle address-model
+- compile-link-flags <target-os>aix/<address-model>32 : -maix32 ;
+- compile-link-flags <target-os>aix/<address-model>64 : -maix64 ;
+-
+- compile-link-flags <target-os>hpux/<address-model>32 : -milp32 ;
+- compile-link-flags <target-os>hpux/<address-model>64 : -mlp64 ;
+-
+- local generic-os = [ set.difference $(all-os) : aix hpux ] ;
+- local arch = power sparc x86 ;
+- compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>32 : -m32 ;
+- compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>64 : -m64 ;
+-}
+-
+-{
+ # Handle threading
+ local rule threading-flags ( * )
+ {
+--
+2.7.4
+
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.71.0.bb b/meta/recipes-support/boost/boost_1.74.0.bb
index 324b46f168..b01b390a59 100644
--- a/meta/recipes-support/boost/boost_1.71.0.bb
+++ b/meta/recipes-support/boost/boost_1.74.0.bb
@@ -6,4 +6,6 @@ SRC_URI += "file://arm-intrinsics.patch \
file://boost-math-disable-pch-for-gcc.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/consolekit/consolekit_0.4.6.bb b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
index a17f739d4d..89f2d77b66 100644
--- a/meta/recipes-support/consolekit/consolekit_0.4.6.bb
+++ b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
DEPENDS = "glib-2.0 glib-2.0-native dbus dbus-glib virtual/libx11"
RDEPENDS_${PN} += "base-files"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta/recipes-support/curl/curl_7.66.0.bb b/meta/recipes-support/curl/curl_7.72.0.bb
index d1975f2460..7d0268253d 100644
--- a/meta/recipes-support/curl/curl_7.66.0.bb
+++ b/meta/recipes-support/curl/curl_7.72.0.bb
@@ -3,16 +3,17 @@ HOMEPAGE = "http://curl.haxx.se/"
BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker"
SECTION = "console/network"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=be5d9e1419c4363f4b32037a2d3b7ffa"
+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] = "c238aa394e3aa47ca4fcb0491774149f"
-SRC_URI[sha256sum] = "6618234e0235c420a21f4cb4c2dd0badde76e6139668739085a70c4e2fe7a141"
+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/0001-clock-Do-not-define-own-timespec.patch b/meta/recipes-support/db/db/0001-clock-Do-not-define-own-timespec.patch
new file mode 100644
index 0000000000..9d51a44a26
--- /dev/null
+++ b/meta/recipes-support/db/db/0001-clock-Do-not-define-own-timespec.patch
@@ -0,0 +1,45 @@
+From 96b303caf70a7635953c36e5bfb9ad6e75cb7637 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Feb 2020 14:12:59 -0800
+Subject: [PATCH] clock: Do not define own timespec
+
+timespec is provided by libc and its best left to libc
+os_gettime takes a db_timespec and passed its address to clock_gettime
+which assumes that db_timespec and timespec are same but actually
+its 12-bytes here and libc has 16-bytes
+
+This can cause problems especially with 64bit time_t
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/dbinc/clock.h | 17 +----------------
+ 1 file changed, 1 insertion(+), 16 deletions(-)
+
+--- a/src/dbinc/clock.h
++++ b/src/dbinc/clock.h
+@@ -44,22 +44,8 @@
+ extern "C" {
+ #endif
+
+-/*
+- * This declaration is POSIX-compatible. Because there are lots of different
+- * time.h include file patterns out there, it's easier to declare our own name
+- * in all cases than to try and discover if a system has a struct timespec.
+- * For the same reason, and because we'd have to #include <sys/time.h> in db.h,
+- * we don't export any timespec structures in the DB API, even in places where
+- * it would make sense, like the replication statistics information.
+- */
+-typedef struct {
+- time_t tv_sec; /* seconds */
+-#ifdef HAVE_MIXED_SIZE_ADDRESSING
+- int32_t tv_nsec;
+-#else
+- long tv_nsec; /* nanoseconds */
+-#endif
+-} db_timespec;
++#include <time.h>
++#define db_timespec struct timespec
+
+ /* Operations on timespecs */
+ #undef timespecclear
diff --git a/meta/recipes-support/db/db_5.3.28.bb b/meta/recipes-support/db/db_5.3.28.bb
index 761d80c2fd..318efcb61d 100644
--- a/meta/recipes-support/db/db_5.3.28.bb
+++ b/meta/recipes-support/db/db_5.3.28.bb
@@ -10,7 +10,7 @@
# same system at the same time if really necessary.
SECTION = "libs"
SUMMARY = "Berkeley Database v5"
-HOMEPAGE = "http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
+HOMEPAGE = "https://www.oracle.com/database/technologies/related/berkeleydb.html"
LICENSE = "Sleepycat"
RCONFLICTS_${PN} = "db3"
@@ -20,12 +20,13 @@ CVE_VERSION = "11.2.${PV}"
PR = "r1"
PE = "1"
-SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz"
+SRC_URI = "https://download.oracle.com/berkeley-db/db-${PV}.tar.gz"
SRC_URI += "file://fix-parallel-build.patch \
file://0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch \
file://0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch \
file://sequence-type.patch \
file://0001-Fix-libc-compatibility-by-renaming-atomic_init-API.patch \
+ file://0001-clock-Do-not-define-own-timespec.patch \
"
# We are not interested in official latest 6.x versions;
# let's track what debian is using.
@@ -60,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'"
@@ -106,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.8.6.3.bb b/meta/recipes-support/debianutils/debianutils_4.11.1.bb
index a69d01e0f9..3b1767e5ed 100644
--- a/meta/recipes-support/debianutils/debianutils_4.8.6.3.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/20190717T213444Z/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] = "ca57cc6621275346d7d516ab0b5fa1f5"
-SRC_URI[sha256sum] = "2cc7de3afc6df1cf6d00af9938efac7ee8f739228e548e512ddc186b6a7be221"
+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_160.bb b/meta/recipes-support/diffoscope/diffoscope_160.bb
new file mode 100644
index 0000000000..2c3da3bbda
--- /dev/null
+++ b/meta/recipes-support/diffoscope/diffoscope_160.bb
@@ -0,0 +1,17 @@
+SUMMARY = "in-depth comparison of files, archives, and directories"
+HOMEPAGE = "https://diffoscope.org/"
+LICENSE = "GPL-3.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+PYPI_PACKAGE = "diffoscope"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "f164b5e74cc11f6238ad8d62c92d3a819fa4c8b618683fc0533e04f21acae6b2"
+
+RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic"
+
+# Dependencies don't build for musl
+COMPATIBLE_HOST_libc-musl = 'null'
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/dos2unix/dos2unix_7.4.0.bb b/meta/recipes-support/dos2unix/dos2unix_7.4.1.bb
index 9a71270683..1623285fd0 100644
--- a/meta/recipes-support/dos2unix/dos2unix_7.4.0.bb
+++ b/meta/recipes-support/dos2unix/dos2unix_7.4.1.bb
@@ -6,13 +6,12 @@ HOMEPAGE = "http://waterlan.home.xs4all.nl/dos2unix.html"
SECTION = "support"
LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=1b78fca784db24f4a40e30b300787f3f"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=0c977b18f0a384d03597a517d7d03e32"
SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix"
UPSTREAM_CHECK_GITTAGREGEX = "dos2unix-(?P<pver>(\d+(\.\d+)+))"
-# Release 7.4.0
-SRCREV = "1182533bde3c1fe65be2ead465e87671faa2c027"
+SRCREV = "0490f0723b1a0851b17343f6164915f3474b5197"
S = "${WORKDIR}/git/dos2unix"
diff --git a/meta/recipes-support/enchant/enchant2_2.2.9.bb b/meta/recipes-support/enchant/enchant2_2.2.9.bb
new file mode 100644
index 0000000000..784fd14ee1
--- /dev/null
+++ b/meta/recipes-support/enchant/enchant2_2.2.9.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Enchant Spell checker API Library"
+SECTION = "libs"
+HOMEPAGE = "https://abiword.github.io/enchant/"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7"
+
+DEPENDS = "glib-2.0"
+
+inherit autotools pkgconfig
+
+SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz"
+SRC_URI[sha256sum] = "b29a3d2273f5edcbdbbb565e94bfd8ea3f9526886fcb6327b4b0f72f0d722f3c"
+
+UPSTREAM_CHECK_URI = "https://github.com/AbiWord/enchant/releases"
+
+S = "${WORKDIR}/enchant-${PV}"
+
+EXTRA_OEMAKE = "pkgdatadir=${datadir}/enchant-2"
+
+PACKAGECONFIG ??= "aspell"
+PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell"
+PACKAGECONFIG[hunspell] = "--with-hunspell,--without-hunspell,hunspell,hunspell"
+
+FILES_${PN} += " \
+ ${datadir}/enchant-2 \
+ ${libdir}/enchant-2 \
+"
+FILES_${PN}-staticdev += "${libdir}/enchant-2/*.a"
diff --git a/meta/recipes-support/enchant/enchant_1.6.0.bb b/meta/recipes-support/enchant/enchant_1.6.0.bb
deleted file mode 100644
index 44eb2e3df4..0000000000
--- a/meta/recipes-support/enchant/enchant_1.6.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Enchant Spell checker API Library"
-SECTION = "libs"
-HOMEPAGE = "http://www.abisource.com/projects/enchant/"
-BUGTRACKER = "http://bugzilla.abisource.com/enter_bug.cgi?product=Enchant"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=dfcbabf9131dc9a95febef6753a2958b \
- file://src/enchant.h;beginline=1;endline=29;md5=8d881caa1d37523567e1d8f726675a18"
-
-DEPENDS = "glib-2.0"
-
-inherit autotools pkgconfig
-
-PR = "r3"
-
-SRC_URI = "http://www.abisource.com/downloads/enchant/${PV}/enchant-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "de11011aff801dc61042828041fb59c7"
-SRC_URI[sha256sum] = "2fac9e7be7e9424b2c5570d8affe568db39f7572c10ed48d4e13cddf03f7097f"
-
-PACKAGECONFIG ??= "aspell"
-PACKAGECONFIG[aspell] = " --with-aspell-prefix=${STAGING_DIR_HOST}${prefix} --enable-aspell, --disable-aspell, aspell, aspell"
-PACKAGECONFIG[ispell] = " --with-ispell-prefix=${STAGING_DIR_HOST}${prefix} --enable-ispell, --disable-ispell, ispell, ispell"
-PACKAGECONFIG[uspell] = " --with-uspell-prefix=${STAGING_DIR_HOST}${prefix} --enable-uspell, --disable-uspell, uspell, uspell"
-PACKAGECONFIG[hspell] = " --with-hspell-prefix=${STAGING_DIR_HOST}${prefix} --enable-hspell, --disable-hspell, hspell, hspell"
-PACKAGECONFIG[myspell] = "--with-myspell-prefix=${STAGING_DIR_HOST}${prefix} --enable-myspell, --disable-myspell, myspell, myspell"
-
-EXTRA_OECONF = "br_cv_binreloc=no"
-
-export CXXFLAGS += " -L${STAGING_LIBDIR} -lstdc++ "
-
-FILES_${PN} = "${bindir} ${libdir}/*${SOLIBS} ${datadir}/${BPN} ${libdir}/${BPN}/*.so"
-FILES_${PN}-dev += "${libdir}/${BPN}/*{SOLIBSDEV} ${libdir}/${BPN}/*.la"
-FILES_${PN}-staticdev += "${libdir}/${BPN}/*.a"
diff --git a/meta/recipes-support/fribidi/fribidi/meson.patch b/meta/recipes-support/fribidi/fribidi/meson.patch
deleted file mode 100644
index 8b3c4a991e..0000000000
--- a/meta/recipes-support/fribidi/fribidi/meson.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From f5feb6c599adb52f24656f8589868039b0d14272 Mon Sep 17 00:00:00 2001
-From: Heiko Becker <heirecka@exherbo.org>
-Date: Fri, 7 Sep 2018 20:57:11 +0200
-Subject: [PATCH] Build generator executables natively
-
-They are run during the build and not installed in the end. Without
-this one gets the following error from meson: "ERROR: Can not use
-target gen-unicode-version as a generator because it is cross-built
-and no exe wrapper is defined. You might want to set it to native
-instead."
-
-Closes #87.
-
----
- gen.tab/meson.build | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/gen.tab/meson.build b/gen.tab/meson.build
-index 6006d98..8c21e98 100644
---- a/gen.tab/meson.build
-+++ b/gen.tab/meson.build
-@@ -33,7 +33,8 @@ gen_unicode_version = executable('gen-unicode-version',
- 'gen-unicode-version.c',
- include_directories: incs,
- c_args: native_args,
-- install: false)
-+ install: false,
-+ native: true)
-
- fribidi_unicode_version_h = custom_target('fribidi-unicode-version.h',
- input: files('unidata/ReadMe.txt', 'unidata/BidiMirroring.txt'),
-@@ -67,7 +68,8 @@ foreach tab : tabs
- gen_prog_src, 'packtab.c',
- include_directories: incs,
- c_args: native_args,
-- install: false)
-+ install: false,
-+ native: true)
-
- tab_inc_file = custom_target(gen_prog_name,
- input: gen_prog_inputs,
diff --git a/meta/recipes-support/fribidi/fribidi_1.0.5.bb b/meta/recipes-support/fribidi/fribidi_1.0.10.bb
index 63b2da649c..53d78b4270 100644
--- a/meta/recipes-support/fribidi/fribidi_1.0.5.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 \
- file://meson.patch"
-SRC_URI[md5sum] = "0f97f65038545340316ec0f4bd53df0b"
-SRC_URI[sha256sum] = "6a64f2a687f5c4f203a46fa659f43dd43d1f8b845df8d723107e8a7e6158e4ce"
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.xz \
+ "
+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 16ecc506ce..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,7 +17,7 @@ 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"
diff --git a/meta/recipes-support/gmp/gmp-6.1.2/amd64.patch b/meta/recipes-support/gmp/gmp-6.1.2/amd64.patch
deleted file mode 100644
index 3935589f8b..0000000000
--- a/meta/recipes-support/gmp/gmp-6.1.2/amd64.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Pending
-
-Index: gmp-6.1.2/longlong.h
-===================================================================
---- gmp-6.1.2.orig/longlong.h
-+++ gmp-6.1.2/longlong.h
-@@ -1036,8 +1036,10 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype
- count is only an int. */
- #define count_trailing_zeros(count, x) \
- do { \
-+ UDItype __cbtmp; \
- ASSERT ((x) != 0); \
-- __asm__ ("bsfq %1,%q0" : "=r" (count) : "rm" ((UDItype)(x))); \
-+ __asm__ ("bsfq %1,%0" : "=r" (__cbtmp) : "rm" ((UDItype)(x))); \
-+ (count) = __cbtmp; \
- } while (0)
- #endif /* __amd64__ */
-
diff --git a/meta/recipes-support/gmp/gmp-6.1.2/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch b/meta/recipes-support/gmp/gmp/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch
index 325ffe491f..325ffe491f 100644
--- a/meta/recipes-support/gmp/gmp-6.1.2/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch
+++ b/meta/recipes-support/gmp/gmp/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch
diff --git a/meta/recipes-support/gmp/gmp-6.1.2/0001-confiure.ac-Believe-the-cflags-from-environment.patch b/meta/recipes-support/gmp/gmp/0001-confiure.ac-Believe-the-cflags-from-environment.patch
index 1e47924ccc..56564db505 100644
--- a/meta/recipes-support/gmp/gmp-6.1.2/0001-confiure.ac-Believe-the-cflags-from-environment.patch
+++ b/meta/recipes-support/gmp/gmp/0001-confiure.ac-Believe-the-cflags-from-environment.patch
@@ -18,13 +18,11 @@ Upstream-Status: Inappropriate[OE-Specific]
configure.ac | 11 -----------
1 file changed, 11 deletions(-)
-Index: gmp-6.1.2/configure.ac
-===================================================================
---- gmp-6.1.2.orig/configure.ac
-+++ gmp-6.1.2/configure.ac
-@@ -604,15 +604,6 @@ case $host in
- any_32_testlist="sizeof-long-4"
- any_64_testlist="sizeof-long-8"
+--- a/configure.ac
++++ b/configure.ac
+@@ -625,17 +625,6 @@ case $host in
+ any_32_testlist="sizeof-void*-4"
+ any_64_testlist="sizeof-void*-8"
- # This is needed for clang, which is not content with flags like -mfpu=neon
- # alone.
@@ -33,12 +31,14 @@ Index: gmp-6.1.2/configure.ac
- gcc_cflags_fpmode="-mfloat-abi=softfp" ;;
- *-*-*eabihf)
- gcc_cflags_fpmode="-mfloat-abi=hard" ;;
+- *-*-mingw*)
+- limb_64=longlong ;;
- esac
-
# FIXME: We make mandatory compiler options optional here. We should
# either enforce them, or organise to strip paths as the corresponding
# options fail.
-@@ -746,8 +737,6 @@ case $host in
+@@ -780,8 +769,6 @@ case $host in
;;
*)
path="arm"
diff --git a/meta/recipes-support/gmp/gmp-6.1.2/use-includedir.patch b/meta/recipes-support/gmp/gmp/use-includedir.patch
index 6b089cf39c..d27317cdf6 100644
--- a/meta/recipes-support/gmp/gmp-6.1.2/use-includedir.patch
+++ b/meta/recipes-support/gmp/gmp/use-includedir.patch
@@ -1,4 +1,7 @@
+exec includedir should be pointing to general yocto includdir
+
Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: gmp-6.1.2/Makefile.am
===================================================================
diff --git a/meta/recipes-support/gmp/gmp_6.1.2.bb b/meta/recipes-support/gmp/gmp_6.2.0.bb
index c745dbbfe7..a19c74fca8 100644
--- a/meta/recipes-support/gmp/gmp_6.1.2.bb
+++ b/meta/recipes-support/gmp/gmp_6.2.0.bb
@@ -9,13 +9,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
REVISION = ""
SRC_URI = "https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2 \
- file://amd64.patch \
file://use-includedir.patch \
file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \
file://0001-confiure.ac-Believe-the-cflags-from-environment.patch \
"
-SRC_URI[md5sum] = "8ddbb26dc3bd4e2302984debba1406a5"
-SRC_URI[sha256sum] = "5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2"
+SRC_URI[md5sum] = "c24161e0dd44cae78cd5f67193492a21"
+SRC_URI[sha256sum] = "f51c99cb114deb21a60075ffb494c1a210eb9d7cb729ed042ddb7de9534451ea"
acpaths = ""
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.17.bb b/meta/recipes-support/gnupg/gnupg_2.2.23.bb
index 689cf8a75e..c624b67a0b 100644
--- a/meta/recipes-support/gnupg/gnupg_2.2.17.bb
+++ b/meta/recipes-support/gnupg/gnupg_2.2.23.bb
@@ -18,9 +18,9 @@ SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
"
SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \
file://relocate.patch"
+SRC_URI_append_class-nativesdk = " file://relocate.patch"
-SRC_URI[md5sum] = "1ba2d9b70c377f8e967742064c27a19c"
-SRC_URI[sha256sum] = "afa262868e39b651a2db4c071fba90415154243e83a830ca00516f9a807fd514"
+SRC_URI[sha256sum] = "10b55e49d78b3e49f1edb58d7541ecbdad92ddaeeb885b6f486ed23d1cd1da5c"
EXTRA_OECONF = "--disable-ldap \
--disable-ccid-driver \
@@ -29,6 +29,21 @@ EXTRA_OECONF = "--disable-ldap \
--with-readline=${STAGING_LIBDIR}/.. \
--enable-gpg-is-gpg2 \
"
+
+# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg)
+PACKAGES =+ "${PN}-gpg"
+FILES_${PN}-gpg = " \
+ ${bindir}/gpg \
+ ${bindir}/gpg2 \
+ ${bindir}/gpg-agent \
+"
+
+# Normal package (gnupg) should depend on minimal package (gnupg-gpg)
+# to ensure all tools are included. This is done only in non-native
+# builds. Native builds don't have sub-packages, so appending RDEPENDS
+# in this case breaks recipe parsing.
+RDEPENDS_${PN} += "${@ "" if ("native" in d.getVar("PN")) else (d.getVar("PN") + "-gpg")}"
+
RRECOMMENDS_${PN} = "pinentry"
do_configure_prepend () {
@@ -45,14 +60,21 @@ do_install_append() {
}
do_install_append_class-native() {
- create_wrapper ${D}${bindir}/gpg2 GNUPG_BINDIR=${STAGING_BINDIR_NATIVE}
- create_wrapper ${D}${bindir}/gpgconf GNUPG_BINDIR=${STAGING_BINDIR_NATIVE}
- create_wrapper ${D}${bindir}/gpg-agent GNUPG_BINDIR=${STAGING_BINDIR_NATIVE}
- create_wrapper ${D}${bindir}/gpg-connect-agent GNUPG_BINDIR=${STAGING_BINDIR_NATIVE}
+ create_wrappers ${STAGING_BINDIR_NATIVE}
+}
+
+do_install_append_class-nativesdk() {
+ create_wrappers ${SDKPATHNATIVE}${bindir_nativesdk}
+}
+
+create_wrappers() {
+ for i in gpg2 gpgconf gpg-agent gpg-connect-agent; do
+ create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1
+ done
}
PACKAGECONFIG ??= "gnutls"
PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls"
PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
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/posix-shell.patch b/meta/recipes-support/gnutls/gnutls/posix-shell.patch
deleted file mode 100644
index 938e2d1e18..0000000000
--- a/meta/recipes-support/gnutls/gnutls/posix-shell.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Don't embed the path to the build-time POSIX shell as this will be
-$TMPDIR/hosttools/bash, which is no good on the target.
-
-Instead default to /bin/sh but allow it to be set in the environment.
-
-This isn't really upstreamable but I filed a bug at
-https://gitlab.com/gnutls/gnutls/issues/807 and hope a proper fix will be
-integrated.
-
-Upstream-Status: Inappropriate
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/src/libopts/m4/libopts.m4 b/src/libopts/m4/libopts.m4
-index c6ad738..a62faca 100644
---- a/src/libopts/m4/libopts.m4
-+++ b/src/libopts/m4/libopts.m4
-@@ -112,21 +112,7 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
- AC_CHECK_FUNCS([mmap canonicalize_file_name snprintf strdup strchr \
- strrchr strsignal fchmod fstat chmod])
- AC_PROG_SED
-- [while :
-- do
-- POSIX_SHELL=`which bash`
-- test -x "$POSIX_SHELL" && break
-- POSIX_SHELL=`which dash`
-- test -x "$POSIX_SHELL" && break
-- POSIX_SHELL=/usr/xpg4/bin/sh
-- test -x "$POSIX_SHELL" && break
-- POSIX_SHELL=`/bin/sh -c '
-- exec 2>/dev/null
-- if ! true ; then exit 1 ; fi
-- echo /bin/sh'`
-- test -x "$POSIX_SHELL" && break
-- ]AC_MSG_ERROR([cannot locate a working POSIX shell])[
-- done]
-+ POSIX_SHELL="${POSIX_SHELL:-/bin/sh}"
- AC_DEFINE_UNQUOTED([POSIX_SHELL], ["${POSIX_SHELL}"],
- [define to a working POSIX compliant shell])
- AC_SUBST([POSIX_SHELL])
diff --git a/meta/recipes-support/gnutls/gnutls_3.6.8.bb b/meta/recipes-support/gnutls/gnutls_3.6.14.bb
index c927063f0a..51578b4b3b 100644
--- a/meta/recipes-support/gnutls/gnutls_3.6.8.bb
+++ b/meta/recipes-support/gnutls/gnutls_3.6.14.bb
@@ -19,11 +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://posix-shell.patch \
+ file://0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch \
+ file://CVE-2020-24659.patch \
"
-SRC_URI[md5sum] = "9dcf0aa45d1a42e1b3ca5d39ec7c61a8"
-SRC_URI[sha256sum] = "aa81944e5635de981171772857e72be231a7e0f559ae0292d2737de475383e83"
+SRC_URI[sha256sum] = "5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63"
inherit autotools texinfo pkgconfig gettext lib_package gtk-doc
diff --git a/meta/recipes-support/gnutls/libtasn1/fix-gtkdoc.patch b/meta/recipes-support/gnutls/libtasn1/fix-gtkdoc.patch
deleted file mode 100644
index bfc9b9fca7..0000000000
--- a/meta/recipes-support/gnutls/libtasn1/fix-gtkdoc.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Upstream-Status: Backport [https://gitlab.com/gnutls/libtasn1/merge_requests/49]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From ebd4f871b5241809f6a5b461444a6d331e15c949 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Mon, 9 Sep 2019 13:11:39 +0100
-Subject: [PATCH] doc/reference: don't add empty object hierarchy chapter
-
-The object hierarchy section is empty because there are no GObjects in the
-libtasn1 API. With gtk-doc 1.30 onwards if there are no objects then the object
-hierarchy file won't exist, resulting in a failure when building the
-documentation:
-
-| ../libtasn1-docs.xml:39: element include: XInclude error : could not load ../xml/tree_index.sgml, and no fallback was found
-
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- doc/reference/libtasn1-docs.xml | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/doc/reference/libtasn1-docs.xml b/doc/reference/libtasn1-docs.xml
-index accdb85..f88b888 100644
---- a/doc/reference/libtasn1-docs.xml
-+++ b/doc/reference/libtasn1-docs.xml
-@@ -34,10 +34,6 @@
- <xi:include href="xml/libtasn1.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>
---
-2.20.1
-
diff --git a/meta/recipes-support/gnutls/libtasn1/fix-ldflags.patch b/meta/recipes-support/gnutls/libtasn1/fix-ldflags.patch
deleted file mode 100644
index f18f3c6267..0000000000
--- a/meta/recipes-support/gnutls/libtasn1/fix-ldflags.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From a6f93b7ace347bc4fe29eb4a8fe4383d786cc8d0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
-Date: Tue, 23 Jul 2019 20:44:01 +0200
-Subject: [PATCH] Fix LDFLAGS to AM_LDFLAGS in src/Makefile.am
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Tim Rühsen <tim.ruehsen@gmx.de>
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- src/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 5bf3622..4459767 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -21,7 +21,7 @@ AM_CPPFLAGS = -I$(top_builddir)/lib/includes -I$(top_srcdir)/lib/includes \
- -I$(top_builddir)/lib/gl -I$(top_srcdir)/lib/gl $(CODE_COVERAGE_CPPFLAGS)
-
- LDADD = ../lib/libtasn1.la
--LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
-+AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
-
- bin_PROGRAMS = asn1Parser asn1Coding asn1Decoding
-
---
-2.21.0
-
diff --git a/meta/recipes-support/gnutls/libtasn1_4.14.bb b/meta/recipes-support/gnutls/libtasn1_4.16.0.bb
index ef2c1956a2..18dae6d0c9 100644
--- a/meta/recipes-support/gnutls/libtasn1_4.14.bb
+++ b/meta/recipes-support/gnutls/libtasn1_4.16.0.bb
@@ -10,14 +10,12 @@ LIC_FILES_CHKSUM = "file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
file://dont-depend-on-help2man.patch \
- file://fix-ldflags.patch \
- file://fix-gtkdoc.patch \
"
DEPENDS = "bison-native"
-SRC_URI[md5sum] = "e9918200ed4a778e2b3cbe34c1be4205"
-SRC_URI[sha256sum] = "9e604ba5c5c8ea403487695c2e407405820d98540d9de884d6e844f9a9c5ba08"
+SRC_URI[md5sum] = "531208de3729d42e2af0a32890f08736"
+SRC_URI[sha256sum] = "0e0fb0903839117cb6e3b56e68222771bebf22ad7fc2295a0ed7d576e8d4329d"
inherit autotools texinfo lib_package gtk-doc
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_64.2.bb b/meta/recipes-support/icu/icu_64.2.bb
deleted file mode 100644
index 10bac7aac0..0000000000
--- a/meta/recipes-support/icu/icu_64.2.bb
+++ /dev/null
@@ -1,30 +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]
-
-ICU_PV = "${@icu_download_version(d)}"
-
-# http://errors.yoctoproject.org/Errors/Details/20486/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-BASE_SRC_URI = "http://download.icu-project.org/files/icu4c/${PV}/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] = "a3d18213beec454e3cdec9a3116d6b05"
-SRC_URI[sha256sum] = "627d5d8478e6d96fc8c90fed4851239079a561a6a8b9e48b0892f24e82d31d6c"
-
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
-UPSTREAM_CHECK_URI = "http://download.icu-project.org/files/icu4c/"
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.3.bb b/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb
index 5651a96c66..9d02f5c794 100644
--- a/meta/recipes-support/iso-codes/iso-codes_4.3.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 = "43398a317371e309361ce43072603863cb2f57e1"
+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/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch b/meta/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch
new file mode 100644
index 0000000000..19a858bd75
--- /dev/null
+++ b/meta/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch
@@ -0,0 +1,35 @@
+From 335ef14fc801c9dfbe7e5692dc71cfbe72049d2b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 27 Oct 2019 16:38:52 +0100
+Subject: [PATCH] Native: Don't use build time hardcoded python binary path.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is same patch as used for target build except that we do not use the
+'-S' and '-s' option because '-S' is relatively young [1] and elder build-host
+don't support it [2]
+
+[1] https://github.com/coreutils/coreutils/commit/668306ed86c8c79b0af0db8b9c882654ebb66db2#diff-83d9d52b1f12ac589739ab1334ae4f30
+[2] https://errors.yoctoproject.org/Errors/Details/274743/
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ itstool.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/itstool.in b/itstool.in
+index e64cd34..05d264f 100755
+--- a/itstool.in
++++ b/itstool.in
+@@ -1,4 +1,4 @@
+-#!@PYTHON@ -s
++#!/usr/bin/env python3
+ #
+ # Copyright (c) 2010-2018 Shaun McCance <shaunm@gnome.org>
+ #
+--
+2.21.0
+
diff --git a/meta/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch b/meta/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch
new file mode 100644
index 0000000000..b91105330c
--- /dev/null
+++ b/meta/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch
@@ -0,0 +1,29 @@
+From cd9b56224895576125e91cca317ace8a80f3eb77 Mon Sep 17 00:00:00 2001
+From: Piotr Tworek <tworaz@tworaz.net>
+Date: Sat, 27 Jul 2019 10:19:11 +0200
+Subject: [PATCH] Don't use build time hardcoded python binary path.
+
+This path obviously won't work on target since they refer to build
+machine directory structure. Native builds will also fail if local.conf
+has INHERIT+=rm_work. Instread of hardcoding path to python binary use
+whatever is found in PATH first. This should also allow the tool to use
+python3 binary provided in recipe-sysroot-native.
+
+Upstream-Status: Inappropriate [OE specific]
+---
+ itstool.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/itstool.in b/itstool.in
+index b3c0033..7df2476 100755
+--- a/itstool.in
++++ b/itstool.in
+@@ -1,4 +1,4 @@
+-#!@PYTHON@ -s
++#!/usr/bin/env -S python3 -s
+ #
+ # Copyright (c) 2010-2018 Shaun McCance <shaunm@gnome.org>
+ #
+--
+2.21.0
+
diff --git a/meta/recipes-support/itstool/itstool_2.0.6.bb b/meta/recipes-support/itstool/itstool_2.0.6.bb
new file mode 100644
index 0000000000..5f358f463d
--- /dev/null
+++ b/meta/recipes-support/itstool/itstool_2.0.6.bb
@@ -0,0 +1,21 @@
+SUMMARY = "ITS Tool allows you to translate your XML documents with PO files"
+HOMEPAGE = "http://itstool.org/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59c57b95fd7d0e9e238ebbc7ad47c5a5"
+
+inherit autotools python3native
+
+DEPENDS = "libxml2-native"
+
+SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2"
+SRC_URI_append_class-native = " file://0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch"
+SRC_URI_append_class-nativesdk = " file://0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch"
+SRC_URI_append_class-target = " file://0002-Don-t-use-build-time-hardcoded-python-binary-path.patch"
+
+SRC_URI[md5sum] = "4306eeba4f4aee6b393d14f9c3c57ca1"
+SRC_URI[sha256sum] = "6233cc22726a9a5a83664bf67d1af79549a298c23185d926c3677afa917b92a9"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS_${PN} += "libxml2-python"
+RDEPENDS_${PN}_class-native = ""
diff --git a/meta/recipes-support/libassuan/libassuan_2.5.3.bb b/meta/recipes-support/libassuan/libassuan_2.5.3.bb
index 6fb3d2f3a4..52b4c0f1b9 100644
--- a/meta/recipes-support/libassuan/libassuan_2.5.3.bb
+++ b/meta/recipes-support/libassuan/libassuan_2.5.3.bb
@@ -22,11 +22,15 @@ SRC_URI[sha256sum] = "91bcb0403866b4e7c4bc1cc52ed4c364a9b5414b3994f718c70303f7f7
BINCONFIG = "${bindir}/libassuan-config"
-inherit autotools texinfo binconfig-disabled pkgconfig
+inherit autotools texinfo binconfig-disabled pkgconfig multilib_header
do_configure_prepend () {
# Else these could be used in preference to those in aclocal-copy
rm -f ${S}/m4/*.m4
}
+do_install_append () {
+ oe_multilib_header assuan.h
+}
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libbsd/libbsd_0.10.0.bb b/meta/recipes-support/libbsd/libbsd_0.10.0.bb
index eaf244a3b7..3b9ac5a01f 100644
--- a/meta/recipes-support/libbsd/libbsd_0.10.0.bb
+++ b/meta/recipes-support/libbsd/libbsd_0.10.0.bb
@@ -7,7 +7,7 @@ DESCRIPTION = "This library provides useful functions commonly found on BSD syst
projects with strong BSD origins, without needing to embed the same \
code over and over again on each project."
-HOMEPAGE = "http://libbsd.freedesktop.org/wiki/"
+HOMEPAGE = "https://libbsd.freedesktop.org/wiki/"
# There seems to be more licenses used in the code, I don't think we want to list them all here, complete list:
# OE @ ~/projects/libbsd $ grep ^License: COPYING | sort -u
# License: BSD-2-clause
@@ -31,7 +31,7 @@ LICENSE = "BSD-4-Clause & ISC & PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=2120be0173469a06ed185b688e0e1ae0"
SECTION = "libs"
-SRC_URI = "http://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
+SRC_URI = "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
SRC_URI[md5sum] = "ead96d240d02faa5b921c0aa50c812b5"
SRC_URI[sha256sum] = "34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887"
diff --git a/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.9.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.9.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 739b91fd2e..6d6fa644aa 100644
--- a/meta/recipes-support/libcap-ng/libcap-ng.inc
+++ b/meta/recipes-support/libcap-ng/libcap-ng.inc
@@ -11,7 +11,7 @@ SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \
file://python.patch \
"
-SRC_URI[md5sum] = "2398d695508fab9ce33668c53a89b0e9"
-SRC_URI[sha256sum] = "4a1532bcf3731aade40936f6d6a586ed5a66ca4c7455e1338d1f6c3e09221328"
+SRC_URI[md5sum] = "5883ed10b621c87e29a05cff36d2928e"
+SRC_URI[sha256sum] = "85815c711862d01a440db471f12fba462c9949e923966f5859607e652d9c0ae9"
-BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
+BBCLASSEXTEND = "native nativesdk"
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.9.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.9.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
new file mode 100644
index 0000000000..81fdd2a15c
--- /dev/null
+++ b/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch
@@ -0,0 +1,46 @@
+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
+
+This fails on e.g. centos 7
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ tests/Makefile | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tests/Makefile b/tests/Makefile
+index 876a8b9..93a0e3a 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -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 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
new file mode 100644
index 0000000000..e8f1df98c1
--- /dev/null
+++ b/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch
@@ -0,0 +1,30 @@
+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
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ tests/Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/tests/Makefile b/tests/Makefile
+index bfedbc2..876a8b9 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -19,13 +19,11 @@ sudotest: test run_libcap_launch_test run_libcap_launch_test
+ install: all
+
+ run_psx_test: psx_test
+- ./psx_test
+
+ psx_test: psx_test.c $(DEPS)
+ $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBPSXLIB) -Wl,-wrap,pthread_create
+
+ run_libcap_psx_test: 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
diff --git a/meta/recipes-support/libcap/libcap_2.27.bb b/meta/recipes-support/libcap/libcap_2.43.bb
index 3f64ff7636..c712c25947 100644
--- a/meta/recipes-support/libcap/libcap_2.27.bb
+++ b/meta/recipes-support/libcap/libcap_2.43.bb
@@ -9,9 +9,10 @@ DEPENDS = "hostperl-runtime-native gperf-native"
SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \
file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \
+ file://0002-tests-do-not-run-target-executables.patch \
+ file://0001-tests-do-not-statically-link-a-test.patch \
"
-SRC_URI[md5sum] = "2e8f9fab32eb5ccb37969fe317fd17aa"
-SRC_URI[sha256sum] = "dac1792d0118bee6aae6ba7fb93ff1602c6a9bda812fd63916eee1435b9c486a"
+SRC_URI[sha256sum] = "512a0e5fc4c1e06d472a20da26aa96a9b9bf2a26b23f094f77f1b8da56cc427f"
UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"
@@ -23,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.12.0.bb b/meta/recipes-support/libcheck/libcheck_0.15.2.bb
index 94b0dc1bbd..33e07db93c 100644
--- a/meta/recipes-support/libcheck/libcheck_0.12.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] = "31b17c6075820a434119592941186f70"
-SRC_URI[sha256sum] = "464201098bee00e90f5c4bdfa94a5d3ead8d641f9025b560a27755a83b824234"
+SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a"
UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/"
S = "${WORKDIR}/check-${PV}"
@@ -18,7 +17,12 @@ inherit autotools pkgconfig texinfo
CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk"
RREPLACES_${PN} = "check (<= 0.9.5)"
-RDEPENDS_${PN} += "gawk"
-RDEPENDS_${PN}_class-native = ""
BBCLASSEXTEND = "native nativesdk"
+
+PACKAGES =+ "checkmk"
+
+FILES_checkmk = "${bindir}/checkmk"
+
+RDEPENDS_checkmk = "gawk"
+
diff --git a/meta/recipes-support/libevdev/libevdev/determinism.patch b/meta/recipes-support/libevdev/libevdev/determinism.patch
new file mode 100644
index 0000000000..f6b7fc82d3
--- /dev/null
+++ b/meta/recipes-support/libevdev/libevdev/determinism.patch
@@ -0,0 +1,43 @@
+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.
+
+RP 2020/2/7
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Upstream-Status: Pending
+
+---
+ 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
+@@ -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
+
diff --git a/meta/recipes-support/libevdev/libevdev_1.8.0.bb b/meta/recipes-support/libevdev/libevdev_1.9.1.bb
index 84274987d7..633e0af995 100644
--- a/meta/recipes-support/libevdev/libevdev_1.8.0.bb
+++ b/meta/recipes-support/libevdev/libevdev_1.9.1.bb
@@ -6,8 +6,11 @@ LICENSE = "MIT-X"
LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \
file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1"
-SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz"
-SRC_URI[md5sum] = "879631080be18526737e33b63d848039"
-SRC_URI[sha256sum] = "20d3cae4efd277f485abdf8f2a7c46588e539998b5a08c2c4d368218379d4211"
+SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz \
+ file://determinism.patch"
+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/0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch b/meta/recipes-support/libevent/libevent/0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch
new file mode 100644
index 0000000000..505153d285
--- /dev/null
+++ b/meta/recipes-support/libevent/libevent/0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch
@@ -0,0 +1,37 @@
+From 7c17967b8fd2d18b74a8934fd9bb8212ebd6a271 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 9 Jan 2020 13:22:46 +0100
+Subject: [PATCH] test/regress_dns.c: patch out tests that require a working
+ DNS
+
+This is not guaranteed for ptests under qemu, and in the absence
+of a DNS that can reach to the internet, these tests fail.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ test/regress_dns.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/test/regress_dns.c b/test/regress_dns.c
+index d2084b7..a1a8f3b 100644
+--- a/test/regress_dns.c
++++ b/test/regress_dns.c
+@@ -2394,8 +2394,6 @@ struct testcase_t dns_testcases[] = {
+ { "reissue_disable_when_inactive", dns_reissue_disable_when_inactive_test,
+ TT_FORK|TT_NEED_BASE|TT_NO_LOGS, &basic_setup, NULL },
+ { "inflight", dns_inflight_test, TT_FORK|TT_NEED_BASE, &basic_setup, NULL },
+- { "bufferevent_connect_hostname", test_bufferevent_connect_hostname,
+- TT_FORK|TT_NEED_BASE, &basic_setup, NULL },
+ #ifdef EVENT__HAVE_SETRLIMIT
+ { "bufferevent_connect_hostname_emfile", test_bufferevent_connect_hostname,
+ TT_FORK|TT_NEED_BASE, &basic_setup, (char*)"emfile" },
+@@ -2405,8 +2403,6 @@ struct testcase_t dns_testcases[] = {
+ { "disable_when_inactive_no_ns", dns_disable_when_inactive_no_ns_test,
+ TT_FORK|TT_NEED_BASE|TT_NO_LOGS, &basic_setup, NULL },
+
+- { "initialize_nameservers", dns_initialize_nameservers_test,
+- TT_FORK|TT_NEED_BASE, &basic_setup, NULL },
+ #ifndef _WIN32
+ { "nameservers_no_default", dns_nameservers_no_default_test,
+ TT_FORK|TT_NEED_BASE, &basic_setup, NULL },
diff --git a/meta/recipes-support/libevent/libevent_2.1.11.bb b/meta/recipes-support/libevent/libevent_2.1.12.bb
index f005ab8bda..29e87081d3 100644
--- a/meta/recipes-support/libevent/libevent_2.1.11.bb
+++ b/meta/recipes-support/libevent/libevent_2.1.12.bb
@@ -6,14 +6,13 @@ SECTION = "libs"
LICENSE = "BSD & MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549"
-SRC_URI = " \
- https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \
- file://Makefile-missing-test-dir.patch \
- file://run-ptest \
-"
+SRC_URI = "https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \
+ file://Makefile-missing-test-dir.patch \
+ file://run-ptest \
+ 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/"
@@ -31,9 +30,17 @@ inherit ptest multilib_header
DEPENDS = "zlib"
+PACKAGES_DYNAMIC = "^${PN}-.*$"
+python split_libevent_libs () {
+ do_split_packages(d, '${libdir}', r'^libevent_([a-z]*)-.*\.so\..*', '${PN}-%s', '${SUMMARY} (%s)', prepend=True, allow_links=True)
+}
+PACKAGESPLITFUNCS_prepend = "split_libevent_libs "
+
BBCLASSEXTEND = "native nativesdk"
do_install_append() {
+ rm ${D}${bindir}/event_rpcgen.py
+ rmdir ${D}${bindir}
oe_multilib_header event2/event-config.h
}
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-Address-platforms-with-no-__int128-part2.patch b/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128-part2.patch
new file mode 100644
index 0000000000..6b5b7d4747
--- /dev/null
+++ b/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128-part2.patch
@@ -0,0 +1,34 @@
+Address platforms with no __int128.
+
+Fixes remaining pieces from
+https://github.com/libffi/libffi/commit/6663047f56c2932a6b10a790f4ac6666dd181326
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/powerpc/ffi_linux64.c.org 2019-12-05 14:48:33.140579431 -0800
++++ a/src/powerpc/ffi_linux64.c 2019-12-05 14:53:58.827244495 -0800
+@@ -680,9 +680,9 @@ ffi_prep_args64 (extended_cif *ecif, uns
+ {
+ if (vecarg_count < NUM_VEC_ARG_REGISTERS64
+ && i < nfixedargs)
+- *vec_base.f128++ = *arg.f128++;
++ memcpy (vec_base.f128++, arg.f128, sizeof (float128));
+ else
+- *next_arg.f128 = *arg.f128++;
++ memcpy (next_arg.f128, arg.f128++, sizeof (float128));
+ if (++next_arg.f128 == gpr_end.f128)
+ next_arg.f128 = rest.f128;
+ vecarg_count++;
+@@ -986,9 +986,9 @@ ffi_closure_helper_LINUX64 (ffi_cif *cif
+ do
+ {
+ if (pvec < end_pvec && i < nfixedargs)
+- *to.f128 = *pvec++;
++ memcpy (to.f128, pvec++, sizeof (float128));
+ else
+- *to.f128 = *from.f128;
++ memcpy (to.f128, from.f128, sizeof (float128));
+ to.f128++;
+ from.f128++;
+ }
diff --git a/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch b/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch
new file mode 100644
index 0000000000..2e32a50296
--- /dev/null
+++ b/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch
@@ -0,0 +1,27 @@
+From 68f45b9049dffb54f5a29a3a495ab3dfcf010634 Mon Sep 17 00:00:00 2001
+From: Anthony Green <green@moxielogic.com>
+Date: Fri, 29 Nov 2019 07:00:35 -0500
+Subject: [PATCH] Address platforms with no __int128.
+
+Upstream-Status: Backport [https://github.com/libffi/libffi/commit/6663047f56c2932a6b10a790f4ac6666dd181326]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/powerpc/ffi_linux64.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/powerpc/ffi_linux64.c b/src/powerpc/ffi_linux64.c
+index de0d033..7364770 100644
+--- a/src/powerpc/ffi_linux64.c
++++ b/src/powerpc/ffi_linux64.c
+@@ -547,9 +547,9 @@ ffi_prep_args64 (extended_cif *ecif, unsigned long *const stack)
+ if (next_arg.ul == gpr_end.ul)
+ next_arg.ul = rest.ul;
+ if (vecarg_count < NUM_VEC_ARG_REGISTERS64 && i < nfixedargs)
+- *vec_base.f128++ = **p_argv.f128;
++ memcpy (vec_base.f128++, *p_argv.f128, sizeof (float128));
+ else
+- *next_arg.f128 = **p_argv.f128;
++ memcpy (next_arg.f128, *p_argv.f128, sizeof (float128));
+ if (++next_arg.f128 == gpr_end.f128)
+ next_arg.f128 = rest.f128;
+ vecarg_count++;
diff --git a/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch b/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch
index 00a30a3554..397194bc93 100644
--- a/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch
+++ b/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch
@@ -1,12 +1,11 @@
-From 4149a7627a998731cc246d3f58a36808745d04c8 Mon Sep 17 00:00:00 2001
+From 14e2e74682db3bfcf057688f738fdd842a02ff2d Mon Sep 17 00:00:00 2001
From: Carl Hurd <carl@Carls-MacBook-Pro.local>
Date: Wed, 18 Jul 2018 09:04:32 -0400
Subject: [PATCH] Fixed missed #ifndef for __mips_soft_float
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
----
Upstream-Status: Submitted [https://github.com/libffi/libffi/pull/442]
-
+---
src/mips/o32.S | 2 ++
1 file changed, 2 insertions(+)
@@ -26,6 +25,3 @@ index 44e74cb..799139b 100644
1:
# prepare arguments for ffi_closure_mips_inner_O32
REG_L a0, 4($15) # cif
---
-2.21.0
-
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/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch b/meta/recipes-support/libffi/libffi/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch
new file mode 100644
index 0000000000..8a7aea4311
--- /dev/null
+++ b/meta/recipes-support/libffi/libffi/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch
@@ -0,0 +1,38 @@
+From 4dc6cc961300b9deffb648b1237390a5bea1c6d6 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Thu, 28 Nov 2019 12:42:41 +0000
+Subject: [PATCH] powerpc: fix build failure on power7 and older (#532)
+
+Build failure looks as:
+```
+libtool: compile: powerpc-unknown-linux-gnu-gcc \
+ -O2 -mcpu=powerpc -mtune=powerpc -pipe ... -c src/powerpc/ffi.c ...
+In file included from src/powerpc/ffi.c:33:
+src/powerpc/ffi_powerpc.h:65:9: error: '__int128' is not supported on this target
+ 65 | typedef __int128 float128;
+ | ^~~~~~~~
+```
+
+The fix avoids using __int128 in favour of aligned char[16].
+
+Closes: https://github.com/libffi/libffi/issues/531
+Upstream-Status: Backport [https://github.com/libffi/libffi/commit/01a75ed76ea7e57f1b7a5c183e2b1e890e6aa0fd]
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.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 5ee2a70..8e2f2f0 100644
+--- a/src/powerpc/ffi_powerpc.h
++++ b/src/powerpc/ffi_powerpc.h
+@@ -62,7 +62,7 @@ typedef _Float128 float128;
+ #elif defined(__FLOAT128__)
+ typedef __float128 float128;
+ #else
+-typedef __int128 float128;
++typedef char float128[16] __attribute__((aligned(16)));
+ #endif
+
+ void FFI_HIDDEN ffi_closure_SYSV (void);
diff --git a/meta/recipes-support/libffi/libffi/not-win32.patch b/meta/recipes-support/libffi/libffi/not-win32.patch
index 86a7fc9e40..62daaf4b38 100644
--- a/meta/recipes-support/libffi/libffi/not-win32.patch
+++ b/meta/recipes-support/libffi/libffi/not-win32.patch
@@ -1,3 +1,8 @@
+From 306719369a0d3608b4ff2737de74ae284788a14b Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Thu, 4 Feb 2016 16:22:50 +0000
+Subject: [PATCH] libffi: ensure sysroot paths are not in libffi.pc
+
libffi's configure assumes that cross-compiled builds are complicated and
introduces convoluted path manipulation involving gcc search paths to the
install paths, resulting in paths like -L/usr/lib/../lib/ appearing in
@@ -11,9 +16,15 @@ As this block is generally pointless, disable it.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@intel.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index b764368..d51ce91 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -350,7 +350,7 @@ AC_ARG_ENABLE(multi-os-directory,
+@@ -354,7 +354,7 @@ AC_ARG_ENABLE(multi-os-directory,
# These variables are only ever used when we cross-build to X86_WIN32.
# And we only support this with GCC, so...
@@ -21,4 +32,4 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
+if false; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
- toolexecdir="${exec_prefix}"/'$(target_alias)'
+ toolexecdir='${exec_prefix}'/'$(target_alias)'
diff --git a/meta/recipes-support/libffi/libffi_3.3~rc0.bb b/meta/recipes-support/libffi/libffi_3.3.bb
index 8acb699d4a..9dfdb9e39b 100644
--- a/meta/recipes-support/libffi/libffi_3.3~rc0.bb
+++ b/meta/recipes-support/libffi/libffi_3.3.bb
@@ -8,26 +8,27 @@ library really only provides the lowest, machine dependent layer of a fully feat
A layer must exist above `libffi' that handles type conversions for values passed between the two languages."
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3610bb17683a0089ed64055416b2ae1b"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=492385fe22195952f5b9b197868ba268"
-SRC_URI = "https://github.com/libffi/libffi/releases/download/v3.3-rc0/libffi-3.3-rc0.tar.gz \
+SRC_URI = "https://github.com/libffi/libffi/releases/download/v${PV}/${BPN}-${PV}.tar.gz \
file://not-win32.patch \
file://0001-Fixed-missed-ifndef-for-__mips_soft_float.patch \
+ 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] = "8d2a82a78faf10a5e53c27d986e8f04e"
-SRC_URI[sha256sum] = "403d67aabf1c05157855ea2b1d9950263fb6316536c8c333f5b9ab1eb2f20ecf"
+SRC_URI[md5sum] = "6313289e32f1d38a9df4770b014a2ca7"
+SRC_URI[sha256sum] = "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056"
UPSTREAM_CHECK_URI = "https://github.com/libffi/libffi/releases/"
UPSTREAM_CHECK_REGEX = "libffi-(?P<pver>\d+(\.\d+)+)\.tar"
-UPSTREAM_VERSION_UNKNOWN = "1"
EXTRA_OECONF += "--disable-builddir"
EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'"
inherit autotools texinfo multilib_header
-S = "${WORKDIR}/${BPN}-3.3-rc0"
-
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/libfm/libfm_1.3.1.bb b/meta/recipes-support/libfm/libfm_1.3.1.bb
index 65a6f8e78c..63ae7874b9 100644
--- a/meta/recipes-support/libfm/libfm_1.3.1.bb
+++ b/meta/recipes-support/libfm/libfm_1.3.1.bb
@@ -19,7 +19,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz \
SRC_URI[md5sum] = "c15ecd2c9317e2c385cd3f046d0b61ba"
SRC_URI[sha256sum] = "96b1244bde41ca0eef0332cfb5c67bb16725dfd102128f3e6f74fadc13a1cfe4"
-inherit autotools pkgconfig gtk-doc gettext distro_features_check
+inherit autotools pkgconfig gtk-doc gettext features_check mime mime-xdg
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
EXTRA_OECONF = "--with-gtk=3"
diff --git a/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch b/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch
new file mode 100644
index 0000000000..4df96f0011
--- /dev/null
+++ b/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch
@@ -0,0 +1,90 @@
+From 1374254c2904ab5b18ba4a890856824a102d4705 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Sat, 27 Apr 2019 19:33:28 +0300
+Subject: [PATCH 1/3] Prefetch GCM look-up tables
+
+* cipher/cipher-gcm.c (prefetch_table, do_prefetch_tables)
+(prefetch_tables): New.
+(ghash_internal): Call prefetch_tables.
+--
+
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+
+Upstream-Status: Backport
+[https://github.com/gpg/libgcrypt/commit/1374254c2904ab5b18ba4a890856824a102d4705]
+
+CVE: CVE-2019-12904
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cipher/cipher-gcm.c | 33 +++++++++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/cipher/cipher-gcm.c b/cipher/cipher-gcm.c
+index c19f09f..11f119a 100644
+--- a/cipher/cipher-gcm.c
++++ b/cipher/cipher-gcm.c
+@@ -118,6 +118,34 @@ static const u16 gcmR[256] = {
+ 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
+ };
+
++static inline
++void prefetch_table(const void *tab, size_t len)
++{
++ const volatile byte *vtab = tab;
++ size_t i;
++
++ for (i = 0; i < len; i += 8 * 32)
++ {
++ (void)vtab[i + 0 * 32];
++ (void)vtab[i + 1 * 32];
++ (void)vtab[i + 2 * 32];
++ (void)vtab[i + 3 * 32];
++ (void)vtab[i + 4 * 32];
++ (void)vtab[i + 5 * 32];
++ (void)vtab[i + 6 * 32];
++ (void)vtab[i + 7 * 32];
++ }
++
++ (void)vtab[len - 1];
++}
++
++static inline void
++do_prefetch_tables (const void *gcmM, size_t gcmM_size)
++{
++ prefetch_table(gcmM, gcmM_size);
++ prefetch_table(gcmR, sizeof(gcmR));
++}
++
+ #ifdef GCM_TABLES_USE_U64
+ static void
+ bshift (u64 * b0, u64 * b1)
+@@ -365,6 +393,8 @@ do_ghash (unsigned char *result, const unsigned char *buf, const u32 *gcmM)
+ #define fillM(c) \
+ do_fillM (c->u_mode.gcm.u_ghash_key.key, c->u_mode.gcm.gcm_table)
+ #define GHASH(c, result, buf) do_ghash (result, buf, c->u_mode.gcm.gcm_table)
++#define prefetch_tables(c) \
++ do_prefetch_tables(c->u_mode.gcm.gcm_table, sizeof(c->u_mode.gcm.gcm_table))
+
+ #else
+
+@@ -430,6 +460,7 @@ do_ghash (unsigned char *hsub, unsigned char *result, const unsigned char *buf)
+
+ #define fillM(c) do { } while (0)
+ #define GHASH(c, result, buf) do_ghash (c->u_mode.gcm.u_ghash_key.key, result, buf)
++#define prefetch_tables(c) do {} while (0)
+
+ #endif /* !GCM_USE_TABLES */
+
+@@ -441,6 +472,8 @@ ghash_internal (gcry_cipher_hd_t c, byte *result, const byte *buf,
+ const unsigned int blocksize = GCRY_GCM_BLOCK_LEN;
+ unsigned int burn = 0;
+
++ prefetch_tables (c);
++
+ while (nblocks)
+ {
+ burn = GHASH (c, result, buf);
+--
+2.7.4
+
diff --git a/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch b/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
index d41c3de3b6..cd8a5993b4 100644
--- a/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch
+++ b/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
@@ -1,41 +1,26 @@
-From 72b9e9040d58c15f0302bd8abda28179f04e1c5f Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 16 Aug 2017 10:43:18 +0800
-Subject: [PATCH 1/4] Add and use pkg-config for libgcrypt instead of -config
- scripts.
+From bee26d7c4ea0b4a397c289b819b89e78bc325ba0 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <trevor.gamblin@windriver.com>
+Date: Tue, 29 Oct 2019 14:08:32 -0400
+Subject: [PATCH] libgcrypt: fix m4 file for oe-core
-Upstream-Status: Denied [upstream have indicated they don't want a
-pkg-config dependency]
+Modify libgcrypt pkgconfig specifically for oe-core. Changes
+are based on a previous patch from RP, using wiggle to
+incorporate the parts that aren't in the upstream pkgconfig
+settings.
-RP 2014/5/22
+Upstream-Status: Inappropriate [oe-specific]
-Rebase to 1.8.0
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- configure.ac | 1 +
- src/libgcrypt.m4 | 71 +++--------------------------------------------------
- src/libgcrypt.pc.in | 33 +++++++++++++++++++++++++
- 3 files changed, 38 insertions(+), 67 deletions(-)
- create mode 100644 src/libgcrypt.pc.in
+ src/libgcrypt.m4 | 90 +++---------------------------------------------
+ 1 file changed, 4 insertions(+), 86 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index bbe8104..3d2de73 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2607,6 +2607,7 @@ random/Makefile
- doc/Makefile
- src/Makefile
- src/gcrypt.h
-+src/libgcrypt.pc
- src/libgcrypt-config
- src/versioninfo.rc
- tests/Makefile
diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4
-index c67cfec..4ea5f2c 100644
+index 37dfbea2..3d2e90a8 100644
--- a/src/libgcrypt.m4
+++ b/src/libgcrypt.m4
-@@ -29,30 +29,6 @@ dnl is added to the gpg_config_script_warn variable.
+@@ -29,41 +29,6 @@ dnl is added to the gpg_config_script_warn variable.
dnl
AC_DEFUN([AM_PATH_LIBGCRYPT],
[ AC_REQUIRE([AC_CANONICAL_HOST])
@@ -46,8 +31,20 @@ index c67cfec..4ea5f2c 100644
- if test x"${LIBGCRYPT_CONFIG}" = x ; then
- if test x"${libgcrypt_config_prefix}" != x ; then
- LIBGCRYPT_CONFIG="${libgcrypt_config_prefix}/bin/libgcrypt-config"
-- else
-- case "${SYSROOT}" in
+- fi
+- fi
+-
+- use_gpgrt_config=""
+- if test x"${LIBGCRYPT_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
+- if $GPGRT_CONFIG libgcrypt --exists; then
+- LIBGCRYPT_CONFIG="$GPGRT_CONFIG libgcrypt"
+- AC_MSG_NOTICE([Use gpgrt-config as libgcrypt-config])
+- use_gpgrt_config=yes
+- fi
+- fi
+- if test -z "$use_gpgrt_config"; then
+- if test x"${LIBGCRYPT_CONFIG}" = x ; then
+- case "${SYSROOT}" in
- /*)
- if test -x "${SYSROOT}/bin/libgcrypt-config" ; then
- LIBGCRYPT_CONFIG="${SYSROOT}/bin/libgcrypt-config"
@@ -58,15 +55,14 @@ index c67cfec..4ea5f2c 100644
- *)
- AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
- ;;
-- esac
-- fi
+- esac
+- fi
+- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
- fi
--
-- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
+
tmp=ifelse([$1], ,1:1.2.0,$1)
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
- req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
-@@ -62,48 +38,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+@@ -74,56 +39,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
min_libgcrypt_version="$tmp"
fi
@@ -79,7 +75,11 @@ index c67cfec..4ea5f2c 100644
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
- req_micro=`echo $min_libgcrypt_version | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
+- if test -z "$use_gpgrt_config"; then
+- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
+- else
+- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --modversion`
+- fi
- major=`echo $libgcrypt_config_version | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
- minor=`echo $libgcrypt_config_version | \
@@ -113,24 +113,29 @@ index c67cfec..4ea5f2c 100644
# If we have a recent libgcrypt, we should also check that the
# API is compatible
if test "$req_libgcrypt_api" -gt 0 ; then
-- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
+- if test -z "$use_gpgrt_config"; then
+- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
+- else
+- tmp=`$LIBGCRYPT_CONFIG --variable=api_version 2>/dev/null || echo 0`
+- fi
+ tmp=`$PKG_CONFIG --variable=api_version libgcrypt`
if test "$tmp" -gt 0 ; then
AC_MSG_CHECKING([LIBGCRYPT API version])
if test "$req_libgcrypt_api" -eq "$tmp" ; then
-@@ -116,10 +57,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+@@ -136,11 +58,9 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
fi
fi
if test $ok = yes; then
- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
ifelse([$2], , :, [$2])
-- libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none`
-+ libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt`
- if test x"$libgcrypt_config_host" != xnone ; then
- if test x"$libgcrypt_config_host" != x"$host" ; then
- AC_MSG_WARN([[
-@@ -134,8 +73,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+ if test -z "$use_gpgrt_config"; then
+- libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none`
++ libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt`
+ else
+ libgcrypt_config_host=`$LIBGCRYPT_CONFIG --variable=host 2>/dev/null || echo none`
+ fi
+@@ -158,8 +78,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
fi
fi
else
@@ -139,45 +144,6 @@ index c67cfec..4ea5f2c 100644
ifelse([$3], , :, [$3])
fi
AC_SUBST(LIBGCRYPT_CFLAGS)
-diff --git a/src/libgcrypt.pc.in b/src/libgcrypt.pc.in
-new file mode 100644
-index 0000000..2fc8f53
---- /dev/null
-+++ b/src/libgcrypt.pc.in
-@@ -0,0 +1,33 @@
-+# Process this file with autoconf to produce a pkg-config metadata file.
-+# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation
-+# Author: Simon Josefsson
-+#
-+# This file is free software; as a special exception the author gives
-+# unlimited permission to copy and/or distribute it, with or without
-+# modifications, as long as this notice is preserved.
-+#
-+# This file is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
-+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-+
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+# API info
-+api_version=@LIBGCRYPT_CONFIG_API_VERSION@
-+host=@LIBGCRYPT_CONFIG_HOST@
-+
-+# Misc information.
-+symmetric_ciphers=@LIBGCRYPT_CIPHERS@
-+asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@
-+digests=@LIBGCRYPT_DIGESTS@
-+
-+Name: libgcrypt
-+Description: GNU crypto library
-+URL: http://www.gnupg.org
-+Version: @VERSION@
-+Libs: -L${libdir} -lgcrypt
-+Libs.private: -L${libdir} -lgpg-error
-+Cflags: -I${includedir}
--
-1.8.3.1
+2.17.1
diff --git a/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch b/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch
new file mode 100644
index 0000000000..c82c5b5c8a
--- /dev/null
+++ b/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch
@@ -0,0 +1,332 @@
+From 119348dd9aa52ab229afb5e2d3342d2b76fe81bf Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Fri, 31 May 2019 17:18:09 +0300
+Subject: [PATCH 2/3] AES: move look-up tables to .data section and unshare between
+ processes
+
+* cipher/rijndael-internal.h (ATTR_ALIGNED_64): New.
+* cipher/rijndael-tables.h (encT): Move to 'enc_tables' structure.
+(enc_tables): New structure for encryption table with counters before
+and after.
+(encT): New macro.
+(dec_tables): Add counters before and after encryption table; Move
+from .rodata to .data section.
+(do_encrypt): Change 'encT' to 'enc_tables.T'.
+(do_decrypt): Change '&dec_tables' to 'dec_tables.T'.
+* cipher/cipher-gcm.c (prefetch_table): Make inline; Handle input
+with length not multiple of 256.
+(prefetch_enc, prefetch_dec): Modify pre- and post-table counters
+to unshare look-up table pages between processes.
+--
+
+GnuPG-bug-id: 4541
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+
+Upstream-Status: Backport
+[https://github.com/gpg/libgcrypt/commit/daedbbb5541cd8ecda1459d3b843ea4d92788762]
+
+CVE: CVE-2019-12904
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cipher/rijndael-internal.h | 4 +-
+ cipher/rijndael-tables.h | 155 +++++++++++++++++++++++++--------------------
+ cipher/rijndael.c | 35 ++++++++--
+ 3 files changed, 118 insertions(+), 76 deletions(-)
+
+diff --git a/cipher/rijndael-internal.h b/cipher/rijndael-internal.h
+index 160fb8c..a62d4b7 100644
+--- a/cipher/rijndael-internal.h
++++ b/cipher/rijndael-internal.h
+@@ -29,11 +29,13 @@
+ #define BLOCKSIZE (128/8)
+
+
+-/* Helper macro to force alignment to 16 bytes. */
++/* Helper macro to force alignment to 16 or 64 bytes. */
+ #ifdef HAVE_GCC_ATTRIBUTE_ALIGNED
+ # define ATTR_ALIGNED_16 __attribute__ ((aligned (16)))
++# define ATTR_ALIGNED_64 __attribute__ ((aligned (64)))
+ #else
+ # define ATTR_ALIGNED_16
++# define ATTR_ALIGNED_64
+ #endif
+
+
+diff --git a/cipher/rijndael-tables.h b/cipher/rijndael-tables.h
+index 8359470..b54d959 100644
+--- a/cipher/rijndael-tables.h
++++ b/cipher/rijndael-tables.h
+@@ -21,80 +21,98 @@
+ /* To keep the actual implementation at a readable size we use this
+ include file to define the tables. */
+
+-static const u32 encT[256] =
++static struct
++{
++ volatile u32 counter_head;
++ u32 cacheline_align[64 / 4 - 1];
++ u32 T[256];
++ volatile u32 counter_tail;
++} enc_tables ATTR_ALIGNED_64 =
+ {
+- 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6,
+- 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
+- 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56,
+- 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
+- 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa,
+- 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
+- 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45,
+- 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
+- 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c,
+- 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
+- 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9,
+- 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
+- 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d,
+- 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
+- 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df,
+- 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
+- 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34,
+- 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
+- 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d,
+- 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
+- 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1,
+- 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
+- 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972,
+- 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
+- 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed,
+- 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
+- 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe,
+- 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
+- 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05,
+- 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
+- 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142,
+- 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
+- 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3,
+- 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
+- 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a,
+- 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
+- 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3,
+- 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
+- 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428,
+- 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
+- 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14,
+- 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
+- 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4,
+- 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
+- 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda,
+- 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
+- 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf,
+- 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
+- 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c,
+- 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
+- 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e,
+- 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
+- 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc,
+- 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
+- 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969,
+- 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
+- 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122,
+- 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
+- 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9,
+- 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
+- 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a,
+- 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
+- 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e,
+- 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c
++ 0,
++ { 0, },
++ {
++ 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6,
++ 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
++ 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56,
++ 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
++ 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa,
++ 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
++ 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45,
++ 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
++ 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c,
++ 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
++ 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9,
++ 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
++ 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d,
++ 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
++ 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df,
++ 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
++ 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34,
++ 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
++ 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d,
++ 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
++ 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1,
++ 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
++ 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972,
++ 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
++ 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed,
++ 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
++ 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe,
++ 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
++ 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05,
++ 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
++ 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142,
++ 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
++ 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3,
++ 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
++ 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a,
++ 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
++ 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3,
++ 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
++ 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428,
++ 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
++ 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14,
++ 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
++ 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4,
++ 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
++ 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda,
++ 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
++ 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf,
++ 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
++ 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c,
++ 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
++ 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e,
++ 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
++ 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc,
++ 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
++ 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969,
++ 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
++ 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122,
++ 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
++ 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9,
++ 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
++ 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a,
++ 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
++ 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e,
++ 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c
++ },
++ 0
+ };
+
+-static const struct
++#define encT enc_tables.T
++
++static struct
+ {
++ volatile u32 counter_head;
++ u32 cacheline_align[64 / 4 - 1];
+ u32 T[256];
+ byte inv_sbox[256];
+-} dec_tables =
++ volatile u32 counter_tail;
++} dec_tables ATTR_ALIGNED_64 =
+ {
++ 0,
++ { 0, },
+ {
+ 0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a,
+ 0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b,
+@@ -194,7 +212,8 @@ static const struct
+ 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61,
+ 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,
+ 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+- }
++ },
++ 0
+ };
+
+ #define decT dec_tables.T
+diff --git a/cipher/rijndael.c b/cipher/rijndael.c
+index 8637195..d0edab2 100644
+--- a/cipher/rijndael.c
++++ b/cipher/rijndael.c
+@@ -227,11 +227,11 @@ static const char *selftest(void);
+
+
+ /* Prefetching for encryption/decryption tables. */
+-static void prefetch_table(const volatile byte *tab, size_t len)
++static inline void prefetch_table(const volatile byte *tab, size_t len)
+ {
+ size_t i;
+
+- for (i = 0; i < len; i += 8 * 32)
++ for (i = 0; len - i >= 8 * 32; i += 8 * 32)
+ {
+ (void)tab[i + 0 * 32];
+ (void)tab[i + 1 * 32];
+@@ -242,17 +242,37 @@ static void prefetch_table(const volatile byte *tab, size_t len)
+ (void)tab[i + 6 * 32];
+ (void)tab[i + 7 * 32];
+ }
++ for (; i < len; i += 32)
++ {
++ (void)tab[i];
++ }
+
+ (void)tab[len - 1];
+ }
+
+ static void prefetch_enc(void)
+ {
+- prefetch_table((const void *)encT, sizeof(encT));
++ /* Modify counters to trigger copy-on-write and unsharing if physical pages
++ * of look-up table are shared between processes. Modifying counters also
++ * causes checksums for pages to change and hint same-page merging algorithm
++ * that these pages are frequently changing. */
++ enc_tables.counter_head++;
++ enc_tables.counter_tail++;
++
++ /* Prefetch look-up tables to cache. */
++ prefetch_table((const void *)&enc_tables, sizeof(enc_tables));
+ }
+
+ static void prefetch_dec(void)
+ {
++ /* Modify counters to trigger copy-on-write and unsharing if physical pages
++ * of look-up table are shared between processes. Modifying counters also
++ * causes checksums for pages to change and hint same-page merging algorithm
++ * that these pages are frequently changing. */
++ dec_tables.counter_head++;
++ dec_tables.counter_tail++;
++
++ /* Prefetch look-up tables to cache. */
+ prefetch_table((const void *)&dec_tables, sizeof(dec_tables));
+ }
+
+@@ -737,7 +757,7 @@ do_encrypt (const RIJNDAEL_context *ctx,
+ #ifdef USE_AMD64_ASM
+ # ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS
+ return _gcry_aes_amd64_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds,
+- encT);
++ enc_tables.T);
+ # else
+ /* Call SystemV ABI function without storing non-volatile XMM registers,
+ * as target function does not use vector instruction sets. */
+@@ -757,7 +777,8 @@ do_encrypt (const RIJNDAEL_context *ctx,
+ return ret;
+ # endif /* HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS */
+ #elif defined(USE_ARM_ASM)
+- return _gcry_aes_arm_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds, encT);
++ return _gcry_aes_arm_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds,
++ enc_tables.T);
+ #else
+ return do_encrypt_fn (ctx, bx, ax);
+ #endif /* !USE_ARM_ASM && !USE_AMD64_ASM*/
+@@ -1120,7 +1141,7 @@ do_decrypt (const RIJNDAEL_context *ctx, unsigned char *bx,
+ #ifdef USE_AMD64_ASM
+ # ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS
+ return _gcry_aes_amd64_decrypt_block(ctx->keyschdec, bx, ax, ctx->rounds,
+- &dec_tables);
++ dec_tables.T);
+ # else
+ /* Call SystemV ABI function without storing non-volatile XMM registers,
+ * as target function does not use vector instruction sets. */
+@@ -1141,7 +1162,7 @@ do_decrypt (const RIJNDAEL_context *ctx, unsigned char *bx,
+ # endif /* HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS */
+ #elif defined(USE_ARM_ASM)
+ return _gcry_aes_arm_decrypt_block(ctx->keyschdec, bx, ax, ctx->rounds,
+- &dec_tables);
++ dec_tables.T);
+ #else
+ return do_decrypt_fn (ctx, bx, ax);
+ #endif /*!USE_ARM_ASM && !USE_AMD64_ASM*/
+--
+2.7.4
+
diff --git a/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch b/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch
new file mode 100644
index 0000000000..b580b7b13c
--- /dev/null
+++ b/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch
@@ -0,0 +1,178 @@
+From a4c561aab1014c3630bc88faf6f5246fee16b020 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Fri, 31 May 2019 17:27:25 +0300
+Subject: [PATCH 3/3] GCM: move look-up table to .data section and unshare
+ between processes
+
+* cipher/cipher-gcm.c (ATTR_ALIGNED_64): New.
+(gcmR): Move to 'gcm_table' structure.
+(gcm_table): New structure for look-up table with counters before and
+after.
+(gcmR): New macro.
+(prefetch_table): Handle input with length not multiple of 256.
+(do_prefetch_tables): Modify pre- and post-table counters to unshare
+look-up table pages between processes.
+--
+
+GnuPG-bug-id: 4541
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+
+Upstream-Status: Backport
+[https://github.com/gpg/libgcrypt/commit/a4c561aab1014c3630bc88faf6f5246fee16b020]
+
+CVE: CVE-2019-12904
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cipher/cipher-gcm.c | 106 ++++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 70 insertions(+), 36 deletions(-)
+
+diff --git a/cipher/cipher-gcm.c b/cipher/cipher-gcm.c
+index 11f119a..194e2ec 100644
+--- a/cipher/cipher-gcm.c
++++ b/cipher/cipher-gcm.c
+@@ -30,6 +30,14 @@
+ #include "./cipher-internal.h"
+
+
++/* Helper macro to force alignment to 16 or 64 bytes. */
++#ifdef HAVE_GCC_ATTRIBUTE_ALIGNED
++# define ATTR_ALIGNED_64 __attribute__ ((aligned (64)))
++#else
++# define ATTR_ALIGNED_64
++#endif
++
++
+ #ifdef GCM_USE_INTEL_PCLMUL
+ extern void _gcry_ghash_setup_intel_pclmul (gcry_cipher_hd_t c);
+
+@@ -83,40 +91,54 @@ ghash_armv7_neon (gcry_cipher_hd_t c, byte *result, const byte *buf,
+
+
+ #ifdef GCM_USE_TABLES
+-static const u16 gcmR[256] = {
+- 0x0000, 0x01c2, 0x0384, 0x0246, 0x0708, 0x06ca, 0x048c, 0x054e,
+- 0x0e10, 0x0fd2, 0x0d94, 0x0c56, 0x0918, 0x08da, 0x0a9c, 0x0b5e,
+- 0x1c20, 0x1de2, 0x1fa4, 0x1e66, 0x1b28, 0x1aea, 0x18ac, 0x196e,
+- 0x1230, 0x13f2, 0x11b4, 0x1076, 0x1538, 0x14fa, 0x16bc, 0x177e,
+- 0x3840, 0x3982, 0x3bc4, 0x3a06, 0x3f48, 0x3e8a, 0x3ccc, 0x3d0e,
+- 0x3650, 0x3792, 0x35d4, 0x3416, 0x3158, 0x309a, 0x32dc, 0x331e,
+- 0x2460, 0x25a2, 0x27e4, 0x2626, 0x2368, 0x22aa, 0x20ec, 0x212e,
+- 0x2a70, 0x2bb2, 0x29f4, 0x2836, 0x2d78, 0x2cba, 0x2efc, 0x2f3e,
+- 0x7080, 0x7142, 0x7304, 0x72c6, 0x7788, 0x764a, 0x740c, 0x75ce,
+- 0x7e90, 0x7f52, 0x7d14, 0x7cd6, 0x7998, 0x785a, 0x7a1c, 0x7bde,
+- 0x6ca0, 0x6d62, 0x6f24, 0x6ee6, 0x6ba8, 0x6a6a, 0x682c, 0x69ee,
+- 0x62b0, 0x6372, 0x6134, 0x60f6, 0x65b8, 0x647a, 0x663c, 0x67fe,
+- 0x48c0, 0x4902, 0x4b44, 0x4a86, 0x4fc8, 0x4e0a, 0x4c4c, 0x4d8e,
+- 0x46d0, 0x4712, 0x4554, 0x4496, 0x41d8, 0x401a, 0x425c, 0x439e,
+- 0x54e0, 0x5522, 0x5764, 0x56a6, 0x53e8, 0x522a, 0x506c, 0x51ae,
+- 0x5af0, 0x5b32, 0x5974, 0x58b6, 0x5df8, 0x5c3a, 0x5e7c, 0x5fbe,
+- 0xe100, 0xe0c2, 0xe284, 0xe346, 0xe608, 0xe7ca, 0xe58c, 0xe44e,
+- 0xef10, 0xeed2, 0xec94, 0xed56, 0xe818, 0xe9da, 0xeb9c, 0xea5e,
+- 0xfd20, 0xfce2, 0xfea4, 0xff66, 0xfa28, 0xfbea, 0xf9ac, 0xf86e,
+- 0xf330, 0xf2f2, 0xf0b4, 0xf176, 0xf438, 0xf5fa, 0xf7bc, 0xf67e,
+- 0xd940, 0xd882, 0xdac4, 0xdb06, 0xde48, 0xdf8a, 0xddcc, 0xdc0e,
+- 0xd750, 0xd692, 0xd4d4, 0xd516, 0xd058, 0xd19a, 0xd3dc, 0xd21e,
+- 0xc560, 0xc4a2, 0xc6e4, 0xc726, 0xc268, 0xc3aa, 0xc1ec, 0xc02e,
+- 0xcb70, 0xcab2, 0xc8f4, 0xc936, 0xcc78, 0xcdba, 0xcffc, 0xce3e,
+- 0x9180, 0x9042, 0x9204, 0x93c6, 0x9688, 0x974a, 0x950c, 0x94ce,
+- 0x9f90, 0x9e52, 0x9c14, 0x9dd6, 0x9898, 0x995a, 0x9b1c, 0x9ade,
+- 0x8da0, 0x8c62, 0x8e24, 0x8fe6, 0x8aa8, 0x8b6a, 0x892c, 0x88ee,
+- 0x83b0, 0x8272, 0x8034, 0x81f6, 0x84b8, 0x857a, 0x873c, 0x86fe,
+- 0xa9c0, 0xa802, 0xaa44, 0xab86, 0xaec8, 0xaf0a, 0xad4c, 0xac8e,
+- 0xa7d0, 0xa612, 0xa454, 0xa596, 0xa0d8, 0xa11a, 0xa35c, 0xa29e,
+- 0xb5e0, 0xb422, 0xb664, 0xb7a6, 0xb2e8, 0xb32a, 0xb16c, 0xb0ae,
+- 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
+-};
++static struct
++{
++ volatile u32 counter_head;
++ u32 cacheline_align[64 / 4 - 1];
++ u16 R[256];
++ volatile u32 counter_tail;
++} gcm_table ATTR_ALIGNED_64 =
++ {
++ 0,
++ { 0, },
++ {
++ 0x0000, 0x01c2, 0x0384, 0x0246, 0x0708, 0x06ca, 0x048c, 0x054e,
++ 0x0e10, 0x0fd2, 0x0d94, 0x0c56, 0x0918, 0x08da, 0x0a9c, 0x0b5e,
++ 0x1c20, 0x1de2, 0x1fa4, 0x1e66, 0x1b28, 0x1aea, 0x18ac, 0x196e,
++ 0x1230, 0x13f2, 0x11b4, 0x1076, 0x1538, 0x14fa, 0x16bc, 0x177e,
++ 0x3840, 0x3982, 0x3bc4, 0x3a06, 0x3f48, 0x3e8a, 0x3ccc, 0x3d0e,
++ 0x3650, 0x3792, 0x35d4, 0x3416, 0x3158, 0x309a, 0x32dc, 0x331e,
++ 0x2460, 0x25a2, 0x27e4, 0x2626, 0x2368, 0x22aa, 0x20ec, 0x212e,
++ 0x2a70, 0x2bb2, 0x29f4, 0x2836, 0x2d78, 0x2cba, 0x2efc, 0x2f3e,
++ 0x7080, 0x7142, 0x7304, 0x72c6, 0x7788, 0x764a, 0x740c, 0x75ce,
++ 0x7e90, 0x7f52, 0x7d14, 0x7cd6, 0x7998, 0x785a, 0x7a1c, 0x7bde,
++ 0x6ca0, 0x6d62, 0x6f24, 0x6ee6, 0x6ba8, 0x6a6a, 0x682c, 0x69ee,
++ 0x62b0, 0x6372, 0x6134, 0x60f6, 0x65b8, 0x647a, 0x663c, 0x67fe,
++ 0x48c0, 0x4902, 0x4b44, 0x4a86, 0x4fc8, 0x4e0a, 0x4c4c, 0x4d8e,
++ 0x46d0, 0x4712, 0x4554, 0x4496, 0x41d8, 0x401a, 0x425c, 0x439e,
++ 0x54e0, 0x5522, 0x5764, 0x56a6, 0x53e8, 0x522a, 0x506c, 0x51ae,
++ 0x5af0, 0x5b32, 0x5974, 0x58b6, 0x5df8, 0x5c3a, 0x5e7c, 0x5fbe,
++ 0xe100, 0xe0c2, 0xe284, 0xe346, 0xe608, 0xe7ca, 0xe58c, 0xe44e,
++ 0xef10, 0xeed2, 0xec94, 0xed56, 0xe818, 0xe9da, 0xeb9c, 0xea5e,
++ 0xfd20, 0xfce2, 0xfea4, 0xff66, 0xfa28, 0xfbea, 0xf9ac, 0xf86e,
++ 0xf330, 0xf2f2, 0xf0b4, 0xf176, 0xf438, 0xf5fa, 0xf7bc, 0xf67e,
++ 0xd940, 0xd882, 0xdac4, 0xdb06, 0xde48, 0xdf8a, 0xddcc, 0xdc0e,
++ 0xd750, 0xd692, 0xd4d4, 0xd516, 0xd058, 0xd19a, 0xd3dc, 0xd21e,
++ 0xc560, 0xc4a2, 0xc6e4, 0xc726, 0xc268, 0xc3aa, 0xc1ec, 0xc02e,
++ 0xcb70, 0xcab2, 0xc8f4, 0xc936, 0xcc78, 0xcdba, 0xcffc, 0xce3e,
++ 0x9180, 0x9042, 0x9204, 0x93c6, 0x9688, 0x974a, 0x950c, 0x94ce,
++ 0x9f90, 0x9e52, 0x9c14, 0x9dd6, 0x9898, 0x995a, 0x9b1c, 0x9ade,
++ 0x8da0, 0x8c62, 0x8e24, 0x8fe6, 0x8aa8, 0x8b6a, 0x892c, 0x88ee,
++ 0x83b0, 0x8272, 0x8034, 0x81f6, 0x84b8, 0x857a, 0x873c, 0x86fe,
++ 0xa9c0, 0xa802, 0xaa44, 0xab86, 0xaec8, 0xaf0a, 0xad4c, 0xac8e,
++ 0xa7d0, 0xa612, 0xa454, 0xa596, 0xa0d8, 0xa11a, 0xa35c, 0xa29e,
++ 0xb5e0, 0xb422, 0xb664, 0xb7a6, 0xb2e8, 0xb32a, 0xb16c, 0xb0ae,
++ 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
++ },
++ 0
++ };
++
++#define gcmR gcm_table.R
+
+ static inline
+ void prefetch_table(const void *tab, size_t len)
+@@ -124,7 +146,7 @@ void prefetch_table(const void *tab, size_t len)
+ const volatile byte *vtab = tab;
+ size_t i;
+
+- for (i = 0; i < len; i += 8 * 32)
++ for (i = 0; len - i >= 8 * 32; i += 8 * 32)
+ {
+ (void)vtab[i + 0 * 32];
+ (void)vtab[i + 1 * 32];
+@@ -135,6 +157,10 @@ void prefetch_table(const void *tab, size_t len)
+ (void)vtab[i + 6 * 32];
+ (void)vtab[i + 7 * 32];
+ }
++ for (; i < len; i += 32)
++ {
++ (void)vtab[i];
++ }
+
+ (void)vtab[len - 1];
+ }
+@@ -142,8 +168,16 @@ void prefetch_table(const void *tab, size_t len)
+ static inline void
+ do_prefetch_tables (const void *gcmM, size_t gcmM_size)
+ {
++ /* Modify counters to trigger copy-on-write and unsharing if physical pages
++ * of look-up table are shared between processes. Modifying counters also
++ * causes checksums for pages to change and hint same-page merging algorithm
++ * that these pages are frequently changing. */
++ gcm_table.counter_head++;
++ gcm_table.counter_tail++;
++
++ /* Prefetch look-up tables to cache. */
+ prefetch_table(gcmM, gcmM_size);
+- prefetch_table(gcmR, sizeof(gcmR));
++ prefetch_table(&gcm_table, sizeof(gcm_table));
+ }
+
+ #ifdef GCM_TABLES_USE_U64
+--
+2.7.4
+
diff --git a/meta/recipes-support/libgcrypt/files/determinism.patch b/meta/recipes-support/libgcrypt/files/determinism.patch
new file mode 100644
index 0000000000..ad0b8c7950
--- /dev/null
+++ b/meta/recipes-support/libgcrypt/files/determinism.patch
@@ -0,0 +1,32 @@
+gnutls detects our outer git trees and injects that revision into its objects.
+That isn't deterministic so stop it. Also ensure we're not marked as a development
+build as its git detection is faulty.
+
+RP 2020/2/6
+
+Upstream-Status: Pending
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+
+Index: libgcrypt-1.8.5/configure.ac
+===================================================================
+--- libgcrypt-1.8.5.orig/configure.ac
++++ libgcrypt-1.8.5/configure.ac
+@@ -45,7 +45,7 @@ m4_define([mym4_revision_dec],
+ m4_define([mym4_betastring],
+ m4_esyscmd_s([git describe --match 'libgcrypt-[0-9].*[0-9]' --long|\
+ awk -F- '$3!=0{print"-beta"$3}']))
+-m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes]))
++m4_define([mym4_isgit],[no])
+ m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
+
+ AC_INIT([libgcrypt],[mym4_full_version],[http://bugs.gnupg.org])
+@@ -2575,7 +2575,7 @@ AM_CONDITIONAL([BUILD_DOC], [test "x$bui
+ #
+ # Provide information about the build.
+ #
+-BUILD_REVISION="mym4_revision"
++BUILD_REVISION="None"
+ AC_SUBST(BUILD_REVISION)
+ AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION",
+ [GIT commit id revision used to build this package])
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb
index fda68a2938..ac09417e89 100644
--- a/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb
+++ b/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb
@@ -17,13 +17,16 @@ DEPENDS = "libgpg-error"
UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \
- file://0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch \
+ file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \
file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \
file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \
file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \
+ file://0001-Prefetch-GCM-look-up-tables.patch \
+ file://0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch \
+ file://0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch \
+ file://determinism.patch \
"
-SRC_URI[md5sum] = "fbfdaebbbc6d7e5fbbf6ffdb3e139573"
-SRC_URI[sha256sum] = "f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227"
+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/0001-Use-our-hand-build-native-src-generator.patch b/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch
new file mode 100644
index 0000000000..b7b757d74b
--- /dev/null
+++ b/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch
@@ -0,0 +1,33 @@
+From e33bc310238bba1690f2c71ad333e10b9e422ea9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 19 Oct 2019 14:23:06 +0200
+Subject: [PATCH] Use our hand-build native src-generator
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/libical-glib/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/libical-glib/CMakeLists.txt b/src/libical-glib/CMakeLists.txt
+index f3704e6..ce9db16 100644
+--- a/src/libical-glib/CMakeLists.txt
++++ b/src/libical-glib/CMakeLists.txt
+@@ -63,8 +63,8 @@ endforeach()
+
+ add_custom_command (
+ OUTPUT ${LIBICAL_GLIB_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/libical-glib-private.h ${CMAKE_CURRENT_BINARY_DIR}/i-cal-forward-declarations.h
+- COMMAND ${EXECUTABLE_OUTPUT_PATH}/src-generator "${CMAKE_CURRENT_SOURCE_DIR}/tools" "${CMAKE_CURRENT_SOURCE_DIR}/api"
+- DEPENDS ${EXECUTABLE_OUTPUT_PATH}/src-generator ${xml_files}
++ COMMAND ${CMAKE_BINARY_DIR}/src-generator "${CMAKE_CURRENT_SOURCE_DIR}/tools" "${CMAKE_CURRENT_SOURCE_DIR}/api"
++ DEPENDS ${CMAKE_BINARY_DIR}/src-generator ${xml_files}
+ )
+
+ configure_file(
+--
+2.21.0
+
diff --git a/meta/recipes-support/libical/libical_3.0.6.bb b/meta/recipes-support/libical/libical_3.0.6.bb
deleted file mode 100644
index 032f3655e9..0000000000
--- a/meta/recipes-support/libical/libical_3.0.6.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library"
-HOMEPAGE = "https://github.com/libical/libical"
-BUGTRACKER = "https://github.com/libical/libical/issues"
-LICENSE = "LGPLv2.1 | MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \
- file://LICENSE.LGPL21.txt;md5=933adb561f159e7c3da079536f0ed871 \
- file://LICENSE.MPL2.txt;md5=9741c346eef56131163e13b9db1241b3"
-SECTION = "libs"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "463a59244c6767b8e67b29379405e297"
-SRC_URI[sha256sum] = "5c8a21c2b732ece4a33e5c862970b4f35a8548bbcda50de5695f6fc211ac4d97"
-UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG ??= "icu"
-PACKAGECONFIG[bdb] = ",-DCMAKE_DISABLE_FIND_PACKAGE_BDB=True,db"
-# ICU is used for RSCALE (RFC7529) support
-PACKAGECONFIG[icu] = ",-DCMAKE_DISABLE_FIND_PACKAGE_ICU=True,icu"
-
-# No need to use perl-native, the host perl is sufficient.
-EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
-
-# The glib library can't be cross-compiled, disable for now.
-# https://github.com/libical/libical/issues/394
-EXTRA_OECMAKE += "-DICAL_GLIB=false"
-
-do_install_append_class-target () {
- # Remove build host references
- sed -i \
- -e 's,${STAGING_LIBDIR},${libdir},g' \
- ${D}${libdir}/cmake/LibIcal/LibIcal*.cmake
-}
diff --git a/meta/recipes-support/libical/libical_3.0.8.bb b/meta/recipes-support/libical/libical_3.0.8.bb
new file mode 100644
index 0000000000..efb9433412
--- /dev/null
+++ b/meta/recipes-support/libical/libical_3.0.8.bb
@@ -0,0 +1,45 @@
+SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library"
+HOMEPAGE = "https://github.com/libical/libical"
+BUGTRACKER = "https://github.com/libical/libical/issues"
+LICENSE = "LGPLv2.1 | MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \
+ file://LICENSE.LGPL21.txt;md5=933adb561f159e7c3da079536f0ed871 \
+ file://LICENSE.MPL2.txt;md5=f75d2927d3c1ed2414ef72048f5ad640 \
+ "
+SECTION = "libs"
+
+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] = "41bd1f1fcdcb4779cea478bb55cf07bf"
+SRC_URI[sha256sum] = "09fecacaf75ba5a242159e3a9758a5446b5ce4d0ab684f98a7040864e1d1286f"
+UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
+
+inherit cmake pkgconfig
+
+do_compile_prepend() {
+ # As long as https://github.com/libical/libical/issues/394 is open build native src-generator manually
+ NATIVE_CFLAGS="${BUILD_CFLAGS} `pkg-config-native --cflags glib-2.0` `pkg-config-native --cflags libxml-2.0`"
+ NATIVE_LDFLAGS="${BUILD_LDFLAGS} `pkg-config-native --libs glib-2.0` `pkg-config-native --libs libxml-2.0`"
+ ${BUILD_CC} $NATIVE_CFLAGS ${S}/src/libical-glib/tools/generator.c ${S}/src/libical-glib/tools/xml-parser.c -o ${B}/src-generator $NATIVE_LDFLAGS
+}
+
+PACKAGECONFIG ??= "icu glib"
+PACKAGECONFIG[bdb] = ",-DCMAKE_DISABLE_FIND_PACKAGE_BDB=True,db"
+PACKAGECONFIG[glib] = "-DICAL_GLIB=True,-DICAL_GLIB=False,glib-2.0-native libxml2-native glib-2.0 libxml2"
+# ICU is used for RSCALE (RFC7529) support
+PACKAGECONFIG[icu] = ",-DCMAKE_DISABLE_FIND_PACKAGE_ICU=True,icu"
+
+# No need to use perl-native, the host perl is sufficient.
+EXTRA_OECMAKE += "-DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl"
+# doc build fails with linker error (??) for libical-glib so disable it
+EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
+
+do_install_append () {
+ # Remove build host references
+ sed -i \
+ -e 's,${STAGING_LIBDIR},${libdir},g' \
+ -e 's,${STAGING_INCDIR},${includedir},g' \
+ ${D}${libdir}/cmake/LibIcal/LibIcal*.cmake
+}
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
new file mode 100644
index 0000000000..57b336c0c0
--- /dev/null
+++ b/meta/recipes-support/libjitterentropy/files/0001-Make-man-pages-reproducible.patch
@@ -0,0 +1,30 @@
+From ce091718716400119d6be6bd637c0e3f4f6ca315 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <JPEWhacker@gmail.com>
+Date: Thu, 21 Nov 2019 08:07:41 -0600
+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: Backport [https://github.com/smuellerDD/jitterentropy-library/pull/14]
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 2e78607..860b720 100644
+--- a/Makefile
++++ b/Makefile
+@@ -60,7 +60,7 @@ cppcheck:
+ install:
+ install -d -m 0755 $(DESTDIR)$(PREFIX)/share/man/man3
+ install -m 644 doc/$(NAME).3 $(DESTDIR)$(PREFIX)/share/man/man3/
+- gzip -f -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3
++ gzip -n -f -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3
+ install -d -m 0755 $(DESTDIR)$(PREFIX)/$(LIBDIR)
+ $(INSTALL_STRIP) -m 0755 lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/
+ install -d -m 0755 $(DESTDIR)$(PREFIX)/$(INCDIR)
+--
+2.23.0
+
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
new file mode 100644
index 0000000000..9af334ce2c
--- /dev/null
+++ b/meta/recipes-support/libjitterentropy/files/0001-Makefile-cleanup-install-for-rebuilds.patch
@@ -0,0 +1,56 @@
+From 060b9b4147f6e5ff386a8b017796118d783e59fa Mon Sep 17 00:00:00 2001
+From: Matt Weber <matthew.weber@rockwellcollins.com>
+Date: Tue, 22 Oct 2019 12:44:30 -0500
+Subject: [PATCH] Makefile: cleanup install for rebuilds
+
+Support the ability to rebuild and redeploy without a clean. This
+required some force linking and man archive creation.
+
+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: 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>
+---
+ Makefile | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 4ff069b..2e78607 100644
+--- a/Makefile
++++ b/Makefile
+@@ -14,6 +14,8 @@ LIBDIR := lib
+ # include target directory
+ INCDIR := include
+
++INSTALL_STRIP ?= install -s
++
+ NAME := jitterentropy
+ LIBMAJOR=$(shell cat jitterentropy-base.c | grep define | grep MAJVERSION | awk '{print $$3}')
+ LIBMINOR=$(shell cat jitterentropy-base.c | grep define | grep MINVERSION | awk '{print $$3}')
+@@ -58,15 +60,15 @@ cppcheck:
+ install:
+ install -d -m 0755 $(DESTDIR)$(PREFIX)/share/man/man3
+ install -m 644 doc/$(NAME).3 $(DESTDIR)$(PREFIX)/share/man/man3/
+- gzip -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3
++ gzip -f -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3
+ install -d -m 0755 $(DESTDIR)$(PREFIX)/$(LIBDIR)
+- install -m 0755 -s lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/
++ $(INSTALL_STRIP) -m 0755 lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/
+ install -d -m 0755 $(DESTDIR)$(PREFIX)/$(INCDIR)
+ install -m 0644 jitterentropy.h $(DESTDIR)$(PREFIX)/$(INCDIR)/
+ install -m 0644 jitterentropy-base-user.h $(DESTDIR)$(PREFIX)/$(INCDIR)/
+ $(RM) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR)
+- ln -s lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR)
+- ln -s lib$(NAME).so.$(LIBMAJOR) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so
++ ln -sf lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR)
++ ln -sf lib$(NAME).so.$(LIBMAJOR) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so
+
+ clean:
+ @- $(RM) $(NAME)
+--
+2.23.0
+
diff --git a/meta/recipes-support/libjitterentropy/files/0001-fix-do_install-failure-on-oe.patch b/meta/recipes-support/libjitterentropy/files/0001-fix-do_install-failure-on-oe.patch
deleted file mode 100644
index 30ff4feb6b..0000000000
--- a/meta/recipes-support/libjitterentropy/files/0001-fix-do_install-failure-on-oe.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 00cefca0eefecec657969b50cd4e1ed5b057a857 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 25 Oct 2018 16:30:06 +0800
-Subject: [PATCH] fix do_install failure on oe
-
-- Do not strip at do_install
-
-- Create includedir
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 5e31276..76fcbfa 100644
---- a/Makefile
-+++ b/Makefile
-@@ -51,7 +51,8 @@ install:
- install -m 644 doc/$(NAME).3 $(DESTDIR)$(PREFIX)/share/man/man3/
- gzip -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3
- install -d -m 0755 $(DESTDIR)$(PREFIX)/$(LIBDIR)
-- install -m 0755 -s lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/
-+ install -m 0755 lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/
-+ install -d -m 0755 $(DESTDIR)$(PREFIX)/$(INCDIR)/
- install -m 0644 jitterentropy.h $(DESTDIR)$(PREFIX)/$(INCDIR)/
- install -m 0644 jitterentropy-base-user.h $(DESTDIR)$(PREFIX)/$(INCDIR)/
- $(RM) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR)
---
-2.7.4
-
diff --git a/meta/recipes-support/libjitterentropy/libjitterentropy_2.1.2.bb b/meta/recipes-support/libjitterentropy/libjitterentropy_2.2.0.bb
index 3b5b4e4aa0..710ef0172d 100644
--- a/meta/recipes-support/libjitterentropy/libjitterentropy_2.1.2.bb
+++ b/meta/recipes-support/libjitterentropy/libjitterentropy_2.2.0.bb
@@ -5,14 +5,14 @@ stamp. It is a small-scale, yet fast entropy source that is viable in almost \
all environments and on a lot of CPU architectures."
HOMEPAGE = "http://www.chronox.de/jent.html"
LICENSE = "GPLv2+ | BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e52365752b36cfcd7f9601d80de7d8c6 \
+LIC_FILES_CHKSUM = "file://COPYING;md5=a95aadbdfae7ed812bb2b7b86eb5981c \
file://COPYING.gplv2;md5=eb723b61539feef013de476e68b5c50a \
file://COPYING.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \
- "
+ "
SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git \
- file://0001-fix-do_install-failure-on-oe.patch \
- "
-SRCREV = "f5a80c6f3fcc6deebd0eabf75324f48aed1afbce"
+ file://0001-Makefile-cleanup-install-for-rebuilds.patch \
+ file://0001-Make-man-pages-reproducible.patch"
+SRCREV = "933a44f33ed3d6612f7cfaa7ad1207c8da4886ba"
S = "${WORKDIR}/git"
do_configure[noexec] = "1"
@@ -23,6 +23,7 @@ do_install () {
oe_runmake install INCDIR="/include" \
DESTDIR="${D}" \
PREFIX="${exec_prefix}" \
- LIBDIR="${baselib}"
+ LIBDIR="${baselib}" \
+ INSTALL_STRIP="install"
}
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 a7ea53fed0..a9daf22d77 100644
--- a/meta/recipes-support/libksba/libksba_1.3.5.bb
+++ b/meta/recipes-support/libksba/libksba_1.4.0.bb
@@ -1,6 +1,8 @@
SUMMARY = "Easy API to create and parse X.509 and CMS related objects"
HOMEPAGE = "http://www.gnupg.org/related_software/libksba/"
-LICENSE = "GPLv2+ | LGPLv3+ | GPLv3+"
+LICENSE = "GPLv3+ & (GPLv2+ | LGPLv3+)"
+LICENSE_${PN} = "GPLv2+ | LGPLv3+"
+LICENSE_${PN}-doc = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=fd541d83f75d038c4e0617b672ed8bda \
file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.GPLv3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \
@@ -17,12 +19,11 @@ 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
rm -f ${S}/m4/gpg-error.m4
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
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.33.bb b/meta/recipes-support/libpcre/libpcre2_10.35.bb
index 50b26753b4..35c019c100 100644
--- a/meta/recipes-support/libpcre/libpcre2_10.33.bb
+++ b/meta/recipes-support/libpcre/libpcre2_10.35.bb
@@ -7,15 +7,12 @@ not the original PCRE 8.x series."
SUMMARY = "Perl Compatible Regular Expressions version 2"
HOMEPAGE = "http://www.pcre.org"
SECTION = "devel"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=b1588d3bb4cb0e1f5a597d908f8c5b37"
+LICENSE = "BSD-3-Clause"
+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] = "80b355f2dce909a2e2424f5c79eddb44"
-SRC_URI[sha256sum] = "35514dff0ccdf02b55bd2e9fa586a1b9d01f62332c3356e379eabb75f789d8aa"
+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 b97af08b25..e5471e81da 100644
--- a/meta/recipes-support/libpcre/libpcre_8.43.bb
+++ b/meta/recipes-support/libpcre/libpcre_8.44.bb
@@ -5,17 +5,16 @@ to the POSIX regular expression API."
SUMMARY = "Perl Compatible Regular Expressions"
HOMEPAGE = "http://www.pcre.org"
SECTION = "devel"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=91bee59d1b327eb1599b4c673e2fb3d1"
+LICENSE = "BSD-3-Clause"
+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/0001-Do-not-enforce-no-introspection-when-cross-building.patch b/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch
deleted file mode 100644
index cd6de853e5..0000000000
--- a/meta/recipes-support/libsoup/libsoup-2.4/0001-Do-not-enforce-no-introspection-when-cross-building.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 85f7b74fc602214297928afe09347c31d696173d Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 15 Feb 2019 14:21:06 +0100
-Subject: [PATCH] Do not enforce no-introspection when cross-building
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Signed-off-by: Alistair Francis <alistair@alistair23.me>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 25887f9..6261a7c 100644
---- a/meson.build
-+++ b/meson.build
-@@ -281,7 +281,7 @@ enable_gnome = get_option('gnome') and host_machine.system() != 'windows'
- # FIXME: once we start to require meson 0.49.0+ and gnome-introspection 1.58.1+
- # the we can enable the introspection even for the static build. See
- # https://github.com/mesonbuild/meson/pull/4478.
--enable_introspection = get_option('introspection') and find_program('g-ir-scanner', required: false).found() and not meson.is_cross_build() and not is_static_library
-+enable_introspection = get_option('introspection') and find_program('g-ir-scanner', required: false).found() and not is_static_library
-
- ############
- # Vala API #
---
-2.20.1
-
diff --git a/meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb b/meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb
index 357f2fd3db..d6425bd941 100644
--- a/meta/recipes-support/libsoup/libsoup-2.4_2.66.2.bb
+++ b/meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb
@@ -9,24 +9,27 @@ 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 \
- file://0001-Do-not-enforce-no-introspection-when-cross-building.patch \
- "
-SRC_URI[md5sum] = "66c2ae89d6031b01337d78a2c57c75d5"
-SRC_URI[sha256sum] = "bd2ea602eba642509672812f3c99b77cbec2f3de02ba1cc8cb7206bf7de0ae2a"
+SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz"
+SRC_URI[md5sum] = "c539f5b5ab534f024dc4e6a14e6d3f54"
+SRC_URI[sha256sum] = "54b020f74aefa438918d8e53cff62e2b1e59efe2de53e06b19a4b07b1f4d5342"
+
+CVE_PRODUCT = "libsoup"
S = "${WORKDIR}/libsoup-${PV}"
inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default.
PACKAGECONFIG ??= ""
PACKAGECONFIG[gnome] = "-Dgnome=true,-Dgnome=false"
-PACKAGECONFIG[gssapi] = "-Dgssapi=true,-Dgssapi=false,krb5"
+PACKAGECONFIG[gssapi] = "-Dgssapi=enabled,-Dgssapi=disabled,krb5"
-EXTRA_OEMESON_append = " -Dvapi=false"
+EXTRA_OEMESON_append = " -Dvapi=disabled -Dtls_check=false"
-GTKDOC_MESON_OPTION = "doc"
+GTKDOC_MESON_OPTION = "gtk_doc"
# When built without gnome support, libsoup-2.4 will contain only one shared lib
# and will therefore become subject to renaming by debian.bbclass. Prevent
@@ -37,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/libxslt/files/0001-Fix-security-framework-bypass.patch b/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch
deleted file mode 100644
index 89b647ddbf..0000000000
--- a/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Sun, 24 Mar 2019 09:51:39 +0100
-Subject: Fix security framework bypass
-
-xsltCheckRead and xsltCheckWrite return -1 in case of error but callers
-don't check for this condition and allow access. With a specially
-crafted URL, xsltCheckRead could be tricked into returning an error
-because of a supposedly invalid URL that would still be loaded
-succesfully later on.
-
-Fixes #12.
-
-Thanks to Felix Wilhelm for the report.
-
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
-Upstream-Status: Backport
-CVE: CVE-2019-11068
----
- libxslt/documents.c | 18 ++++++++++--------
- libxslt/imports.c | 9 +++++----
- libxslt/transform.c | 9 +++++----
- libxslt/xslt.c | 9 +++++----
- 4 files changed, 25 insertions(+), 20 deletions(-)
-
-diff --git a/libxslt/documents.c b/libxslt/documents.c
-index 3f3a7312..4aad11bb 100644
---- a/libxslt/documents.c
-+++ b/libxslt/documents.c
-@@ -296,10 +296,11 @@ xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) {
- int res;
-
- res = xsltCheckRead(ctxt->sec, ctxt, URI);
-- if (res == 0) {
-- xsltTransformError(ctxt, NULL, NULL,
-- "xsltLoadDocument: read rights for %s denied\n",
-- URI);
-+ if (res <= 0) {
-+ if (res == 0)
-+ xsltTransformError(ctxt, NULL, NULL,
-+ "xsltLoadDocument: read rights for %s denied\n",
-+ URI);
- return(NULL);
- }
- }
-@@ -372,10 +373,11 @@ xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) {
- int res;
-
- res = xsltCheckRead(sec, NULL, URI);
-- if (res == 0) {
-- xsltTransformError(NULL, NULL, NULL,
-- "xsltLoadStyleDocument: read rights for %s denied\n",
-- URI);
-+ if (res <= 0) {
-+ if (res == 0)
-+ xsltTransformError(NULL, NULL, NULL,
-+ "xsltLoadStyleDocument: read rights for %s denied\n",
-+ URI);
- return(NULL);
- }
- }
-diff --git a/libxslt/imports.c b/libxslt/imports.c
-index 874870cc..3783b247 100644
---- a/libxslt/imports.c
-+++ b/libxslt/imports.c
-@@ -130,10 +130,11 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) {
- int secres;
-
- secres = xsltCheckRead(sec, NULL, URI);
-- if (secres == 0) {
-- xsltTransformError(NULL, NULL, NULL,
-- "xsl:import: read rights for %s denied\n",
-- URI);
-+ if (secres <= 0) {
-+ if (secres == 0)
-+ xsltTransformError(NULL, NULL, NULL,
-+ "xsl:import: read rights for %s denied\n",
-+ URI);
- goto error;
- }
- }
-diff --git a/libxslt/transform.c b/libxslt/transform.c
-index 13793914..0636dbd0 100644
---- a/libxslt/transform.c
-+++ b/libxslt/transform.c
-@@ -3493,10 +3493,11 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
- */
- if (ctxt->sec != NULL) {
- ret = xsltCheckWrite(ctxt->sec, ctxt, filename);
-- if (ret == 0) {
-- xsltTransformError(ctxt, NULL, inst,
-- "xsltDocumentElem: write rights for %s denied\n",
-- filename);
-+ if (ret <= 0) {
-+ if (ret == 0)
-+ xsltTransformError(ctxt, NULL, inst,
-+ "xsltDocumentElem: write rights for %s denied\n",
-+ filename);
- xmlFree(URL);
- xmlFree(filename);
- return;
-diff --git a/libxslt/xslt.c b/libxslt/xslt.c
-index 780a5ad7..a234eb79 100644
---- a/libxslt/xslt.c
-+++ b/libxslt/xslt.c
-@@ -6763,10 +6763,11 @@ xsltParseStylesheetFile(const xmlChar* filename) {
- int res;
-
- res = xsltCheckRead(sec, NULL, filename);
-- if (res == 0) {
-- xsltTransformError(NULL, NULL, NULL,
-- "xsltParseStylesheetFile: read rights for %s denied\n",
-- filename);
-+ if (res <= 0) {
-+ if (res == 0)
-+ xsltTransformError(NULL, NULL, NULL,
-+ "xsltParseStylesheetFile: read rights for %s denied\n",
-+ filename);
- return(NULL);
- }
- }
---
-2.20.1
-
diff --git a/meta/recipes-support/libxslt/files/CVE-2019-13117.patch b/meta/recipes-support/libxslt/files/CVE-2019-13117.patch
deleted file mode 100644
index ef3f2709f7..0000000000
--- a/meta/recipes-support/libxslt/files/CVE-2019-13117.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From c5eb6cf3aba0af048596106ed839b4ae17ecbcb1 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Sat, 27 Apr 2019 11:19:48 +0200
-Subject: [PATCH] Fix uninitialized read of xsl:number token
-
-Found by OSS-Fuzz.
-
-CVE: CVE-2019-13117
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxslt/commit/c5eb6cf3aba0af048596106ed839b4ae17ecbcb1]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- libxslt/numbers.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/libxslt/numbers.c b/libxslt/numbers.c
-index 89e1f668..75c31eba 100644
---- a/libxslt/numbers.c
-+++ b/libxslt/numbers.c
-@@ -382,7 +382,10 @@ xsltNumberFormatTokenize(const xmlChar *format,
- tokens->tokens[tokens->nTokens].token = val - 1;
- ix += len;
- val = xmlStringCurrentChar(NULL, format+ix, &len);
-- }
-+ } else {
-+ tokens->tokens[tokens->nTokens].token = (xmlChar)'0';
-+ tokens->tokens[tokens->nTokens].width = 1;
-+ }
- } else if ( (val == (xmlChar)'A') ||
- (val == (xmlChar)'a') ||
- (val == (xmlChar)'I') ||
---
-2.21.0
-
diff --git a/meta/recipes-support/libxslt/files/CVE-2019-13118.patch b/meta/recipes-support/libxslt/files/CVE-2019-13118.patch
deleted file mode 100644
index 595e6c2f33..0000000000
--- a/meta/recipes-support/libxslt/files/CVE-2019-13118.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 6ce8de69330783977dd14f6569419489875fb71b Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Mon, 3 Jun 2019 13:14:45 +0200
-Subject: [PATCH] Fix uninitialized read with UTF-8 grouping chars
-
-The character type in xsltFormatNumberConversion was too narrow and
-an invalid character/length combination could be passed to
-xsltNumberFormatDecimal, resulting in an uninitialized read.
-
-Found by OSS-Fuzz.
-
-CVE: CVE-2019-13118
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxslt/commit/6ce8de69330783977dd14f6569419489875fb71b]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- libxslt/numbers.c | 5 +++--
- tests/docs/bug-222.xml | 1 +
- tests/general/bug-222.out | 2 ++
- tests/general/bug-222.xsl | 6 ++++++
- 4 files changed, 12 insertions(+), 2 deletions(-)
- create mode 100644 tests/docs/bug-222.xml
- create mode 100644 tests/general/bug-222.out
- create mode 100644 tests/general/bug-222.xsl
-
-diff --git a/libxslt/numbers.c b/libxslt/numbers.c
-index f1ed8846..20b99d5a 100644
---- a/libxslt/numbers.c
-+++ b/libxslt/numbers.c
-@@ -1298,13 +1298,14 @@ OUTPUT_NUMBER:
- number = floor((scale * number + 0.5)) / scale;
- if ((self->grouping != NULL) &&
- (self->grouping[0] != 0)) {
-+ int gchar;
-
- len = xmlStrlen(self->grouping);
-- pchar = xsltGetUTF8Char(self->grouping, &len);
-+ gchar = xsltGetUTF8Char(self->grouping, &len);
- xsltNumberFormatDecimal(buffer, floor(number), self->zeroDigit[0],
- format_info.integer_digits,
- format_info.group,
-- pchar, len);
-+ gchar, len);
- } else
- xsltNumberFormatDecimal(buffer, floor(number), self->zeroDigit[0],
- format_info.integer_digits,
-diff --git a/tests/docs/bug-222.xml b/tests/docs/bug-222.xml
-new file mode 100644
-index 00000000..69d62f2c
---- /dev/null
-+++ b/tests/docs/bug-222.xml
-@@ -0,0 +1 @@
-+<doc/>
-diff --git a/tests/general/bug-222.out b/tests/general/bug-222.out
-new file mode 100644
-index 00000000..e3139698
---- /dev/null
-+++ b/tests/general/bug-222.out
-@@ -0,0 +1,2 @@
-+<?xml version="1.0"?>
-+1â ¢0
-diff --git a/tests/general/bug-222.xsl b/tests/general/bug-222.xsl
-new file mode 100644
-index 00000000..e32dc473
---- /dev/null
-+++ b/tests/general/bug-222.xsl
-@@ -0,0 +1,6 @@
-+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-+ <xsl:decimal-format name="f" grouping-separator="â ¢"/>
-+ <xsl:template match="/">
-+ <xsl:value-of select="format-number(10,'#â ¢0','f')"/>
-+ </xsl:template>
-+</xsl:stylesheet>
---
-2.21.0
-
diff --git a/meta/recipes-support/libxslt/libxslt_1.1.33.bb b/meta/recipes-support/libxslt/libxslt_1.1.34.bb
index abc00a09ea..1961bb5b31 100644
--- a/meta/recipes-support/libxslt/libxslt_1.1.33.bb
+++ b/meta/recipes-support/libxslt/libxslt_1.1.34.bb
@@ -9,13 +9,10 @@ SECTION = "libs"
DEPENDS = "libxml2"
SRC_URI = "http://xmlsoft.org/sources/libxslt-${PV}.tar.gz \
- file://0001-Fix-security-framework-bypass.patch \
- file://CVE-2019-13117.patch \
- file://CVE-2019-13118.patch \
-"
+ "
-SRC_URI[md5sum] = "b3bd254a03e46d58f8ad1e4559cd2c2f"
-SRC_URI[sha256sum] = "8e36605144409df979cab43d835002f63988f3dc94d5d3537c12796db90e38c8"
+SRC_URI[md5sum] = "db8765c8d076f1b6caafd9f2542a304a"
+SRC_URI[sha256sum] = "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f"
UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar"
@@ -23,7 +20,7 @@ S = "${WORKDIR}/libxslt-${PV}"
BINCONFIG = "${bindir}/xslt-config"
-inherit autotools pkgconfig binconfig-disabled lib_package
+inherit autotools pkgconfig binconfig-disabled lib_package multilib_header
do_configure_prepend () {
# We don't DEPEND on binutils for ansidecl.h so ensure we don't use the header.
@@ -46,6 +43,10 @@ do_install_append_class-native () {
create_wrapper ${D}/${bindir}/xsltproc XML_CATALOG_FILES=${sysconfdir}/xml/catalog
}
+do_install_append () {
+ oe_multilib_header libxslt/xsltconfig.h
+}
+
FILES_${PN} += "${libdir}/libxslt-plugins"
FILES_${PN}-dev += "${libdir}/xsltConf.sh"
diff --git a/meta/recipes-support/libyaml/libyaml_0.2.2.bb b/meta/recipes-support/libyaml/libyaml_0.2.2.bb
deleted file mode 100644
index fbd199205f..0000000000
--- a/meta/recipes-support/libyaml/libyaml_0.2.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "LibYAML is a YAML 1.1 parser and emitter written in C."
-DESCRIPTION = "LibYAML is a C library for parsing and emitting data in YAML 1.1, \
-a human-readable data serialization format. "
-HOMEPAGE = "http://pyyaml.org/wiki/LibYAML"
-SECTION = "libs/devel"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a76b4c69bfcf82313bbdc0393b04438a"
-
-SRC_URI = "http://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz"
-SRC_URI[md5sum] = "54bf11ccb8bc488b5b3bec931f5b70dc"
-SRC_URI[sha256sum] = "4a9100ab61047fd9bd395bcef3ce5403365cafd55c1e0d0299cde14958e47be9"
-
-S = "${WORKDIR}/yaml-${PV}"
-
-inherit autotools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libyaml/libyaml_0.2.5.bb b/meta/recipes-support/libyaml/libyaml_0.2.5.bb
new file mode 100644
index 0000000000..e39a7b9083
--- /dev/null
+++ b/meta/recipes-support/libyaml/libyaml_0.2.5.bb
@@ -0,0 +1,18 @@
+SUMMARY = "LibYAML is a YAML 1.1 parser and emitter written in C."
+DESCRIPTION = "LibYAML is a C library for parsing and emitting data in YAML 1.1, \
+a human-readable data serialization format. "
+HOMEPAGE = "https://pyyaml.org/wiki/LibYAML"
+SECTION = "libs/devel"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://License;md5=7bbd28caa69f81f5cd5f48647236663d"
+
+SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz"
+SRC_URI[md5sum] = "bb15429d8fb787e7d3f1c83ae129a999"
+SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4"
+
+S = "${WORKDIR}/yaml-${PV}"
+
+inherit autotools
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/lz4/lz4_1.9.2.bb b/meta/recipes-support/lz4/lz4_1.9.2.bb
index f0a8416a96..6510156ed0 100644
--- a/meta/recipes-support/lz4/lz4_1.9.2.bb
+++ b/meta/recipes-support/lz4/lz4_1.9.2.bb
@@ -18,7 +18,10 @@ UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
S = "${WORKDIR}/git"
-EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir}"
+# 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} 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 03059174ee..82b5516f26 100644
--- a/meta/recipes-support/mpfr/mpfr_4.0.2.bb
+++ b/meta/recipes-support/mpfr/mpfr_4.1.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "C library for multiple-precision floating-point computations with exact rounding"
-HOMEPAGE = "http://www.mpfr.org/"
+HOMEPAGE = "https://www.mpfr.org/"
LICENSE = "LGPLv3+"
SECTION = "devel"
@@ -10,9 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
"
DEPENDS = "gmp autoconf-archive"
-SRC_URI = "http://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz"
-SRC_URI[md5sum] = "320fbc4463d4c8cb1e566929d8adc4f8"
-SRC_URI[sha256sum] = "1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a"
+SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz"
+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/npth/npth_1.6.bb b/meta/recipes-support/npth/npth_1.6.bb
index 8310efb106..233e0dc4a4 100644
--- a/meta/recipes-support/npth/npth_1.6.bb
+++ b/meta/recipes-support/npth/npth_1.6.bb
@@ -24,4 +24,4 @@ do_install_append() {
oe_multilib_header npth.h
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
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/0004-Add-ARC-support.patch b/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch
deleted file mode 100644
index 9d686017df..0000000000
--- a/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 6cb5b0be8837222a1e01745f2cf57cd0e593186d Mon Sep 17 00:00:00 2001
-From: Antoine Tenart <antoine.tenart@free-electrons.com>
-Date: Mon, 23 Oct 2017 10:28:20 +0200
-Subject: [PATCH] Add ARC support
-
-[Alexey: Rebased on top of other patches like RiscV, NIOS2 etc].
-
-Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
-
-Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1492378 ]
----
- pr/include/md/_linux.cfg | 45 ++++++++++++++++++++++++++++++++++++++++
- pr/include/md/_linux.h | 2 ++
- 2 files changed, 47 insertions(+)
-
-diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg
-index fec8525378dc..5f4fa0eac783 100644
---- a/pr/include/md/_linux.cfg
-+++ b/pr/include/md/_linux.cfg
-@@ -1157,6 +1157,51 @@
- #define PR_BYTES_PER_WORD_LOG2 3
- #define PR_BYTES_PER_DWORD_LOG2 3
-
-+#elif defined(__arc__)
-+
-+#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
-+
- #else
-
- #error "Unknown CPU architecture"
-diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
-index 8e04fad479a1..628b1217e9c8 100644
---- a/pr/include/md/_linux.h
-+++ b/pr/include/md/_linux.h
-@@ -63,6 +63,8 @@
- #define _PR_SI_ARCHITECTURE "riscv32"
- #elif defined(__riscv) && (__riscv_xlen == 64)
- #define _PR_SI_ARCHITECTURE "riscv64"
-+#elif defined(__arc__)
-+#define _PR_SI_ARCHITECTURE "arc"
- #else
- #error "Unknown CPU architecture"
- #endif
---
-2.17.1
-
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 d74caabe4c..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:
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.21.bb b/meta/recipes-support/nspr/nspr_4.21.bb
deleted file mode 100644
index 25563e50f1..0000000000
--- a/meta/recipes-support/nspr/nspr_4.21.bb
+++ /dev/null
@@ -1,194 +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://0004-Add-ARC-support.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] = "b865586f19912a50acc3755d8a45dbaa"
-SRC_URI[sha256sum] = "15ea32c7b100217b6e3193bc03e77f485d9bf7504051443ba9ce86d1c17c6b5a"
-
-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_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-myhostname/nss-myhostname_0.3.bb b/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
index 244d9e204e..074f713205 100644
--- a/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
+++ b/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
@@ -12,7 +12,7 @@ SRC_URI = "http://0pointer.de/lennart/projects/nss-myhostname/nss-myhostname-${P
SRC_URI[md5sum] = "d4ab9ac36c053ab8fb836db1cbd4a48f"
SRC_URI[sha256sum] = "2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2"
-inherit autotools distro_features_check
+inherit autotools features_check
COMPATIBLE_HOST_libc-musl = 'null'
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 181c69adb0..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 200f635c65..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: -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.45.bb b/meta/recipes-support/nss/nss_3.45.bb
deleted file mode 100644
index e89e7d69d5..0000000000
--- a/meta/recipes-support/nss/nss_3.45.bb
+++ /dev/null
@@ -1,267 +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://nss-fix-nsinstall-build.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 \
- "
-
-SRC_URI[md5sum] = "f1752d7223ee9d910d551e57264bafa8"
-SRC_URI[sha256sum] = "112f05223d1fde902c170966bfc6f011b24a838be16969b110ecf2bb7bc24e8b"
-
-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}
- 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 CROSS_COMPILE=1
- export NATIVE_CC="${BUILD_CC}"
- export NATIVE_FLAGS="${BUILD_CFLAGS}"
- 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
-
- 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/0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch b/meta/recipes-support/p11-kit/p11-kit/0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch
deleted file mode 100644
index e902b0b522..0000000000
--- a/meta/recipes-support/p11-kit/p11-kit/0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c6bb4b99af39daa3221c3bdc0686987ae0f31693 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 31 Jan 2018 16:47:44 +0200
-Subject: [PATCH] LINGUAS: drop the languages for which upstream does not
- supply .po files
-
-Regenerating them proved to be too painful.
-Upstream has been notified: https://github.com/p11-glue/p11-kit/issues/127
-
-Upstream-Status: Inappropriate [missing upstream distribution files]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- po/LINGUAS | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/po/LINGUAS b/po/LINGUAS
-index 767a806c2e20..6ab48001c409 100644
---- a/po/LINGUAS
-+++ b/po/LINGUAS
-@@ -12,8 +12,6 @@ cy
- da
- de
- el
--en@boldquot
--en@quot
- en_GB
- eo
- es
diff --git a/meta/recipes-support/p11-kit/p11-kit_0.23.16.1.bb b/meta/recipes-support/p11-kit/p11-kit_0.23.16.1.bb
deleted file mode 100644
index 54455da1bb..0000000000
--- a/meta/recipes-support/p11-kit/p11-kit_0.23.16.1.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Provides a way to load and enumerate PKCS#11 modules"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50"
-
-inherit autotools gettext pkgconfig gtk-doc
-
-DEPENDS = "libtasn1 libffi"
-
-SRC_URI = "git://github.com/p11-glue/p11-kit \
- file://0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch \
- "
-SRCREV = "c689917b393379d288b868f70b2f7b7f6aafe430"
-S = "${WORKDIR}/git"
-
-AUTOTOOLS_AUXDIR = "${S}/build/litter"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[trust-paths] = "--with-trust-paths=/etc/ssl/certs/ca-certificates.crt,--without-trust-paths,,ca-certificates"
-
-# This recipe does not use the standard gtk-doc m4 macros, and so the ./configure flags
-# that control gtk-doc build are non-standard
-EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-doc --enable-doc-html --disable-doc-pdf', \
- '--disable-doc', d)} "
-
-# When building native recipes, disable gtkdoc, as it is not necessary,
-# pulls in additional dependencies, and makes build times longer
-EXTRA_OECONF_prepend_class-native = "--disable-doc "
-EXTRA_OECONF_prepend_class-nativesdk = "--disable-doc "
-
-UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-gtk-doc-html --disable-gtk-doc-pdf --enable-gtk-doc --disable-gtk-doc"
-
-# p11-kit relies on these two being copied from source tree
-# instead of being regenerated by gtkdoc-scan, but doesn't setup
-# dependencies correctly when there is a parallel build. Let's pre-copy
-# them instead.
-do_compile_prepend () {
- cp ${S}/doc/manual/p11-kit-overrides.txt ${S}/doc/manual/p11-kit-sections.txt ${B}/doc/manual/
-}
-
-FILES_${PN} += " \
- ${libdir}/p11-kit-proxy.so \
- ${libdir}/pkcs11/*.so \
- ${libdir}/pkcs11/*.la"
-
-# PN contains p11-kit-proxy.so, a symlink to a loadable module
-INSANE_SKIP_${PN} = "dev-so"
diff --git a/meta/recipes-support/p11-kit/p11-kit_0.23.21.bb b/meta/recipes-support/p11-kit/p11-kit_0.23.21.bb
new file mode 100644
index 0000000000..b1fd2334b2
--- /dev/null
+++ b/meta/recipes-support/p11-kit/p11-kit_0.23.21.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Provides a way to load and enumerate PKCS#11 modules"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50"
+
+inherit meson gettext pkgconfig gtk-doc bash-completion
+
+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 = "fd8b56f3ee971f94dc6fc95411fc01e1c12153ab"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[trust-paths] = "-Dtrust_paths=/etc/ssl/certs/ca-certificates.crt,,,ca-certificates"
+
+GTKDOC_MESON_OPTION = 'gtk_doc'
+
+FILES_${PN} += " \
+ ${libdir}/p11-kit-proxy.so \
+ ${libdir}/pkcs11/*.so \
+ ${libdir}/pkcs11/*.la \
+ ${systemd_user_unitdir}/*"
+
+# 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 fb529d25d6..d9ca0732f7 100644
--- a/meta/recipes-support/pinentry/pinentry_1.1.0.bb
+++ b/meta/recipes-support/pinentry/pinentry_1.1.0.bb
@@ -28,11 +28,10 @@ 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 = " \
--disable-rpath \
"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
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.7.bb b/meta/recipes-support/rng-tools/rng-tools_6.10.bb
index b4e453f67f..40ec5ad671 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.7.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 = "9fc873c5af0e392632e6b736938b811f7ca97251"
+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/install-data-hook.patch b/meta/recipes-support/shared-mime-info/shared-mime-info/install-data-hook.patch
deleted file mode 100644
index 262ff7562c..0000000000
--- a/meta/recipes-support/shared-mime-info/shared-mime-info/install-data-hook.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-fix shared-mime-info build race condition
-
-The definition of install-data-hook in Makefile.am leads
-to multiple, overlapping, executions of install-binPROGRAMS
-target. We modify the definition to avoid that.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <jslater@windriver.com>
-
-Index: shared-mime-info-1.9/Makefile.am
-===================================================================
---- shared-mime-info-1.9.orig/Makefile.am
-+++ shared-mime-info-1.9/Makefile.am
-@@ -50,7 +50,9 @@ else
- update_mime_database="$(top_builddir)/update-mime-database$(EXEEXT)"
- endif
-
--install-data-hook: install-binPROGRAMS
-+# do NOT make this dependent on anything!
-+#
-+install-data-hook:
- if ENABLE_UPDATE_MIMEDB
- $(update_mime_database) -V "$(DESTDIR)$(datadir)/mime"
- endif
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info/parallelmake.patch b/meta/recipes-support/shared-mime-info/shared-mime-info/parallelmake.patch
deleted file mode 100644
index fea34a55a2..0000000000
--- a/meta/recipes-support/shared-mime-info/shared-mime-info/parallelmake.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-The Makefile used by shared-mime-info is one big race with the SUBDIRS
-option and the dependency specifically calling make all combining to
-create multiple make instances all of which may try and build targets
-like update-mime-database.
-
-This patch removes those options meaning make can correctly identify
-dependencies and stop itself racing itself.
-
-RP 10/10/2011
-
-Upstream-Status: Pending
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: shared-mime-info-1.9/Makefile.am
-===================================================================
---- shared-mime-info-1.9.orig/Makefile.am
-+++ shared-mime-info-1.9/Makefile.am
-@@ -1,5 +1,3 @@
--SUBDIRS=. po
--
- AM_CPPFLAGS = $(ALL_CFLAGS)
-
- packagesdir = $(datadir)/mime/packages
-@@ -81,8 +79,7 @@ endif
-
- all: $(defaultmakedeps)
-
--create-pot:
-- $(AM_V_GEN) $(MAKE) -C po shared-mime-info.pot
-+create-pot: po
-
- local-test: create-pot freedesktop.org.xml update-mime-database$(EXEEXT)
- if CROSS_COMPILING
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info_1.10.bb b/meta/recipes-support/shared-mime-info/shared-mime-info_1.10.bb
deleted file mode 100644
index 9fc210b718..0000000000
--- a/meta/recipes-support/shared-mime-info/shared-mime-info_1.10.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require shared-mime-info.inc
-
-SRC_URI += "file://parallelmake.patch \
- file://install-data-hook.patch"
-
-SRC_URI[md5sum] = "418c2ced9dc4dd5ca8b06a755e6d64e9"
-SRC_URI[sha256sum] = "c625a83b4838befc8cafcd54e3619946515d9e44d63d61c4adf7f5513ddfbebf"
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info.inc b/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb
index 3fe1a445b0..e82c818e5c 100644
--- a/meta/recipes-support/shared-mime-info/shared-mime-info.inc
+++ b/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb
@@ -5,16 +5,19 @@ SECTION = "base"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "libxml2 intltool-native glib-2.0 shared-mime-info-native"
+DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native xmlto-native"
-SRC_URI = "http://freedesktop.org/~hadess/shared-mime-info-${PV}.tar.xz"
+SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https"
+SRCREV = "ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1"
+PV = "2.0"
+S = "${WORKDIR}/git"
-inherit autotools pkgconfig gettext
+inherit meson 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
@@ -22,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.inc b/meta/recipes-support/sqlite/sqlite3.inc
index 4af1e09e80..07614bdb3e 100644
--- a/meta/recipes-support/sqlite/sqlite3.inc
+++ b/meta/recipes-support/sqlite/sqlite3.inc
@@ -44,8 +44,6 @@ EXTRA_OECONF = " \
--disable-static-shell \
"
-CFLAGS_append = " -fPIC"
-
# pread() is in POSIX.1-2001 so any reasonable system must surely support it
CFLAGS_append = " -DUSE_PREAD"
diff --git a/meta/recipes-support/sqlite/sqlite3_3.29.0.bb b/meta/recipes-support/sqlite/sqlite3_3.29.0.bb
deleted file mode 100644
index 07e36bede7..0000000000
--- a/meta/recipes-support/sqlite/sqlite3_3.29.0.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require sqlite3.inc
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
-
-SRC_URI = "http://www.sqlite.org/2019/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[md5sum] = "8f3dfe83387e62ecb91c7c5c09c688dc"
-SRC_URI[sha256sum] = "8e7c1e2950b5b04c5944a981cb31fffbf9d2ddda939d536838ebc854481afd5b"
diff --git a/meta/recipes-support/sqlite/sqlite3_3.33.0.bb b/meta/recipes-support/sqlite/sqlite3_3.33.0.bb
new file mode 100644
index 0000000000..611a1bd923
--- /dev/null
+++ b/meta/recipes-support/sqlite/sqlite3_3.33.0.bb
@@ -0,0 +1,10 @@
+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[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-tiny_8.1.1518.bb b/meta/recipes-support/vim/vim-tiny_8.2.bb
index e4c26d23f6..e4c26d23f6 100644
--- a/meta/recipes-support/vim/vim-tiny_8.1.1518.bb
+++ b/meta/recipes-support/vim/vim-tiny_8.2.bb
diff --git a/meta/recipes-support/vim/vim.inc b/meta/recipes-support/vim/vim.inc
index 0a31e68cb7..4d2886c19e 100644
--- a/meta/recipes-support/vim/vim.inc
+++ b/meta/recipes-support/vim/vim.inc
@@ -5,20 +5,24 @@ DEPENDS = "ncurses gettext-native"
# vimdiff doesn't like busybox diff
RSUGGESTS_${PN} = "diffutils"
LICENSE = "vim"
-LIC_FILES_CHKSUM = "file://runtime/doc/uganda.txt;endline=287;md5=f1f82b42360005c70b8c19b0ef493f72"
+LIC_FILES_CHKSUM = "file://runtime/doc/uganda.txt;endline=287;md5=a19edd7ec70d573a005d9e509375a99a"
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 = "202d982b36d87cf91d992bd7e30d3223bdc72cd9"
+SRCREV = "98056533b96b6b5d8849641de93185dd7bcadc44"
+
+# Do not consider .z in x.y.z, as that is updated with every commit
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0"
S = "${WORKDIR}/git"
VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}"
-inherit autotools-brokensep update-alternatives
+inherit autotools-brokensep update-alternatives mime-xdg
CLEANBROKEN = "1"
@@ -84,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
@@ -107,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.1.1518.bb b/meta/recipes-support/vim/vim_8.1.1518.bb
deleted file mode 100644
index 60946a181f..0000000000
--- a/meta/recipes-support/vim/vim_8.1.1518.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require vim.inc
-
-PROVIDES = "xxd"
-
-PACKAGECONFIG_class-native = ""
-BBCLASSEXTEND = "native"
-
-ALTERNATIVE_${PN}_append = " xxd"
-ALTERNATIVE_TARGET[xxd] = "${bindir}/xxd"
-ALTERNATIVE_LINK_NAME[xxd] = "${bindir}/xxd"
diff --git a/meta/recipes-support/vim/vim_8.2.bb b/meta/recipes-support/vim/vim_8.2.bb
new file mode 100644
index 0000000000..709b6ddb55
--- /dev/null
+++ b/meta/recipes-support/vim/vim_8.2.bb
@@ -0,0 +1,15 @@
+require vim.inc
+
+PROVIDES = "xxd"
+
+PACKAGECONFIG_class-native = ""
+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/0001-Add-m4-vapigen.m4.patch b/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch
deleted file mode 100644
index 1c5630ed9c..0000000000
--- a/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 08ca1c48b25c332b75bba2a6b5d757da006e955b Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 7 Oct 2016 16:27:57 +0300
-Subject: [PATCH] Add m4/vapigen.m4
-
-Building without vala will fail if we don't have a vapigen.m4.
-
-Upstream-Status: Pending
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- m4/vapigen.m4 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 96 insertions(+)
- create mode 100644 m4/vapigen.m4
-
-diff --git a/m4/vapigen.m4 b/m4/vapigen.m4
-new file mode 100644
-index 0000000..f2df12f
---- /dev/null
-+++ b/m4/vapigen.m4
-@@ -0,0 +1,96 @@
-+dnl vapigen.m4
-+dnl
-+dnl Copyright 2012 Evan Nemerson
-+dnl
-+dnl This library is free software; you can redistribute it and/or
-+dnl modify it under the terms of the GNU Lesser General Public
-+dnl License as published by the Free Software Foundation; either
-+dnl version 2.1 of the License, or (at your option) any later version.
-+dnl
-+dnl This library is distributed in the hope that it will be useful,
-+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+dnl Lesser General Public License for more details.
-+dnl
-+dnl You should have received a copy of the GNU Lesser General Public
-+dnl License along with this library; if not, write to the Free Software
-+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+
-+# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND-INTROSPECTION], [DEFAULT])
-+# --------------------------------------
-+# Check vapigen existence and version
-+#
-+# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
-+AC_DEFUN([VAPIGEN_CHECK],
-+[
-+ AC_BEFORE([GOBJECT_INTROSPECTION_CHECK],[$0])
-+ AC_BEFORE([GOBJECT_INTROSPECTION_REQUIRE],[$0])
-+
-+ AC_ARG_ENABLE([vala],
-+ [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
-+ AS_IF([test "x$4" = "x"], [
-+ enable_vala=auto
-+ ], [
-+ enable_vala=$4
-+ ])
-+ ])
-+
-+ AS_CASE([$enable_vala], [no], [enable_vala=no],
-+ [yes], [
-+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
-+ AC_MSG_ERROR([Vala bindings require GObject Introspection])
-+ ])
-+ ], [auto], [
-+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
-+ enable_vala=no
-+ ])
-+ ], [
-+ AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
-+ ])
-+
-+ AS_IF([test "x$2" = "x"], [
-+ vapigen_pkg_name=vapigen
-+ ], [
-+ vapigen_pkg_name=vapigen-$2
-+ ])
-+ AS_IF([test "x$1" = "x"], [
-+ vapigen_pkg="$vapigen_pkg_name"
-+ ], [
-+ vapigen_pkg="$vapigen_pkg_name >= $1"
-+ ])
-+
-+ PKG_PROG_PKG_CONFIG
-+
-+ PKG_CHECK_EXISTS([$vapigen_pkg], [
-+ AS_IF([test "$enable_vala" = "auto"], [
-+ enable_vala=yes
-+ ])
-+ ], [
-+ AS_CASE([$enable_vala], [yes], [
-+ AC_MSG_ERROR([$vapigen_pkg not found])
-+ ], [auto], [
-+ enable_vala=no
-+ ])
-+ ])
-+
-+ AC_MSG_CHECKING([for vala])
-+
-+ AS_CASE([$enable_vala],
-+ [yes], [
-+ VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen`
-+ VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen
-+ AS_IF([test "x$2" = "x"], [
-+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen`
-+ ], [
-+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen`
-+ ])
-+ ])
-+
-+ AC_MSG_RESULT([$enable_vala])
-+
-+ AC_SUBST([VAPIGEN])
-+ AC_SUBST([VAPIGEN_VAPIDIR])
-+ AC_SUBST([VAPIGEN_MAKEFILE])
-+
-+ AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes")
-+])
---
-2.1.4
-
diff --git a/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch b/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch
deleted file mode 100644
index fcfc559758..0000000000
--- a/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From b0a579d83e355545b64742c997fe8b1d58bf4207 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Mon, 13 Jun 2016 11:05:00 +0300
-Subject: [PATCH] Don't enable stack-protection by default
-
-These are set by security_flags.inc.
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 068d072..d580f84 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -138,8 +138,6 @@ m4_define([compiler_flags_common],[ dnl
- -fno-common dnl
- -fdiagnostics-show-option dnl
- -fno-strict-aliasing dnl
-- -fstack-protector dnl
-- -fstack-protector-strong dnl
- -fno-semantic-interposition dnl
- -Wno-deprecated-declarations dnl
- ])
---
-2.1.4
-
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.56.3.bb b/meta/recipes-support/vte/vte_0.60.3.bb
index 0deee175df..02a886bce0 100644
--- a/meta/recipes-support/vte/vte_0.56.3.bb
+++ b/meta/recipes-support/vte/vte_0.60.3.bb
@@ -9,18 +9,17 @@ LIC_FILES_CHKSUM = " \
file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \
"
-DEPENDS = "glib-2.0 gtk+3 libpcre2 intltool-native libxml2-native gperf-native"
+DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native icu"
-inherit gnomebase gtk-doc distro_features_check upstream-version-is-even gobject-introspection
+GNOMEBASEBUILDCLASS = "meson"
+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-Don-t-enable-stack-protection-by-default.patch \
- ${@bb.utils.contains('PACKAGECONFIG', 'vala', '', 'file://0001-Add-m4-vapigen.m4.patch', d) } \
- file://0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch \
- file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
- "
-SRC_URI[archive.md5sum] = "adf341807861a5dad9f98e5c701c0769"
-SRC_URI[archive.sha256sum] = "17a1d4bc8848f1d2acfa4c20aaa24b9bac49f057b8909c56d3dafec2e2332648"
+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}"
@@ -41,17 +40,19 @@ do_compile_prepend() {
FILES_${PN}-dev += "${datadir}/vala/vapi/*"
PACKAGECONFIG ??= "gnutls"
-PACKAGECONFIG[vala] = "--enable-vala,--disable-vala,vala-native vala"
-PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,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"
CFLAGS += "-D_GNU_SOURCE"
-# libtool adds "-nostdlib" when g++ is used. This breaks PIE builds.
-# Use libtool-cross (which has a hack to prevent that) instead.
-EXTRA_OEMAKE_class-target = "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
-
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/arm-common b/meta/site/arm-common
index 198c98c6a7..8c37f3fc24 100644
--- a/meta/site/arm-common
+++ b/meta/site/arm-common
@@ -4,9 +4,6 @@ ac_cv_func_lstat_dereferences_slashed_symlink=${ac_cv_func_lstat_dereferences_sl
ac_cv_func_lstat_empty_string_bug=${ac_cv_func_lstat_empty_string_bug=no}
ac_cv_func_stat_empty_string_bug=${ac_cv_func_stat_empty_string_bug=no}
ac_cv_func_stat_ignores_trailing_slash=${ac_cv_func_stat_ignores_trailing_slash=no}
-ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no}
-ac_cv_header_netinet_sctp_uio_h=${ac_cv_header_netinet_sctp_uio_h=no}
-ac_cv_sctp=${ac_cv_sctp=no}
# bash
ac_cv_c_long_double=${ac_cv_c_long_double=yes}
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 1443f8e528..0a665658fb 100644
--- a/meta/site/common-glibc
+++ b/meta/site/common-glibc
@@ -1,5 +1,5 @@
# 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}
ac_cv_func_malloc_works=${ac_cv_func_malloc_works=yes}
@@ -14,10 +14,9 @@ ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes}
ac_cv_func_posix_getgrgid_r=${ac_cv_func_posix_getgrgid_r=yes}
ac_cv_type_uid_t={ac_cv_type_uid_t=yes}
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
@@ -28,6 +27,14 @@ ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes}
# 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}
+gl_cv_func_getcwd_null=${gl_cv_func_getcwd_null=yes}
+gl_cv_func_getcwd_path_max=${gl_cv_func_getcwd_path_max=yes}
+ac_cv_func_getgroups_works=${ac_cv_func_getgroups_works=yes}
+gl_cv_func_nanosleep=${gl_cv_func_nanosleep='no (mishandles large arguments)'}
+gl_cv_func_working_mkstemp=${gl_cv_func_working_mkstemp=yes}
+gl_cv_func_working_mktime=${gl_cv_func_working_mktime=yes}
+gl_cv_func_working_utimes=${gl_cv_func_working_utimes=yes}
# glib
glib_cv_strlcpy=${glib_cv_strlcpy=no}
diff --git a/meta/site/common-linux b/meta/site/common-linux
index 71ec961b15..1c1fdafbb0 100644
--- a/meta/site/common-linux
+++ b/meta/site/common-linux
@@ -47,8 +47,13 @@ hw_cv_func_snprintf_c99=${hw_cv_func_snprintf_c99=yes}
hw_cv_func_vsnprintf_c99=${hw_cv_func_vsnprintf_c99=yes}
# coreutils
+ac_cv_func_chown_works=${ac_cv_func_chown_works=yes}
+ac_cv_func_utime_null=${ac_cv_func_utime_null=yes}
gl_cv_func_fstatat_zero_flag=${gl_cv_func_fstatat_zero_flag=yes}
+gl_cv_func_link_follows_symlink=${gl_cv_func_link_follows_symlink=no}
+gl_cv_func_unlink_busy_text=${gl_cv_func_unlink_busy_text=yes}
gl_cv_have_proc_uptime=${gl_cv_have_proc_uptime=yes}
+gl_cv_pipes_are_fifos=${gl_cv_pipes_are_fifos='yes (1)'}
# mysql
ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls=yes}
diff --git a/meta/site/common-musl b/meta/site/common-musl
index 1b4fc32135..44a7a1aea9 100644
--- a/meta/site/common-musl
+++ b/meta/site/common-musl
@@ -1,9 +1,10 @@
# 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}
ac_cv_func_malloc_works=${ac_cv_func_malloc_works=yes}
ac_cv_func_malloc_0_nonnull=${ac_cv_func_malloc_0_nonnull=yes}
+ac_cv_func_memcmp_working=${ac_cv_func_memcmp_working=yes}
ac_cv_func_getpgrp_void=yes
ac_cv_func_setpgrp_void=yes
ac_cv_func_setgrent_void=yes
@@ -13,6 +14,7 @@ ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes}
ac_cv_func_posix_getgrgid_r=${ac_cv_func_posix_getgrgid_r=yes}
ac_cv_func_getaddrinfo=${ac_cv_func_getaddrinfo=yes}
ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes}
+ac_cv_func_strtod=${ac_cv_func_strtod=yes}
# glib
glib_cv_strlcpy=${glib_cv_strlcpy=no}
@@ -26,15 +28,20 @@ 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}
+gl_cv_func_getcwd_null=${gl_cv_func_getcwd_null=yes}
+gl_cv_func_getcwd_path_max=${gl_cv_func_getcwd_path_max='no, but it is partly working'}
+ac_cv_func_getgroups_works=${ac_cv_func_getgroups_works=yes}
gl_cv_func_gettimeofday_clobber=${gl_cv_func_gettimeofday_clobber=no}
+gl_cv_func_nanosleep=${gl_cv_func_nanosleep=yes}
+gl_cv_func_strtod_works=${gl_cv_func_strtod_works=yes}
gl_cv_func_tzset_clobber=${gl_cv_func_tzset_clobber=no}
gl_cv_func_gettimeofday_posix_signature=${gl_cv_func_gettimeofday_posix_signature=yes}
+gl_cv_func_working_mkstemp=${gl_cv_func_working_mkstemp=yes}
+gl_cv_func_working_mktime=${gl_cv_func_working_mktime=yes}
+gl_cv_func_working_utimes=${gl_cv_func_working_utimes=yes}
ac_cv_func_posix_spawn=${ac_cv_func_posix_spawn=yes}
ac_cv_func_posix_spawn_works=${ac_cv_func_posix_spawn_works=yes}
diff --git a/meta/site/ix86-common b/meta/site/ix86-common
index c5e354c073..a2384372db 100644
--- a/meta/site/ix86-common
+++ b/meta/site/ix86-common
@@ -27,10 +27,7 @@ ac_cv_func_stat_empty_string_bug=${ac_cv_func_stat_empty_string_bug=no}
ac_cv_func_stat_ignores_trailing_slash=${ac_cv_func_stat_ignores_trailing_slash=no}
ac_cv_va_val_copy=${ac_cv_va_val_copy=yes}
-ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no}
-ac_cv_header_netinet_sctp_uio_h=${ac_cv_header_netinet_sctp_uio_h=no}
ac_cv_linux_vers=${ac_cv_linux_vers=2}
-ac_cv_sctp=${ac_cv_sctp=no}
ac_cv_path_ESD_CONFIG=no
lf_cv_sane_realloc=yes
diff --git a/meta/site/nios2-linux b/meta/site/nios2-linux
index 67a3fc8a75..8ac198a0cd 100644
--- a/meta/site/nios2-linux
+++ b/meta/site/nios2-linux
@@ -2,9 +2,6 @@ ac_cv_func_lstat_dereferences_slashed_symlink=${ac_cv_func_lstat_dereferences_sl
ac_cv_func_lstat_empty_string_bug=${ac_cv_func_lstat_empty_string_bug=no}
ac_cv_func_stat_empty_string_bug=${ac_cv_func_stat_empty_string_bug=no}
ac_cv_func_stat_ignores_trailing_slash=${ac_cv_func_stat_ignores_trailing_slash=no}
-ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no}
-ac_cv_header_netinet_sctp_uio_h=${ac_cv_header_netinet_sctp_uio_h=no}
-ac_cv_sctp=${ac_cv_sctp=no}
# apache
ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t=4}
diff --git a/meta/site/powerpc32-linux b/meta/site/powerpc32-linux
index f37e915cb3..172a06cc46 100644
--- a/meta/site/powerpc32-linux
+++ b/meta/site/powerpc32-linux
@@ -39,10 +39,6 @@ cookie_io_functions_use_off64_t=${cookie_io_functions_use_off64_t=yes}
# apache
ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t=4}
-ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no}
-ac_cv_header_netinet_sctp_uio_h=${ac_cv_header_netinet_sctp_uio_h=no}
-ac_cv_sctp=${ac_cv_sctp=no}
-
# ssh
ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_dirent_have_space_d_name=yes}
ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no}
diff --git a/meta/site/sh-common b/meta/site/sh-common
index 97c96934d7..6bda1c237c 100644
--- a/meta/site/sh-common
+++ b/meta/site/sh-common
@@ -31,10 +31,6 @@ ac_cv_time_r_type=${ac_cv_time_r_type=POSIX}
# apache
ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t=4}
-ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no}
-ac_cv_header_netinet_sctp_uio_h=${ac_cv_header_netinet_sctp_uio_h=no}
-ac_cv_sctp=${ac_cv_sctp=no}
-
# ssh
ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_dirent_have_space_d_name=yes}
ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=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/combo-layer b/scripts/combo-layer
index 9b50e9873d..a634dd69d2 100755
--- a/scripts/combo-layer
+++ b/scripts/combo-layer
@@ -80,7 +80,7 @@ class Configuration(object):
logger.debug("Loading config file %s" % self.conffile)
self.parser = configparser.ConfigParser()
with open(self.conffile) as f:
- self.parser.readfp(f)
+ self.parser.read_file(f)
# initialize default values
self.commit_msg_template = "Automatic commit to update last_revision"
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/gen-lockedsig-cache b/scripts/gen-lockedsig-cache
index 9bfae9d832..cd8f9a4356 100755
--- a/scripts/gen-lockedsig-cache
+++ b/scripts/gen-lockedsig-cache
@@ -78,11 +78,15 @@ files = set()
sstate_content_cache = {}
for s in sigs:
prefix = s[:2]
+ prefix2 = s[2:4]
if prefix not in sstate_content_cache:
- sstate_content_cache[prefix] = build_sha_cache(prefix)
+ sstate_content_cache[prefix] = {}
+ if prefix2 not in sstate_content_cache[prefix]:
+ sstate_content_cache[prefix][prefix2] = build_sha_cache(prefix + "/" + prefix2)
- for f in sstate_content_cache[prefix][s]:
- files.add(f)
+ if s in sstate_content_cache[prefix][prefix2]:
+ for f in sstate_content_cache[prefix][prefix2][s]:
+ files.add(f)
elapsed = time.perf_counter() - start_time
print("Gathering file list took %.1fs" % elapsed)
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 d1ce2309f9..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)
@@ -212,6 +218,9 @@ def deploy(args, config, basepath, workspace):
scp_port = "-P %s" % args.port
ssh_port = "-p %s" % args.port
+ if args.key:
+ extraoptions += ' -i %s' % args.key
+
# In order to delete previously deployed files and have the manifest file on
# the target, we write out a shell script and then copy it to the target
# so we can then run it (piping tar output to it).
@@ -326,6 +335,8 @@ def register_commands(subparsers, context):
parser_deploy.add_argument('--no-check-space', help='Do not check for available space before deploying', action='store_true')
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='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',
@@ -349,4 +360,7 @@ def register_commands(subparsers, context):
parser_undeploy.add_argument('-n', '--dry-run', help='List files to be undeployed only', action='store_true')
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='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 1646971a91..261d642d4a 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -145,8 +145,8 @@ def add(args, config, basepath, workspace):
extracmdopts += ' --src-subdir "%s"' % args.src_subdir
if args.autorev:
extracmdopts += ' -a'
- if args.fetch_dev:
- extracmdopts += ' --fetch-dev'
+ if args.npm_dev:
+ extracmdopts += ' --npm-dev'
if args.mirrors:
extracmdopts += ' --mirrors'
if args.srcrev:
@@ -260,14 +260,10 @@ def add(args, config, basepath, workspace):
f.write('}\n')
if bb.data.inherits_class('npm', rd):
- f.write('do_install_append() {\n')
- f.write(' # Remove files added to source dir by devtool/externalsrc\n')
- f.write(' rm -f ${NPM_INSTALLDIR}/singletask.lock\n')
- f.write(' rm -rf ${NPM_INSTALLDIR}/.git\n')
- f.write(' rm -rf ${NPM_INSTALLDIR}/oe-local-files\n')
- f.write(' for symlink in ${EXTERNALSRC_SYMLINKS} ; do\n')
- f.write(' rm -f ${NPM_INSTALLDIR}/${symlink%%:*}\n')
- f.write(' done\n')
+ f.write('python do_configure_append() {\n')
+ f.write(' pkgdir = d.getVar("NPM_PACKAGE")\n')
+ f.write(' lockfile = os.path.join(pkgdir, "singletask.lock")\n')
+ f.write(' bb.utils.remove(lockfile)\n')
f.write('}\n')
# Check if the new layer provides recipes whose priorities have been
@@ -535,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)
@@ -940,8 +935,10 @@ def modify(args, config, basepath, workspace):
'}\n')
if rd.getVarFlag('do_menuconfig','task'):
f.write('\ndo_configure_append() {\n'
- ' cp ${B}/.config ${S}/.config.baseline\n'
- ' ln -sfT ${B}/.config ${S}/.config.new\n'
+ ' if [ ! ${DEVTOOL_DISABLE_MENUCONFIG} ]; then\n'
+ ' cp ${B}/.config ${S}/.config.baseline\n'
+ ' ln -sfT ${B}/.config ${S}/.config.new\n'
+ ' fi\n'
'}\n')
if initial_rev:
f.write('\n# initial_rev: %s\n' % initial_rev)
@@ -1713,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'
@@ -1852,7 +1849,7 @@ def status(args, config, basepath, workspace):
return 0
-def _reset(recipes, no_clean, config, basepath, workspace):
+def _reset(recipes, no_clean, remove_work, config, basepath, workspace):
"""Reset one or more recipes"""
import oe.path
@@ -1930,10 +1927,15 @@ def _reset(recipes, no_clean, config, basepath, workspace):
srctreebase = workspace[pn]['srctreebase']
if os.path.isdir(srctreebase):
if os.listdir(srctreebase):
- # We don't want to risk wiping out any work in progress
- logger.info('Leaving source tree %s as-is; if you no '
- 'longer need it then please delete it manually'
- % srctreebase)
+ if remove_work:
+ logger.info('-r argument used on %s, removing source tree.'
+ ' You will lose any unsaved work' %pn)
+ shutil.rmtree(srctreebase)
+ else:
+ # We don't want to risk wiping out any work in progress
+ logger.info('Leaving source tree %s as-is; if you no '
+ 'longer need it then please delete it manually'
+ % srctreebase)
else:
# This is unlikely, but if it's empty we can just remove it
os.rmdir(srctreebase)
@@ -1943,6 +1945,10 @@ def _reset(recipes, no_clean, config, basepath, workspace):
def reset(args, config, basepath, workspace):
"""Entry point for the devtool 'reset' subcommand"""
import bb
+ import shutil
+
+ recipes = ""
+
if args.recipename:
if args.all:
raise DevtoolError("Recipe cannot be specified if -a/--all is used")
@@ -1957,7 +1963,7 @@ def reset(args, config, basepath, workspace):
else:
recipes = args.recipename
- _reset(recipes, args.no_clean, config, basepath, workspace)
+ _reset(recipes, args.no_clean, args.remove_work, config, basepath, workspace)
return 0
@@ -2009,9 +2015,10 @@ def finish(args, config, basepath, workspace):
raise DevtoolError('Source tree is not clean:\n\n%s\nEnsure you have committed your changes or use -f/--force if you are sure there\'s nothing that needs to be committed' % dirty)
no_clean = args.no_clean
+ remove_work=args.remove_work
tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
try:
- rd = parse_recipe(config, tinfoil, args.recipename, True, False)
+ rd = parse_recipe(config, tinfoil, args.recipename, True)
if not rd:
return 1
@@ -2160,7 +2167,7 @@ def finish(args, config, basepath, workspace):
if args.dry_run:
logger.info('Resetting recipe (dry-run)')
else:
- _reset([args.recipename], no_clean=no_clean, config=config, basepath=basepath, workspace=workspace)
+ _reset([args.recipename], no_clean=no_clean, remove_work=remove_work, config=config, basepath=basepath, workspace=workspace)
return 0
@@ -2187,7 +2194,7 @@ def register_commands(subparsers, context):
group.add_argument('--same-dir', '-s', help='Build in same directory as source', action="store_true")
group.add_argument('--no-same-dir', help='Force build in a separate build directory', action="store_true")
parser_add.add_argument('--fetch', '-f', help='Fetch the specified URI and extract it to create the source tree (deprecated - pass as positional argument instead)', metavar='URI')
- parser_add.add_argument('--fetch-dev', help='For npm, also fetch devDependencies', action="store_true")
+ parser_add.add_argument('--npm-dev', help='For npm, also fetch devDependencies', action="store_true")
parser_add.add_argument('--version', '-V', help='Version to use within recipe (PV)')
parser_add.add_argument('--no-git', '-g', help='If fetching source, do not set up source tree as a git repository', action="store_true")
group = parser_add.add_mutually_exclusive_group()
@@ -2272,6 +2279,7 @@ def register_commands(subparsers, context):
parser_reset.add_argument('recipename', nargs='*', help='Recipe to reset')
parser_reset.add_argument('--all', '-a', action="store_true", help='Reset all recipes (clear workspace)')
parser_reset.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output')
+ parser_reset.add_argument('--remove-work', '-r', action="store_true", help='Clean the sources directory along with append')
parser_reset.set_defaults(func=reset)
parser_finish = subparsers.add_parser('finish', help='Finish working on a recipe in your workspace',
@@ -2282,6 +2290,7 @@ def register_commands(subparsers, context):
parser_finish.add_argument('--mode', '-m', choices=['patch', 'srcrev', 'auto'], default='auto', help='Update mode (where %(metavar)s is %(choices)s; default is %(default)s)', metavar='MODE')
parser_finish.add_argument('--initial-rev', help='Override starting revision for patches')
parser_finish.add_argument('--force', '-f', action="store_true", help='Force continuing even if there are uncommitted changes in the source tree repository')
+ parser_finish.add_argument('--remove-work', '-r', action="store_true", help='Clean the sources directory under workspace')
parser_finish.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output')
parser_finish.add_argument('--no-overrides', '-O', action="store_true", help='Do not handle other override branches (if they exist)')
parser_finish.add_argument('--dry-run', '-N', action="store_true", help='Dry-run (just report changes instead of writing them)')
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py
index 18c5b66a29..0c1de8cdc7 100644
--- a/scripts/lib/devtool/upgrade.py
+++ b/scripts/lib/devtool/upgrade.py
@@ -32,7 +32,7 @@ def _run(cmd, cwd=''):
def _get_srctree(tmpdir):
srctree = tmpdir
- dirs = os.listdir(tmpdir)
+ dirs = scriptutils.filter_src_subdirs(tmpdir)
if len(dirs) == 1:
srctree = os.path.join(tmpdir, dirs[0])
return srctree
@@ -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()
@@ -281,7 +281,8 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee
logger.info('Preserving temporary directory %s' % tmpsrctree)
else:
shutil.rmtree(tmpsrctree)
- shutil.rmtree(tmpdir)
+ if tmpdir != tmpsrctree:
+ shutil.rmtree(tmpdir)
return (rev, md5, sha256, srcbranch, srcsubdir_rel)
@@ -390,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:
@@ -549,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 1fb6b55530..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')
@@ -477,8 +478,6 @@ def create_recipe(args):
storeTagName = params['tag']
params['nobranch'] = '1'
del params['tag']
- if scheme == 'npm':
- params['noverify'] = '1'
fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, params))
tmpparent = tinfoil.config_data.getVar('BASE_WORKDIR')
@@ -495,9 +494,7 @@ def create_recipe(args):
if ftmpdir and args.keep_temp:
logger.info('Fetch temp directory is %s' % ftmpdir)
- dirlist = os.listdir(srctree)
- filterout = ['git.indirectionsymlink']
- dirlist = [x for x in dirlist if x not in filterout]
+ dirlist = scriptutils.filter_src_subdirs(srctree)
logger.debug('Directory listing (excluding filtered out):\n %s' % '\n '.join(dirlist))
if len(dirlist) == 1:
singleitem = os.path.join(srctree, dirlist[0])
@@ -716,10 +713,8 @@ def create_recipe(args):
lines_after.append('INSANE_SKIP_${PN} += "already-stripped"')
lines_after.append('')
- if args.fetch_dev:
- extravalues['fetchdev'] = True
- else:
- extravalues['fetchdev'] = None
+ if args.npm_dev:
+ extravalues['NPM_INSTALL_DEV'] = 1
# Find all plugins that want to register handlers
logger.debug('Loading recipe handlers')
@@ -835,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:
@@ -1071,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 = {}
@@ -1315,7 +1310,7 @@ def register_commands(subparsers):
group.add_argument('-S', '--srcrev', help='Source revision to fetch if fetching from an SCM such as git (default latest)')
parser_create.add_argument('-B', '--srcbranch', help='Branch in source repository if fetching from an SCM such as git (default master)')
parser_create.add_argument('--keep-temp', action="store_true", help='Keep temporary directory (for debugging)')
- parser_create.add_argument('--fetch-dev', action="store_true", help='For npm, also fetch devDependencies')
+ parser_create.add_argument('--npm-dev', action="store_true", help='For npm, also fetch devDependencies')
parser_create.add_argument('--devtool', action="store_true", help=argparse.SUPPRESS)
parser_create.add_argument('--mirrors', action="store_true", help='Enable PREMIRRORS and MIRRORS for source tree fetching (disabled by default).')
parser_create.set_defaults(func=create_recipe)
diff --git a/scripts/lib/recipetool/create_buildsys.py b/scripts/lib/recipetool/create_buildsys.py
index 3cb02766c8..35a97c9345 100644
--- a/scripts/lib/recipetool/create_buildsys.py
+++ b/scripts/lib/recipetool/create_buildsys.py
@@ -226,9 +226,9 @@ class CmakeRecipeHandler(RecipeHandler):
elif pkg == 'PkgConfig':
inherits.append('pkgconfig')
elif pkg == 'PythonInterp':
- inherits.append('pythonnative')
+ inherits.append('python3native')
elif pkg == 'PythonLibs':
- inherits.append('python-dir')
+ inherits.append('python3-dir')
else:
# Try to map via looking at installed CMake packages in pkgdata
dep = find_cmake_package(pkg)
@@ -417,7 +417,7 @@ class AutotoolsRecipeHandler(RecipeHandler):
}
progclassmap = {'gconftool-2': 'gconf',
'pkg-config': 'pkgconfig',
- 'python': 'pythonnative',
+ 'python': 'python3native',
'python3': 'python3native',
'perl': 'perlnative',
'makeinfo': 'texinfo',
@@ -566,16 +566,7 @@ class AutotoolsRecipeHandler(RecipeHandler):
elif keyword == 'AX_PROG_XSLTPROC':
deps.append('libxslt-native')
elif keyword in ['AC_PYTHON_DEVEL', 'AX_PYTHON_DEVEL', 'AM_PATH_PYTHON']:
- pythonclass = 'pythonnative'
- res = version_re.search(value)
- if res:
- if res.group(1).startswith('3'):
- pythonclass = 'python3native'
- # Avoid replacing python3native with pythonnative
- if not pythonclass in inherits and not 'python3native' in inherits:
- if 'pythonnative' in inherits:
- inherits.remove('pythonnative')
- inherits.append(pythonclass)
+ pythonclass = 'python3native'
elif keyword == 'AX_WITH_CURSES':
deps.append('ncurses')
elif keyword == 'AX_PATH_BDB':
diff --git a/scripts/lib/recipetool/create_npm.py b/scripts/lib/recipetool/create_npm.py
index 39429ebad3..579b7ae48a 100644
--- a/scripts/lib/recipetool/create_npm.py
+++ b/scripts/lib/recipetool/create_npm.py
@@ -1,321 +1,255 @@
-# Recipe creation tool - node.js NPM module support plugin
-#
# Copyright (C) 2016 Intel Corporation
+# Copyright (C) 2020 Savoir-Faire Linux
#
# SPDX-License-Identifier: GPL-2.0-only
#
+"""Recipe creation tool - npm module support plugin"""
+import json
import os
+import re
import sys
-import logging
-import subprocess
import tempfile
-import shutil
-import json
-from recipetool.create import RecipeHandler, split_pkg_licenses, handle_license_vars
+import bb
+from bb.fetch2.npm import NpmEnvironment
+from bb.fetch2.npmsw import foreach_dependencies
+from recipetool.create import RecipeHandler
+from recipetool.create import guess_license
+from recipetool.create import split_pkg_licenses
-logger = logging.getLogger('recipetool')
+TINFOIL = None
+def tinfoil_init(instance):
+ """Initialize tinfoil"""
+ global TINFOIL
+ TINFOIL = instance
-tinfoil = None
+class NpmRecipeHandler(RecipeHandler):
+ """Class to handle the npm recipe creation"""
+
+ @staticmethod
+ def _npm_name(name):
+ """Generate a Yocto friendly npm name"""
+ name = re.sub("/", "-", name)
+ name = name.lower()
+ name = re.sub(r"[^\-a-z0-9]", "", name)
+ name = name.strip("-")
+ return name
+
+ @staticmethod
+ def _get_registry(lines):
+ """Get the registry value from the 'npm://registry' url"""
+ registry = None
+
+ def _handle_registry(varname, origvalue, op, newlines):
+ nonlocal registry
+ if origvalue.startswith("npm://"):
+ registry = re.sub(r"^npm://", "http://", origvalue.split(";")[0])
+ return origvalue, None, 0, True
-def tinfoil_init(instance):
- global tinfoil
- tinfoil = instance
+ bb.utils.edit_metadata(lines, ["SRC_URI"], _handle_registry)
+ return registry
-class NpmRecipeHandler(RecipeHandler):
- lockdownpath = None
+ @staticmethod
+ def _ensure_npm():
+ """Check if the 'npm' command is available in the recipes"""
+ if not TINFOIL.recipes_parsed:
+ TINFOIL.parse_recipes()
- def _ensure_npm(self, fixed_setup=False):
- if not tinfoil.recipes_parsed:
- tinfoil.parse_recipes()
try:
- rd = tinfoil.parse_recipe('nodejs-native')
+ d = TINFOIL.parse_recipe("nodejs-native")
except bb.providers.NoProvider:
- if fixed_setup:
- msg = 'nodejs-native is required for npm but is not available within this SDK'
- else:
- msg = 'nodejs-native is required for npm but is not available - you will likely need to add a layer that provides nodejs'
- logger.error(msg)
- return None
- bindir = rd.getVar('STAGING_BINDIR_NATIVE')
- npmpath = os.path.join(bindir, 'npm')
+ bb.error("Nothing provides 'nodejs-native' which is required for the build")
+ bb.note("You will likely need to add a layer that provides nodejs")
+ sys.exit(14)
+
+ bindir = d.getVar("STAGING_BINDIR_NATIVE")
+ npmpath = os.path.join(bindir, "npm")
+
if not os.path.exists(npmpath):
- tinfoil.build_targets('nodejs-native', 'addto_recipe_sysroot')
+ TINFOIL.build_targets("nodejs-native", "addto_recipe_sysroot")
+
if not os.path.exists(npmpath):
- logger.error('npm required to process specified source, but nodejs-native did not seem to populate it')
- return None
+ bb.error("Failed to add 'npm' to sysroot")
+ sys.exit(14)
+
return bindir
- def _handle_license(self, data):
- '''
- Handle the license value from an npm package.json file
- '''
- license = None
- if 'license' in data:
- license = data['license']
- if isinstance(license, dict):
- license = license.get('type', None)
- if license:
- if 'OR' in license:
- license = license.replace('OR', '|')
- license = license.replace('AND', '&')
- license = license.replace(' ', '_')
- if not license[0] == '(':
- license = '(' + license + ')'
- else:
- license = license.replace('AND', '&')
- if license[0] == '(':
- license = license[1:]
- if license[-1] == ')':
- license = license[:-1]
- license = license.replace('MIT/X11', 'MIT')
- license = license.replace('Public Domain', 'PD')
- license = license.replace('SEE LICENSE IN EULA',
- 'SEE-LICENSE-IN-EULA')
- return license
-
- def _shrinkwrap(self, srctree, localfilesdir, extravalues, lines_before, d):
- try:
- runenv = dict(os.environ, PATH=d.getVar('PATH'))
- bb.process.run('npm shrinkwrap', cwd=srctree, stderr=subprocess.STDOUT, env=runenv, shell=True)
- except bb.process.ExecutionError as e:
- logger.warning('npm shrinkwrap failed:\n%s' % e.stdout)
- return
-
- tmpfile = os.path.join(localfilesdir, 'npm-shrinkwrap.json')
- shutil.move(os.path.join(srctree, 'npm-shrinkwrap.json'), tmpfile)
- extravalues.setdefault('extrafiles', {})
- extravalues['extrafiles']['npm-shrinkwrap.json'] = tmpfile
- lines_before.append('NPM_SHRINKWRAP := "${THISDIR}/${PN}/npm-shrinkwrap.json"')
-
- def _lockdown(self, srctree, localfilesdir, extravalues, lines_before, d):
- runenv = dict(os.environ, PATH=d.getVar('PATH'))
- if not NpmRecipeHandler.lockdownpath:
- NpmRecipeHandler.lockdownpath = tempfile.mkdtemp('recipetool-npm-lockdown')
- bb.process.run('npm install lockdown --prefix %s' % NpmRecipeHandler.lockdownpath,
- cwd=srctree, stderr=subprocess.STDOUT, env=runenv, shell=True)
- relockbin = os.path.join(NpmRecipeHandler.lockdownpath, 'node_modules', 'lockdown', 'relock.js')
- if not os.path.exists(relockbin):
- logger.warning('Could not find relock.js within lockdown directory; skipping lockdown')
- return
- try:
- bb.process.run('node %s' % relockbin, cwd=srctree, stderr=subprocess.STDOUT, env=runenv, shell=True)
- except bb.process.ExecutionError as e:
- logger.warning('lockdown-relock failed:\n%s' % e.stdout)
- return
-
- tmpfile = os.path.join(localfilesdir, 'lockdown.json')
- shutil.move(os.path.join(srctree, 'lockdown.json'), tmpfile)
- extravalues.setdefault('extrafiles', {})
- extravalues['extrafiles']['lockdown.json'] = tmpfile
- lines_before.append('NPM_LOCKDOWN := "${THISDIR}/${PN}/lockdown.json"')
-
- def _handle_dependencies(self, d, deps, optdeps, devdeps, lines_before, srctree):
- import scriptutils
- # If this isn't a single module we need to get the dependencies
- # and add them to SRC_URI
- def varfunc(varname, origvalue, op, newlines):
- if varname == 'SRC_URI':
- if not origvalue.startswith('npm://'):
- src_uri = origvalue.split()
- deplist = {}
- for dep, depver in optdeps.items():
- depdata = self.get_npm_data(dep, depver, d)
- if self.check_npm_optional_dependency(depdata):
- deplist[dep] = depdata
- for dep, depver in devdeps.items():
- depdata = self.get_npm_data(dep, depver, d)
- if self.check_npm_optional_dependency(depdata):
- deplist[dep] = depdata
- for dep, depver in deps.items():
- depdata = self.get_npm_data(dep, depver, d)
- deplist[dep] = depdata
-
- extra_urls = []
- for dep, depdata in deplist.items():
- version = depdata.get('version', None)
- if version:
- url = 'npm://registry.npmjs.org;name=%s;version=%s;subdir=node_modules/%s' % (dep, version, dep)
- extra_urls.append(url)
- if extra_urls:
- scriptutils.fetch_url(tinfoil, ' '.join(extra_urls), None, srctree, logger)
- src_uri.extend(extra_urls)
- return src_uri, None, -1, True
- return origvalue, None, 0, True
- updated, newlines = bb.utils.edit_metadata(lines_before, ['SRC_URI'], varfunc)
- if updated:
- del lines_before[:]
- for line in newlines:
- # Hack to avoid newlines that edit_metadata inserts
- if line.endswith('\n'):
- line = line[:-1]
- lines_before.append(line)
- return updated
+ @staticmethod
+ def _npm_global_configs(dev):
+ """Get the npm global configuration"""
+ configs = []
+
+ if dev:
+ configs.append(("also", "development"))
+ else:
+ configs.append(("only", "production"))
+
+ configs.append(("save", "false"))
+ configs.append(("package-lock", "false"))
+ configs.append(("shrinkwrap", "false"))
+ return configs
+
+ def _run_npm_install(self, d, srctree, registry, dev):
+ """Run the 'npm install' command without building the addons"""
+ configs = self._npm_global_configs(dev)
+ configs.append(("ignore-scripts", "true"))
+
+ if registry:
+ configs.append(("registry", registry))
+
+ bb.utils.remove(os.path.join(srctree, "node_modules"), recurse=True)
+
+ env = NpmEnvironment(d, configs=configs)
+ env.run("npm install", workdir=srctree)
+
+ def _generate_shrinkwrap(self, d, srctree, dev):
+ """Check and generate the 'npm-shrinkwrap.json' file if needed"""
+ configs = self._npm_global_configs(dev)
+
+ env = NpmEnvironment(d, configs=configs)
+ env.run("npm shrinkwrap", workdir=srctree)
+
+ return os.path.join(srctree, "npm-shrinkwrap.json")
+
+ def _handle_licenses(self, srctree, shrinkwrap_file, dev):
+ """Return the extra license files and the list of packages"""
+ licfiles = []
+ packages = {}
+
+ def _licfiles_append(licfile):
+ """Append 'licfile' to the license files list"""
+ licfilepath = os.path.join(srctree, licfile)
+ licmd5 = bb.utils.md5_file(licfilepath)
+ licfiles.append("file://%s;md5=%s" % (licfile, licmd5))
+
+ # Handle the parent package
+ _licfiles_append("package.json")
+ packages["${PN}"] = ""
+
+ # Handle the dependencies
+ def _handle_dependency(name, params, deptree):
+ suffix = "-".join([self._npm_name(dep) for dep in deptree])
+ destdirs = [os.path.join("node_modules", dep) for dep in deptree]
+ destdir = os.path.join(*destdirs)
+ _licfiles_append(os.path.join(destdir, "package.json"))
+ packages["${PN}-" + suffix] = destdir
+
+ with open(shrinkwrap_file, "r") as f:
+ shrinkwrap = json.load(f)
+
+ foreach_dependencies(shrinkwrap, _handle_dependency, dev)
+
+ return licfiles, packages
def process(self, srctree, classes, lines_before, lines_after, handled, extravalues):
- import bb.utils
- import oe.package
- from collections import OrderedDict
+ """Handle the npm recipe creation"""
- if 'buildsystem' in handled:
+ if "buildsystem" in handled:
return False
- def read_package_json(fn):
- with open(fn, 'r', errors='surrogateescape') as f:
- return json.loads(f.read())
+ files = RecipeHandler.checkfiles(srctree, ["package.json"])
- files = RecipeHandler.checkfiles(srctree, ['package.json'])
- if files:
- d = bb.data.createCopy(tinfoil.config_data)
- npm_bindir = self._ensure_npm()
- if not npm_bindir:
- sys.exit(14)
- d.prependVar('PATH', '%s:' % npm_bindir)
-
- data = read_package_json(files[0])
- if 'name' in data and 'version' in data:
- extravalues['PN'] = data['name']
- extravalues['PV'] = data['version']
- classes.append('npm')
- handled.append('buildsystem')
- if 'description' in data:
- extravalues['SUMMARY'] = data['description']
- if 'homepage' in data:
- extravalues['HOMEPAGE'] = data['homepage']
-
- fetchdev = extravalues['fetchdev'] or None
- deps, optdeps, devdeps = self.get_npm_package_dependencies(data, fetchdev)
- self._handle_dependencies(d, deps, optdeps, devdeps, lines_before, srctree)
-
- # Shrinkwrap
- localfilesdir = tempfile.mkdtemp(prefix='recipetool-npm')
- self._shrinkwrap(srctree, localfilesdir, extravalues, lines_before, d)
-
- # Lockdown
- self._lockdown(srctree, localfilesdir, extravalues, lines_before, d)
-
- # Split each npm module out to is own package
- npmpackages = oe.package.npm_split_package_dirs(srctree)
- licvalues = None
- for item in handled:
- if isinstance(item, tuple):
- if item[0] == 'license':
- licvalues = item[1]
- break
- if not licvalues:
- licvalues = handle_license_vars(srctree, lines_before, handled, extravalues, d)
- if licvalues:
- # Augment the license list with information we have in the packages
- licenses = {}
- license = self._handle_license(data)
- if license:
- licenses['${PN}'] = license
- for pkgname, pkgitem in npmpackages.items():
- _, pdata = pkgitem
- license = self._handle_license(pdata)
- if license:
- licenses[pkgname] = license
- # Now write out the package-specific license values
- # We need to strip out the json data dicts for this since split_pkg_licenses
- # isn't expecting it
- packages = OrderedDict((x,y[0]) for x,y in npmpackages.items())
- packages['${PN}'] = ''
- pkglicenses = split_pkg_licenses(licvalues, packages, lines_after, licenses)
- all_licenses = list(set([item.replace('_', ' ') for pkglicense in pkglicenses.values() for item in pkglicense]))
- if '&' in all_licenses:
- all_licenses.remove('&')
- extravalues['LICENSE'] = ' & '.join(all_licenses)
-
- # Need to move S setting after inherit npm
- for i, line in enumerate(lines_before):
- if line.startswith('S ='):
- lines_before.pop(i)
- lines_after.insert(0, '# Must be set after inherit npm since that itself sets S')
- lines_after.insert(1, line)
- break
-
- return True
-
- return False
-
- # FIXME this is duplicated from lib/bb/fetch2/npm.py
- def _parse_view(self, output):
- '''
- Parse the output of npm view --json; the last JSON result
- is assumed to be the one that we're interested in.
- '''
- pdata = None
- outdeps = {}
- datalines = []
- bracelevel = 0
- for line in output.splitlines():
- if bracelevel:
- datalines.append(line)
- elif '{' in line:
- datalines = []
- datalines.append(line)
- bracelevel = bracelevel + line.count('{') - line.count('}')
- if datalines:
- pdata = json.loads('\n'.join(datalines))
- return pdata
-
- # FIXME this is effectively duplicated from lib/bb/fetch2/npm.py
- # (split out from _getdependencies())
- def get_npm_data(self, pkg, version, d):
- import bb.fetch2
- pkgfullname = pkg
- if version != '*' and not '/' in version:
- pkgfullname += "@'%s'" % version
- logger.debug(2, "Calling getdeps on %s" % pkg)
- runenv = dict(os.environ, PATH=d.getVar('PATH'))
- fetchcmd = "npm view %s --json" % pkgfullname
- output, _ = bb.process.run(fetchcmd, stderr=subprocess.STDOUT, env=runenv, shell=True)
- data = self._parse_view(output)
- return data
-
- # FIXME this is effectively duplicated from lib/bb/fetch2/npm.py
- # (split out from _getdependencies())
- def get_npm_package_dependencies(self, pdata, fetchdev):
- dependencies = pdata.get('dependencies', {})
- optionalDependencies = pdata.get('optionalDependencies', {})
- dependencies.update(optionalDependencies)
- if fetchdev:
- devDependencies = pdata.get('devDependencies', {})
- dependencies.update(devDependencies)
- else:
- devDependencies = {}
- depsfound = {}
- optdepsfound = {}
- devdepsfound = {}
- for dep in dependencies:
- if dep in optionalDependencies:
- optdepsfound[dep] = dependencies[dep]
- elif dep in devDependencies:
- devdepsfound[dep] = dependencies[dep]
- else:
- depsfound[dep] = dependencies[dep]
- return depsfound, optdepsfound, devdepsfound
-
- # FIXME this is effectively duplicated from lib/bb/fetch2/npm.py
- # (split out from _getdependencies())
- def check_npm_optional_dependency(self, pdata):
- pkg_os = pdata.get('os', None)
- if pkg_os:
- if not isinstance(pkg_os, list):
- pkg_os = [pkg_os]
- blacklist = False
- for item in pkg_os:
- if item.startswith('!'):
- blacklist = True
- break
- if (not blacklist and 'linux' not in pkg_os) or '!linux' in pkg_os:
- pkg = pdata.get('name', 'Unnamed package')
- logger.debug(2, "Skipping %s since it's incompatible with Linux" % pkg)
- return False
- return True
+ if not files:
+ return False
+ with open(files[0], "r") as f:
+ data = json.load(f)
+
+ if "name" not in data or "version" not in data:
+ return False
+
+ extravalues["PN"] = self._npm_name(data["name"])
+ extravalues["PV"] = data["version"]
+
+ if "description" in data:
+ extravalues["SUMMARY"] = data["description"]
+
+ if "homepage" in data:
+ extravalues["HOMEPAGE"] = data["homepage"]
+
+ dev = bb.utils.to_boolean(str(extravalues.get("NPM_INSTALL_DEV", "0")), False)
+ registry = self._get_registry(lines_before)
+
+ bb.note("Checking if npm is available ...")
+ # The native npm is used here (and not the host one) to ensure that the
+ # npm version is high enough to ensure an efficient dependency tree
+ # resolution and avoid issue with the shrinkwrap file format.
+ # Moreover the native npm is mandatory for the build.
+ bindir = self._ensure_npm()
+
+ d = bb.data.createCopy(TINFOIL.config_data)
+ d.prependVar("PATH", bindir + ":")
+ d.setVar("S", srctree)
+
+ bb.note("Generating shrinkwrap file ...")
+ # To generate the shrinkwrap file the dependencies have to be installed
+ # first. During the generation process some files may be updated /
+ # deleted. By default devtool tracks the diffs in the srctree and raises
+ # errors when finishing the recipe if some diffs are found.
+ git_exclude_file = os.path.join(srctree, ".git", "info", "exclude")
+ if os.path.exists(git_exclude_file):
+ with open(git_exclude_file, "r+") as f:
+ lines = f.readlines()
+ for line in ["/node_modules/", "/npm-shrinkwrap.json"]:
+ if line not in lines:
+ f.write(line + "\n")
+
+ lock_file = os.path.join(srctree, "package-lock.json")
+ lock_copy = lock_file + ".copy"
+ if os.path.exists(lock_file):
+ bb.utils.copyfile(lock_file, lock_copy)
+
+ self._run_npm_install(d, srctree, registry, dev)
+ shrinkwrap_file = self._generate_shrinkwrap(d, srctree, dev)
+
+ if os.path.exists(lock_copy):
+ bb.utils.movefile(lock_copy, lock_file)
+
+ # Add the shrinkwrap file as 'extrafiles'
+ shrinkwrap_copy = shrinkwrap_file + ".copy"
+ bb.utils.copyfile(shrinkwrap_file, shrinkwrap_copy)
+ extravalues.setdefault("extrafiles", {})
+ extravalues["extrafiles"]["npm-shrinkwrap.json"] = shrinkwrap_copy
+
+ url_local = "npmsw://%s" % shrinkwrap_file
+ url_recipe= "npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json"
+
+ if dev:
+ url_local += ";dev=1"
+ url_recipe += ";dev=1"
+
+ # Add the npmsw url in the SRC_URI of the generated recipe
+ def _handle_srcuri(varname, origvalue, op, newlines):
+ """Update the version value and add the 'npmsw://' url"""
+ value = origvalue.replace("version=" + data["version"], "version=${PV}")
+ value = value.replace("version=latest", "version=${PV}")
+ values = [line.strip() for line in value.strip('\n').splitlines()]
+ values.append(url_recipe)
+ return values, None, 4, False
+
+ (_, newlines) = bb.utils.edit_metadata(lines_before, ["SRC_URI"], _handle_srcuri)
+ lines_before[:] = [line.rstrip('\n') for line in newlines]
+
+ # In order to generate correct licence checksums in the recipe the
+ # dependencies have to be fetched again using the npmsw url
+ bb.note("Fetching npm dependencies ...")
+ bb.utils.remove(os.path.join(srctree, "node_modules"), recurse=True)
+ fetcher = bb.fetch2.Fetch([url_local], d)
+ fetcher.download()
+ fetcher.unpack(srctree)
+
+ bb.note("Handling licences ...")
+ (licfiles, packages) = self._handle_licenses(srctree, shrinkwrap_file, dev)
+ extravalues["LIC_FILES_CHKSUM"] = licfiles
+ split_pkg_licenses(guess_license(srctree, d), packages, lines_after, [])
+
+ classes.append("npm")
+ handled.append("buildsystem")
+
+ return True
def register_recipe_handlers(handlers):
+ """Register the npm handler"""
handlers.append((NpmRecipeHandler(), 60))
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 883b52517b..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:
@@ -186,6 +185,10 @@ class ResultsTextReport(object):
havefailed = True
if line['machine'] not in machines:
machines.append(line['machine'])
+ reporttotalvalues = {}
+ for k in cols:
+ reporttotalvalues[k] = '%s' % sum([line[k] for line in test_count_reports])
+ reporttotalvalues['count'] = '%s' % len(test_count_reports)
for (machine, report) in self.ptests.items():
for ptest in self.ptests[machine]:
if len(ptest) > maxlen['ptest']:
@@ -199,6 +202,7 @@ class ResultsTextReport(object):
if len(ltpposixtest) > maxlen['ltpposixtest']:
maxlen['ltpposixtest'] = len(ltpposixtest)
output = template.render(reportvalues=reportvalues,
+ reporttotalvalues=reporttotalvalues,
havefailed=havefailed,
machines=machines,
ptests=self.ptests,
@@ -207,8 +211,25 @@ class ResultsTextReport(object):
maxlen=maxlen)
print(output)
- def view_test_report(self, logger, source_dir, branch, commit, tag):
+ def view_test_report(self, logger, source_dir, branch, commit, tag, use_regression_map, raw_test, selected_test_case_only):
+ def print_selected_testcase_result(testresults, selected_test_case_only):
+ for testsuite in testresults:
+ for resultid in testresults[testsuite]:
+ result = testresults[testsuite][resultid]['result']
+ test_case_result = result.get(selected_test_case_only, {})
+ if test_case_result.get('status'):
+ print('Found selected test case result for %s from %s' % (selected_test_case_only,
+ resultid))
+ print(test_case_result['status'])
+ else:
+ print('Could not find selected test case result for %s from %s' % (selected_test_case_only,
+ resultid))
+ if test_case_result.get('log'):
+ print(test_case_result['log'])
test_count_reports = []
+ configmap = resultutils.store_map
+ if use_regression_map:
+ configmap = resultutils.regression_map
if commit:
if tag:
logger.warning("Ignoring --tag as --commit was specified")
@@ -216,12 +237,29 @@ class ResultsTextReport(object):
repo = GitRepo(source_dir)
revs = gitarchive.get_test_revs(logger, repo, tag_name, branch=branch)
rev_index = gitarchive.rev_find(revs, 'commit', commit)
- testresults = resultutils.git_get_result(repo, revs[rev_index][2])
+ testresults = resultutils.git_get_result(repo, revs[rev_index][2], configmap=configmap)
elif tag:
repo = GitRepo(source_dir)
- testresults = resultutils.git_get_result(repo, [tag])
+ testresults = resultutils.git_get_result(repo, [tag], configmap=configmap)
else:
- testresults = resultutils.load_resultsdata(source_dir)
+ testresults = resultutils.load_resultsdata(source_dir, configmap=configmap)
+ if raw_test:
+ raw_results = {}
+ for testsuite in testresults:
+ result = testresults[testsuite].get(raw_test, {})
+ if result:
+ raw_results[testsuite] = {raw_test: result}
+ if raw_results:
+ if selected_test_case_only:
+ print_selected_testcase_result(raw_results, selected_test_case_only)
+ else:
+ print(json.dumps(raw_results, sort_keys=True, indent=4))
+ else:
+ print('Could not find raw test result for %s' % raw_test)
+ return 0
+ if selected_test_case_only:
+ print_selected_testcase_result(testresults, selected_test_case_only)
+ return 0
for testsuite in testresults:
for resultid in testresults[testsuite]:
skip = False
@@ -248,7 +286,8 @@ class ResultsTextReport(object):
def report(args, logger):
report = ResultsTextReport()
- report.view_test_report(logger, args.source_dir, args.branch, args.commit, args.tag)
+ report.view_test_report(logger, args.source_dir, args.branch, args.commit, args.tag, args.use_regression_map,
+ args.raw_test_only, args.selected_test_case_only)
return 0
def register_commands(subparsers):
@@ -263,3 +302,11 @@ def register_commands(subparsers):
parser_build.add_argument('--commit', help="Revision to report")
parser_build.add_argument('-t', '--tag', default='',
help='source_dir is a git repository, report on the tag specified from that repository')
+ parser_build.add_argument('-m', '--use_regression_map', action='store_true',
+ help='instead of the default "store_map", use the "regression_map" for report')
+ parser_build.add_argument('-r', '--raw_test_only', default='',
+ help='output raw test result only for the user provided test result id')
+ parser_build.add_argument('-s', '--selected_test_case_only', default='',
+ help='output selected test case result for the user provided test case id, if both test '
+ 'result id and test case id are provided then output the selected test case result '
+ 'from the provided test result id')
diff --git a/scripts/lib/resulttool/resultutils.py b/scripts/lib/resulttool/resultutils.py
index 7cb85a6aa9..8917022d36 100644
--- a/scripts/lib/resulttool/resultutils.py
+++ b/scripts/lib/resulttool/resultutils.py
@@ -127,29 +127,32 @@ def decode_log(logdata):
data = logdata.get("compressed")
data = base64.b64decode(data.encode("utf-8"))
data = zlib.decompress(data)
- try:
- return data.decode("utf-8")
- except UnicodeDecodeError:
- return data
+ 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:
@@ -177,7 +180,7 @@ def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, p
with open(dst.replace(fn, "ptest-%s.log" % i), "w+") as f:
f.write(sectionlog)
-def git_get_result(repo, tags):
+def git_get_result(repo, tags, configmap=store_map):
git_objs = []
for tag in tags:
files = repo.run_cmd(['ls-tree', "--name-only", "-r", tag]).splitlines()
@@ -200,7 +203,7 @@ def git_get_result(repo, tags):
# Optimize by reading all data with one git command
results = {}
for obj in parse_json_stream(repo.run_cmd(['show'] + git_objs + ['--'])):
- append_resultsdata(results, obj)
+ append_resultsdata(results, obj, configmap=configmap)
return results
diff --git a/scripts/lib/resulttool/store.py b/scripts/lib/resulttool/store.py
index 79c83dd8b7..e0951f0a8f 100644
--- a/scripts/lib/resulttool/store.py
+++ b/scripts/lib/resulttool/store.py
@@ -24,6 +24,8 @@ def store(args, logger):
configvars = resultutils.extra_configvars.copy()
if args.executed_by:
configvars['EXECUTED_BY'] = args.executed_by
+ if args.extra_test_env:
+ configvars['EXTRA_TEST_ENV'] = args.extra_test_env
results = {}
logger.info('Reading files from %s' % args.source)
if resultutils.is_url(args.source) or os.path.isfile(args.source):
@@ -98,4 +100,5 @@ def register_commands(subparsers):
help='don\'t error if no results to store are found')
parser_build.add_argument('-x', '--executed-by', default='',
help='add executed-by configuration to each result file')
-
+ parser_build.add_argument('-t', '--extra-test-env', default='',
+ help='add extra test environment data to each result file configuration')
diff --git a/scripts/lib/resulttool/template/test_report_full_text.txt b/scripts/lib/resulttool/template/test_report_full_text.txt
index 17c99cb4e7..2efba2ef6f 100644
--- a/scripts/lib/resulttool/template/test_report_full_text.txt
+++ b/scripts/lib/resulttool/template/test_report_full_text.txt
@@ -8,7 +8,8 @@ Test Result Status Summary (Counts/Percentages sorted by testseries, ID)
{{ report.testseries.ljust(maxlen['testseries']) }} | {{ report.result_id.ljust(maxlen['result_id']) }} | {{ (report.passed|string).ljust(maxlen['passed']) }} | {{ (report.failed|string).ljust(maxlen['failed']) }} | {{ (report.skipped|string).ljust(maxlen['skipped']) }}
{% endfor %}
--------------------------------------------------------------------------------------------------------------
-
+{{ 'Total'.ljust(maxlen['testseries']) }} | {{ reporttotalvalues['count'].ljust(maxlen['result_id']) }} | {{ reporttotalvalues['passed'].ljust(maxlen['passed']) }} | {{ reporttotalvalues['failed'].ljust(maxlen['failed']) }} | {{ reporttotalvalues['skipped'].ljust(maxlen['skipped']) }}
+--------------------------------------------------------------------------------------------------------------
{% for machine in machines %}
{% if ptests[machine] %}
diff --git a/scripts/lib/scriptutils.py b/scripts/lib/scriptutils.py
index c573dc7f67..f92255d8dc 100644
--- a/scripts/lib/scriptutils.py
+++ b/scripts/lib/scriptutils.py
@@ -77,7 +77,6 @@ def logger_setup_color(logger, color='auto'):
def load_plugins(logger, plugins, pluginpath):
- import imp
def load_plugin(name):
logger.debug('Loading plugin %s' % name)
@@ -268,3 +267,13 @@ def is_src_url(param):
elif param.startswith('git@') or ('@' in param and param.endswith('.git')):
return True
return False
+
+def filter_src_subdirs(pth):
+ """
+ Filter out subdirectories of initial unpacked source trees that we do not care about.
+ Used by devtool and recipetool.
+ """
+ dirlist = os.listdir(pth)
+ filterout = ['git.indirectionsymlink', 'source-date-epoch']
+ dirlist = [x for x in dirlist if x not in filterout]
+ return dirlist
diff --git a/scripts/lib/wic/canned-wks/qemux86-directdisk.wks b/scripts/lib/wic/canned-wks/qemux86-directdisk.wks
index c8d9f121b5..22b45217f1 100644
--- a/scripts/lib/wic/canned-wks/qemux86-directdisk.wks
+++ b/scripts/lib/wic/canned-wks/qemux86-directdisk.wks
@@ -4,5 +4,5 @@
include common.wks.inc
-bootloader --timeout=0 --append="vga=0 rw oprofile.timer=1 rootfstype=ext4 "
+bootloader --timeout=0 --append="rw oprofile.timer=1 rootfstype=ext4 "
diff --git a/scripts/lib/wic/engine.py b/scripts/lib/wic/engine.py
index 61939ad194..018815b966 100644
--- a/scripts/lib/wic/engine.py
+++ b/scripts/lib/wic/engine.py
@@ -19,6 +19,7 @@ import os
import tempfile
import json
import subprocess
+import re
from collections import namedtuple, OrderedDict
from distutils.spawn import find_executable
@@ -279,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))
@@ -290,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:
@@ -313,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),
@@ -322,38 +326,80 @@ class Disk:
self._get_part_image(pnum),
path))
- def copy(self, src, pnum, path):
+ def copy(self, src, dest):
"""Copy partition image into wic image."""
+ pnum = dest.part if isinstance(src, str) else src.part
+
if self.partitions[pnum].fstype.startswith('ext'):
- cmd = "printf 'cd {}\nwrite {} {}\n' | {} -w {}".\
- format(path, src, os.path.basename(src),
+ if isinstance(src, str):
+ cmd = "printf 'cd {}\nwrite {} {}\n' | {} -w {}".\
+ format(os.path.dirname(dest.path), src, os.path.basename(src),
self.debugfs, self._get_part_image(pnum))
+ else: # copy from wic
+ # run both dump and rdump to support both files and directory
+ cmd = "printf 'cd {}\ndump /{} {}\nrdump /{} {}\n' | {} {}".\
+ format(os.path.dirname(src.path), src.path,
+ dest, src.path, dest, self.debugfs,
+ self._get_part_image(pnum))
else: # fat
- cmd = "{} -i {} -snop {} ::{}".format(self.mcopy,
+ if isinstance(src, str):
+ cmd = "{} -i {} -snop {} ::{}".format(self.mcopy,
+ self._get_part_image(pnum),
+ src, dest.path)
+ else:
+ cmd = "{} -i {} -snop ::{} {}".format(self.mcopy,
self._get_part_image(pnum),
- src, path)
+ src.path, dest)
+
exec_cmd(cmd, as_shell=True)
self._put_part_image(pnum)
- def remove(self, pnum, path):
+ def remove_ext(self, pnum, path, recursive):
+ """
+ Remove files/dirs and their contents from the partition.
+ This only applies to ext* partition.
+ """
+ abs_path = re.sub('\/\/+', '/', path)
+ cmd = "{} {} -wR 'rm \"{}\"'".format(self.debugfs,
+ self._get_part_image(pnum),
+ abs_path)
+ out = exec_cmd(cmd , as_shell=True)
+ for line in out.splitlines():
+ if line.startswith("rm:"):
+ if "file is a directory" in line:
+ if recursive:
+ # loop through content and delete them one by one if
+ # flaged with -r
+ subdirs = iter(self.dir(pnum, abs_path).splitlines())
+ next(subdirs)
+ for subdir in subdirs:
+ dir = subdir.split(':')[1].split(" ", 1)[1]
+ if not dir == "." and not dir == "..":
+ self.remove_ext(pnum, "%s/%s" % (abs_path, dir), recursive)
+
+ rmdir_out = exec_cmd("{} {} -wR 'rmdir \"{}\"'".format(self.debugfs,
+ self._get_part_image(pnum),
+ abs_path.rstrip('/'))
+ , as_shell=True)
+
+ for rmdir_line in rmdir_out.splitlines():
+ if "directory not empty" in rmdir_line:
+ raise WicError("Could not complete operation: \n%s \n"
+ "use -r to remove non-empty directory" % rmdir_line)
+ if rmdir_line.startswith("rmdir:"):
+ raise WicError("Could not complete operation: \n%s "
+ "\n%s" % (str(line), rmdir_line))
+
+ else:
+ raise WicError("Could not complete operation: \n%s "
+ "\nUnable to remove %s" % (str(line), abs_path))
+
+ def remove(self, pnum, path, recursive):
"""Remove files/dirs from the partition."""
partimg = self._get_part_image(pnum)
if self.partitions[pnum].fstype.startswith('ext'):
- cmd = "{} {} -wR 'rm {}'".format(self.debugfs,
- self._get_part_image(pnum),
- path)
- out = exec_cmd(cmd , as_shell=True)
- for line in out.splitlines():
- if line.startswith("rm:"):
- if "file is a directory" in line:
- # Try rmdir to see if this is an empty directory. This won't delete
- # any non empty directory so let user know about any error that this might
- # generate.
- print(exec_cmd("{} {} -wR 'rmdir {}'".format(self.debugfs,
- self._get_part_image(pnum),
- path), as_shell=True))
- else:
- raise WicError("Could not complete operation: wic %s" % str(line))
+ self.remove_ext(pnum, path, recursive)
+
else: # fat
cmd = "{} -i {} ::{}".format(self.mdel, partimg, path)
try:
@@ -396,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):
@@ -497,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)
@@ -523,11 +570,15 @@ def wic_ls(args, native_sysroot):
def wic_cp(args, native_sysroot):
"""
- Copy local file or directory to the vfat partition of
+ Copy file or directory to/from the vfat/ext partition of
partitioned image.
"""
- disk = Disk(args.dest.image, native_sysroot)
- disk.copy(args.src, args.dest.part, args.dest.path)
+ if isinstance(args.dest, str):
+ disk = Disk(args.src.image, native_sysroot)
+ else:
+ disk = Disk(args.dest.image, native_sysroot)
+ disk.copy(args.src, args.dest)
+
def wic_rm(args, native_sysroot):
"""
@@ -535,13 +586,13 @@ def wic_rm(args, native_sysroot):
partitioned image.
"""
disk = Disk(args.path.image, native_sysroot)
- disk.remove(args.path.part, args.path.path)
+ disk.remove(args.path.part, args.path.path, args.recursive_delete)
def wic_write(args, native_sysroot):
"""
Write image to a target device.
"""
- disk = Disk(args.image, native_sysroot, ('fat', 'ext', 'swap'))
+ disk = Disk(args.image, native_sysroot, ('fat', 'ext', 'linux-swap'))
disk.write(args.target, args.expand)
def find_canned(scripts_path, file_name):
diff --git a/scripts/lib/wic/filemap.py b/scripts/lib/wic/filemap.py
index a3919fbcad..4d9da28172 100644
--- a/scripts/lib/wic/filemap.py
+++ b/scripts/lib/wic/filemap.py
@@ -34,9 +34,11 @@ def get_block_size(file_obj):
# the FIGETBSZ ioctl (number 2).
try:
binary_data = fcntl.ioctl(file_obj, 2, struct.pack('I', 0))
+ bsize = struct.unpack('I', binary_data)[0]
except OSError:
- raise IOError("Unable to determine block size")
- bsize = struct.unpack('I', binary_data)[0]
+ bsize = None
+
+ # If ioctl causes OSError or give bsize to zero failback to os.fstat
if not bsize:
import os
stat = os.fstat(file_obj.fileno())
@@ -140,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
@@ -162,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
@@ -263,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
@@ -301,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
@@ -420,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
@@ -500,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):
"""
@@ -531,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 3a40fc0ea2..bd3a2b97df 100644
--- a/scripts/lib/wic/help.py
+++ b/scripts/lib/wic/help.py
@@ -341,12 +341,15 @@ DESCRIPTION
wic_cp_usage = """
- Copy files and directories to the vfat or ext* partition
+ Copy files and directories to/from the vfat or ext* partition
- usage: wic cp <src> <image>:<partition>[<path>] [--native-sysroot <path>]
+ usage: wic cp <src> <dest> [--native-sysroot <path>]
- This command copies local files or directories to the vfat or ext* partitions
-of partitioned image.
+ source/destination image in format <image>:<partition>[<path>]
+
+ This command copies files or directories either
+ - from local to vfat or ext* partitions of partitioned image
+ - from vfat or ext* partitions of partitioned image to local
See 'wic help cp' for more detailed instructions.
@@ -355,16 +358,18 @@ of partitioned image.
wic_cp_help = """
NAME
- wic cp - copy files and directories to the vfat or ext* partitions
+ wic cp - copy files and directories to/from the vfat or ext* partitions
SYNOPSIS
- wic cp <src> <image>:<partition>
- wic cp <src> <image>:<partition><path>
- wic cp <src> <image>:<partition><path> --native-sysroot <path>
+ wic cp <src> <dest>:<partition>
+ wic cp <src>:<partition> <dest>
+ wic cp <src> <dest-image>:<partition><path>
+ wic cp <src> <dest-image>:<partition><path> --native-sysroot <path>
DESCRIPTION
- This command copies files and directories to the vfat or ext* partition of
- the partitioned image.
+ This command copies files or directories either
+ - from local to vfat or ext* partitions of partitioned image
+ - from vfat or ext* partitions of partitioned image to local
The first form of it copies file or directory to the root directory of
the partition:
@@ -397,6 +402,10 @@ DESCRIPTION
4 files 0 bytes
15 675 392 bytes free
+ The third form of the command copies file or directory from the specified directory
+ on the partition to local:
+ $ wic cp tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic:1/vmlinuz test
+
The -n option is used to specify the path to the native sysroot
containing the tools(parted and mtools) to use.
"""
@@ -422,6 +431,7 @@ NAME
SYNOPSIS
wic rm <src> <image>:<partition><path>
wic rm <src> <image>:<partition><path> --native-sysroot <path>
+ wic rm -r <image>:<partition><path>
DESCRIPTION
This command removes files or directories from the vfat or ext* partition of the
@@ -456,6 +466,9 @@ DESCRIPTION
The -n option is used to specify the path to the native sysroot
containing the tools(parted and mtools) to use.
+
+ The -r option is used to remove directories and their contents
+ recursively,this only applies to ext* partition.
"""
wic_write_usage = """
@@ -478,7 +491,7 @@ NAME
SYNOPSIS
wic write <image> <target>
wic write <image> <target> --expand auto
- wic write <image> <target> --expand 1:100M-2:300M
+ wic write <image> <target> --expand 1:100M,2:300M
wic write <image> <target> --native-sysroot <path>
DESCRIPTION
@@ -489,7 +502,7 @@ DESCRIPTION
The --expand option is used to resize image partitions.
--expand auto expands partitions to occupy all free space available on the target device.
It's also possible to specify expansion rules in a format
- <partition>:<size>[-<partition>:<size>...] for one or more partitions.
+ <partition>:<size>[,<partition>:<size>...] for one or more partitions.
Specifying size 0 will keep partition unmodified.
Note: Resizing boot partition can result in non-bootable image for non-EFI images. It is
recommended to use size 0 for boot partition to keep image bootable.
@@ -523,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
@@ -956,6 +970,26 @@ DESCRIPTION
is omitted, not the directory itself. This option only
has an effect with the rootfs source plugin.
+ --include-path: This option is specific to wic. It adds the contents
+ 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
of the partition. The final size can go
@@ -1046,3 +1080,59 @@ NAME
DESCRIPTION
Specify a help topic to display it. Topics are shown above.
"""
+
+
+wic_help = """
+Creates a customized OpenEmbedded image.
+
+Usage: wic [--version]
+ wic help [COMMAND or TOPIC]
+ wic COMMAND [ARGS]
+
+ usage 1: Returns the current version of Wic
+ usage 2: Returns detailed help for a COMMAND or TOPIC
+ usage 3: Executes COMMAND
+
+
+COMMAND:
+
+ list - List available canned images and source plugins
+ ls - List contents of partitioned image or partition
+ rm - Remove files or directories from the vfat or ext* partitions
+ help - Show help for a wic COMMAND or TOPIC
+ write - Write an image to a device
+ cp - Copy files and directories to the vfat or ext* partitions
+ create - Create a new OpenEmbedded image
+
+
+TOPIC:
+ overview - Presents an overall overview of Wic
+ plugins - Presents an overview and API for Wic plugins
+ kickstart - Presents a Wic kicstart file reference
+
+
+Examples:
+
+ $ wic --version
+
+ Returns the current version of Wic
+
+
+ $ wic help cp
+
+ Returns the SYNOPSIS and DESCRIPTION for the Wic "cp" command.
+
+
+ $ wic list images
+
+ Returns the list of canned images (i.e. *.wks files located in
+ the /scripts/lib/wic/canned-wks directory.
+
+
+ $ wic create mkefidisk -e core-image-minimal
+
+ Creates an EFI disk image from artifacts used in a previous
+ core-image-minimal build in standard BitBake locations
+ (e.g. Cooked Mode).
+
+"""
diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py
index 6a643ba3af..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,8 +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("--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',
@@ -159,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')
@@ -245,6 +261,11 @@ class KickStart():
elif line.startswith('bootloader'):
if not self.bootloader:
self.bootloader = parsed
+ # Concatenate the strings set in APPEND
+ append_var = get_bitbake_var("APPEND")
+ if append_var:
+ self.bootloader.append = ' '.join(filter(None, \
+ (self.bootloader.append, append_var)))
else:
err = "%s:%d: more than one bootloader specified" \
% (confpath, lineno)
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 d809408e1a..ebe250b00d 100644
--- a/scripts/lib/wic/partition.py
+++ b/scripts/lib/wic/partition.py
@@ -30,6 +30,8 @@ class Partition():
self.device = None
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
@@ -38,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
@@ -189,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 2441cc33ad..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":
@@ -580,9 +595,7 @@ class PartitionedImage():
self.native_sysroot)
def cleanup(self):
- # remove partition images
- for image in set(self.partimages):
- os.remove(image)
+ pass
def assemble(self):
logger.debug("Installing partitions")
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/isoimage-isohybrid.py b/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
index 24299c1ece..11326a274b 100644
--- a/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
+++ b/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
@@ -336,19 +336,23 @@ class IsoImagePlugin(SourcePlugin):
(img_iso_dir, isodir)
exec_cmd(install_cmd)
else:
+ # Default to 100 blocks of extra space for file system overhead
+ esp_extra_blocks = int(source_params.get('esp_extra_blocks', '100'))
+
du_cmd = "du -bks %s/EFI" % isodir
out = exec_cmd(du_cmd)
blocks = int(out.split()[0])
- # Add some extra space for file system overhead
- blocks += 100
+ blocks += esp_extra_blocks
logger.debug("Added 100 extra blocks to %s to get to %d "
"total blocks", part.mountpoint, blocks)
# dosfs image for EFI boot
bootimg = "%s/efi.img" % isodir
- dosfs_cmd = 'mkfs.vfat -n "EFIimg" -S 512 -C %s %d' \
- % (bootimg, blocks)
+ esp_label = source_params.get('esp_label', 'EFIimg')
+
+ dosfs_cmd = 'mkfs.vfat -n \'%s\' -S 512 -C %s %d' \
+ % (esp_label, bootimg, blocks)
exec_native_cmd(dosfs_cmd, native_sysroot)
mmd_cmd = "mmd -i %s ::/EFI" % bootimg
diff --git a/scripts/lib/wic/plugins/source/rawcopy.py b/scripts/lib/wic/plugins/source/rawcopy.py
index df86d6729c..3c4997d8ba 100644
--- a/scripts/lib/wic/plugins/source/rawcopy.py
+++ b/scripts/lib/wic/plugins/source/rawcopy.py
@@ -57,7 +57,10 @@ class RawCopyPlugin(SourcePlugin):
raise WicError("No file specified")
src = os.path.join(kernel_dir, source_params['file'])
- dst = os.path.join(cr_workdir, "%s.%s" % (source_params['file'], part.lineno))
+ dst = os.path.join(cr_workdir, "%s.%s" % (os.path.basename(source_params['file']), part.lineno))
+
+ if not os.path.exists(os.path.dirname(dst)):
+ os.makedirs(os.path.dirname(dst))
if 'skip' in source_params:
sparse_copy(src, dst, skip=int(source_params['skip']))
diff --git a/scripts/lib/wic/plugins/source/rootfs.py b/scripts/lib/wic/plugins/source/rootfs.py
index e26e95b991..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 is not None:
+ 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,22 +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 orig_path in part.exclude_path:
+ #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.
@@ -109,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/native-intercept/chgrp b/scripts/native-intercept/chgrp
new file mode 100755
index 0000000000..399c979f9a
--- /dev/null
+++ b/scripts/native-intercept/chgrp
@@ -0,0 +1,5 @@
+#! /bin/sh
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+echo "Intercept $0: $@ -- do nothing"
diff --git a/scripts/oe-build-perf-report b/scripts/oe-build-perf-report
index 21bde7e156..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])
@@ -372,7 +372,7 @@ def print_html_report(data, id_comp, buildstats):
chart_opts=chart_opts))
-def get_buildstats(repo, notes_ref, revs, outdir=None):
+def get_buildstats(repo, notes_ref, notes_ref2, revs, outdir=None):
"""Get the buildstats from git notes"""
full_ref = 'refs/notes/' + notes_ref
if not repo.rev_parse(full_ref):
@@ -391,8 +391,13 @@ def get_buildstats(repo, notes_ref, revs, outdir=None):
for tag in rev.tags:
log.debug(' %s', tag)
try:
- bs_all = json.loads(repo.run_cmd(['notes', '--ref', notes_ref,
- 'show', tag + '^0']))
+ try:
+ bs_all = json.loads(repo.run_cmd(['notes', '--ref', notes_ref, 'show', tag + '^0']))
+ except GitError:
+ if notes_ref2:
+ bs_all = json.loads(repo.run_cmd(['notes', '--ref', notes_ref2, 'show', tag + '^0']))
+ else:
+ raise
except GitError:
log.warning("Buildstats not found for %s", tag)
bs_all = {}
@@ -504,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):
@@ -528,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
@@ -589,9 +594,12 @@ def main(argv=None):
buildstats = None
if args.dump_buildstats or args.html:
outdir = 'oe-build-perf-buildstats' if args.dump_buildstats else None
- notes_ref = 'buildstats/{}/{}/{}'.format(args.hostname, args.branch,
- args.machine)
- buildstats = get_buildstats(repo, notes_ref, [rev_l, rev_r], outdir)
+ notes_ref = 'buildstats/{}/{}/{}'.format(args.hostname, args.branch, args.machine)
+ notes_ref2 = None
+ if args.branch2:
+ notes_ref = 'buildstats/{}/{}/{}'.format(args.hostname, args.branch2, args.machine)
+ notes_ref2 = 'buildstats/{}/{}/{}'.format(args.hostname, args.branch, args.machine)
+ buildstats = get_buildstats(repo, notes_ref, notes_ref2, [rev_l, rev_r], outdir)
# Print report
if not args.html:
diff --git a/scripts/oe-build-perf-test b/scripts/oe-build-perf-test
index 0b13f24888..00e00b4ce9 100755
--- a/scripts/oe-build-perf-test
+++ b/scripts/oe-build-perf-test
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
#
# Build performance test script
#
diff --git a/scripts/oe-buildenv-internal b/scripts/oe-buildenv-internal
index 96bb0c3dc9..ba0a9b44d6 100755
--- a/scripts/oe-buildenv-internal
+++ b/scripts/oe-buildenv-internal
@@ -29,22 +29,15 @@ if [ -z "$OE_SKIP_SDK_CHECK" ] && [ -n "$OECORE_SDK_VERSION" ]; then
return 1
fi
-py_v27_check=$(python2 -c 'import sys; print sys.version_info >= (2,7,3)')
-if [ "$py_v27_check" != "True" ]; then
- echo >&2 "OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not python v3."
- echo >&2 "Please upgrade your python v2."
-fi
-unset py_v27_check
-
# 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
@@ -113,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-pkgdata-browser b/scripts/oe-pkgdata-browser
new file mode 100755
index 0000000000..8d223185a4
--- /dev/null
+++ b/scripts/oe-pkgdata-browser
@@ -0,0 +1,253 @@
+#! /usr/bin/env python3
+
+import os, sys, enum, ast
+
+scripts_path = os.path.dirname(os.path.realpath(__file__))
+lib_path = scripts_path + '/lib'
+sys.path = sys.path + [lib_path]
+
+import scriptpath
+bitbakepath = scriptpath.add_bitbake_lib_path()
+if not bitbakepath:
+ print("Unable to find bitbake by searching parent directory of this script or PATH")
+ sys.exit(1)
+import bb
+
+import gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk, Gdk, GObject
+
+RecipeColumns = enum.IntEnum("RecipeColumns", {"Recipe": 0})
+PackageColumns = enum.IntEnum("PackageColumns", {"Package": 0, "Size": 1})
+FileColumns = enum.IntEnum("FileColumns", {"Filename": 0, "Size": 1})
+
+import time
+def timeit(f):
+ def timed(*args, **kw):
+ ts = time.time()
+ print ("func:%r calling" % f.__name__)
+ result = f(*args, **kw)
+ te = time.time()
+ print ('func:%r args:[%r, %r] took: %2.4f sec' % \
+ (f.__name__, args, kw, te-ts))
+ return result
+ return timed
+
+def human_size(nbytes):
+ import math
+ suffixes = ['B', 'kB', 'MB', 'GB', 'TB', 'PB']
+ human = nbytes
+ rank = 0
+ if nbytes != 0:
+ rank = int((math.log10(nbytes)) / 3)
+ rank = min(rank, len(suffixes) - 1)
+ human = nbytes / (1000.0 ** rank)
+ f = ('%.2f' % human).rstrip('0').rstrip('.')
+ return '%s %s' % (f, suffixes[rank])
+
+def load(filename, suffix=None):
+ from configparser import ConfigParser
+ from itertools import chain
+
+ parser = ConfigParser()
+ if suffix:
+ parser.optionxform = lambda option: option.replace("_" + suffix, "")
+ with open(filename) as lines:
+ lines = chain(("[fake]",), lines)
+ parser.read_file(lines)
+
+ # TODO extract the data and put it into a real dict so we can transform some
+ # values to ints?
+ return parser["fake"]
+
+def find_pkgdata():
+ import subprocess
+ output = subprocess.check_output(("bitbake", "-e"), universal_newlines=True)
+ for line in output.splitlines():
+ if line.startswith("PKGDATA_DIR="):
+ return line.split("=", 1)[1].strip("\'\"")
+ # TODO exception or something
+ return None
+
+def packages_in_recipe(pkgdata, recipe):
+ """
+ Load the recipe pkgdata to determine the list of runtime packages.
+ """
+ data = load(os.path.join(pkgdata, recipe))
+ packages = data["PACKAGES"].split()
+ return packages
+
+def load_runtime_package(pkgdata, package):
+ return load(os.path.join(pkgdata, "runtime", package), suffix=package)
+
+def recipe_from_package(pkgdata, package):
+ data = load(os.path.join(pkgdata, "runtime", package), suffix=package)
+ return data["PN"]
+
+def summary(data):
+ s = ""
+ s += "{0[PKG]} {0[PKGV]}-{0[PKGR]}\n{0[LICENSE]}\n{0[SUMMARY]}\n".format(data)
+
+ return s
+
+
+class PkgUi():
+ def __init__(self, pkgdata):
+ self.pkgdata = pkgdata
+ self.current_recipe = None
+ self.recipe_iters = {}
+ self.package_iters = {}
+
+ builder = Gtk.Builder()
+ builder.add_from_file(os.path.join(os.path.dirname(__file__), "oe-pkgdata-browser.glade"))
+
+ self.window = builder.get_object("window")
+ self.window.connect("delete-event", Gtk.main_quit)
+
+ self.recipe_store = builder.get_object("recipe_store")
+ self.recipe_view = builder.get_object("recipe_view")
+ self.package_store = builder.get_object("package_store")
+ self.package_view = builder.get_object("package_view")
+
+ # Somehow resizable does not get set via builder xml
+ package_name_column = builder.get_object("package_name_column")
+ package_name_column.set_resizable(True)
+ file_name_column = builder.get_object("file_name_column")
+ file_name_column.set_resizable(True)
+
+ self.recipe_view.get_selection().connect("changed", self.on_recipe_changed)
+ self.package_view.get_selection().connect("changed", self.on_package_changed)
+
+ self.package_store.set_sort_column_id(PackageColumns.Package, Gtk.SortType.ASCENDING)
+ builder.get_object("package_size_column").set_cell_data_func(builder.get_object("package_size_cell"), lambda column, cell, model, iter, data: cell.set_property("text", human_size(model[iter][PackageColumns.Size])))
+
+ self.label = builder.get_object("label1")
+ self.depends_label = builder.get_object("depends_label")
+ self.recommends_label = builder.get_object("recommends_label")
+ self.suggests_label = builder.get_object("suggests_label")
+ self.provides_label = builder.get_object("provides_label")
+
+ self.depends_label.connect("activate-link", self.on_link_activate)
+ self.recommends_label.connect("activate-link", self.on_link_activate)
+ self.suggests_label.connect("activate-link", self.on_link_activate)
+
+ self.file_store = builder.get_object("file_store")
+ self.file_store.set_sort_column_id(FileColumns.Filename, Gtk.SortType.ASCENDING)
+ builder.get_object("file_size_column").set_cell_data_func(builder.get_object("file_size_cell"), lambda column, cell, model, iter, data: cell.set_property("text", human_size(model[iter][FileColumns.Size])))
+
+ self.files_view = builder.get_object("files_scrollview")
+ self.files_label = builder.get_object("files_label")
+
+ self.load_recipes()
+
+ self.recipe_view.set_cursor(Gtk.TreePath.new_first())
+
+ self.window.show()
+
+ def on_link_activate(self, label, url_string):
+ from urllib.parse import urlparse
+ url = urlparse(url_string)
+ if url.scheme == "package":
+ package = url.path
+ recipe = recipe_from_package(self.pkgdata, package)
+
+ it = self.recipe_iters[recipe]
+ path = self.recipe_store.get_path(it)
+ self.recipe_view.set_cursor(path)
+ self.recipe_view.scroll_to_cell(path)
+
+ self.on_recipe_changed(self.recipe_view.get_selection())
+
+ it = self.package_iters[package]
+ path = self.package_store.get_path(it)
+ self.package_view.set_cursor(path)
+ self.package_view.scroll_to_cell(path)
+
+ return True
+ else:
+ return False
+
+ def on_recipe_changed(self, selection):
+ self.package_store.clear()
+ self.package_iters = {}
+
+ (model, it) = selection.get_selected()
+ if not it:
+ return
+
+ recipe = model[it][RecipeColumns.Recipe]
+ packages = packages_in_recipe(self.pkgdata, recipe)
+ for package in packages:
+ # TODO also show PKG after debian-renaming?
+ data = load_runtime_package(self.pkgdata, package)
+ # TODO stash data to avoid reading in on_package_changed
+ self.package_iters[package] = self.package_store.append([package, int(data["PKGSIZE"])])
+
+ package = recipe if recipe in packages else sorted(packages)[0]
+ path = self.package_store.get_path(self.package_iters[package])
+ self.package_view.set_cursor(path)
+ self.package_view.scroll_to_cell(path)
+
+ def on_package_changed(self, selection):
+ self.label.set_text("")
+ self.file_store.clear()
+ self.depends_label.hide()
+ self.recommends_label.hide()
+ self.suggests_label.hide()
+ self.provides_label.hide()
+ self.files_view.hide()
+ self.files_label.hide()
+
+ (model, it) = selection.get_selected()
+ if it is None:
+ return
+
+ package = model[it][PackageColumns.Package]
+ data = load_runtime_package(self.pkgdata, package)
+
+ self.label.set_text(summary(data))
+
+ files = ast.literal_eval(data["FILES_INFO"])
+ if files:
+ self.files_label.set_text("{0} files take {1}.".format(len(files), human_size(int(data["PKGSIZE"]))))
+ self.files_view.show()
+ for filename, size in files.items():
+ self.file_store.append([filename, size])
+ else:
+ self.files_view.hide()
+ self.files_label.set_text("This package has no files.")
+ self.files_label.show()
+
+ def update_deps(field, prefix, label, clickable=True):
+ if field in data:
+ l = []
+ for name, version in bb.utils.explode_dep_versions2(data[field]).items():
+ if clickable:
+ l.append("<a href='package:{0}'>{0}</a> {1}".format(name, " ".join(version)).strip())
+ else:
+ l.append("{0} {1}".format(name, " ".join(version)).strip())
+ label.set_markup(prefix + ", ".join(l))
+ label.show()
+ else:
+ label.hide()
+ update_deps("RDEPENDS", "Depends: ", self.depends_label)
+ update_deps("RRECOMMENDS", "Recommends: ", self.recommends_label)
+ update_deps("RSUGGESTS", "Suggests: ", self.suggests_label)
+ update_deps("RPROVIDES", "Provides: ", self.provides_label, clickable=False)
+
+ def load_recipes(self):
+ for recipe in sorted(os.listdir(pkgdata)):
+ if os.path.isfile(os.path.join(pkgdata, recipe)):
+ self.recipe_iters[recipe] = self.recipe_store.append([recipe])
+
+if __name__ == "__main__":
+ import argparse
+
+ parser = argparse.ArgumentParser(description='pkgdata browser')
+ parser.add_argument('-p', '--pkgdata', help="Optional location of pkgdata")
+
+ args = parser.parse_args()
+ pkgdata = args.pkgdata if args.pkgdata else find_pkgdata()
+ # TODO assert pkgdata is a directory
+ window = PkgUi(pkgdata)
+ Gtk.main()
diff --git a/scripts/oe-pkgdata-browser.glade b/scripts/oe-pkgdata-browser.glade
new file mode 100644
index 0000000000..0d06c825ff
--- /dev/null
+++ b/scripts/oe-pkgdata-browser.glade
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
+<interface>
+ <requires lib="gtk+" version="3.12"/>
+ <object class="GtkListStore" id="file_store">
+ <columns>
+ <!-- column-name Filename -->
+ <column type="gchararray"/>
+ <!-- column-name Size -->
+ <column type="glong"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="package_store">
+ <columns>
+ <!-- column-name Package -->
+ <column type="gchararray"/>
+ <!-- column-name Size -->
+ <column type="glong"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="pkgdata_store">
+ <columns>
+ <!-- column-name Name -->
+ <column type="gchararray"/>
+ <!-- column-name Path -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="recipe_store">
+ <columns>
+ <!-- column-name Recipe -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkWindow" id="window">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Package Data Browser</property>
+ <property name="default_width">1200</property>
+ <property name="default_height">900</property>
+ <property name="icon_name">accessories-dictionary</property>
+ <property name="has_resize_grip">True</property>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">4</property>
+ <property name="margin_right">4</property>
+ <property name="margin_top">4</property>
+ <property name="margin_bottom">4</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkComboBox" id="pkgdata_combo">
+ <property name="can_focus">False</property>
+ <property name="model">pkgdata_store</property>
+ <property name="id_column">1</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext5"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkPaned" id="paned1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="position">400</property>
+ <property name="position_set">True</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <property name="min_content_width">100</property>
+ <child>
+ <object class="GtkTreeView" id="recipe_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">recipe_store</property>
+ <property name="search_column">0</property>
+ <property name="fixed_height_mode">True</property>
+ <property name="show_expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection1"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <property name="sizing">fixed</property>
+ <property name="title" translatable="yes">Recipe</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">False</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkPaned" id="paned2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="position">400</property>
+ <property name="position_set">True</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <property name="min_content_width">100</property>
+ <child>
+ <object class="GtkTreeView" id="package_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">package_store</property>
+ <property name="search_column">0</property>
+ <property name="show_expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection2"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="package_name_column">
+ <property name="resizable">True</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Package</property>
+ <property name="sort_column_id">0</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="package_size_column">
+ <property name="resizable">True</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Size</property>
+ <property name="sort_column_id">1</property>
+ <child>
+ <object class="GtkCellRendererText" id="package_size_cell"/>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">False</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">4</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">label</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="depends_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">depends_label</property>
+ <property name="wrap">True</property>
+ <property name="track_visited_links">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="recommends_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">recs_label</property>
+ <property name="wrap">True</property>
+ <property name="track_visited_links">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="suggests_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">suggests_label</property>
+ <property name="wrap">True</property>
+ <property name="track_visited_links">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="provides_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">provides_label</property>
+ <property name="wrap">True</property>
+ <property name="track_visited_links">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="files_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">files_label</property>
+ <property name="ellipsize">end</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="files_scrollview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="files_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">file_store</property>
+ <property name="rules_hint">True</property>
+ <property name="search_column">0</property>
+ <property name="show_expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection3"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="file_name_column">
+ <property name="title" translatable="yes">Name</property>
+ <property name="sort_indicator">True</property>
+ <property name="sort_column_id">0</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext3">
+ <property name="background_rgba">rgba(0,0,0,0)</property>
+ </object>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="file_size_column">
+ <property name="title" translatable="yes">Size</property>
+ <property name="sort_indicator">True</property>
+ <property name="sort_column_id">1</property>
+ <child>
+ <object class="GtkCellRendererText" id="file_size_cell"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index 9cc78d1104..93220e3617 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -389,21 +389,16 @@ def list_pkgs(args):
return False
return True
+ pkglist = []
if args.recipe:
packages = get_recipe_pkgs(args.pkgdata_dir, args.recipe, args.unpackaged)
if args.runtime:
- pkglist = []
runtime_pkgs = lookup_pkglist(packages, args.pkgdata_dir, False)
for rtpkgs in runtime_pkgs.values():
pkglist.extend(rtpkgs)
else:
pkglist = packages
-
- for pkg in pkglist:
- if matchpkg(pkg):
- found = True
- print("%s" % pkg)
else:
if args.runtime:
searchdir = 'runtime-reverse'
@@ -414,9 +409,13 @@ def list_pkgs(args):
for fn in files:
if fn.endswith('.packaged'):
continue
- if matchpkg(fn):
- found = True
- print("%s" % fn)
+ pkglist.append(fn)
+
+ for pkg in sorted(pkglist):
+ if matchpkg(pkg):
+ found = True
+ print("%s" % pkg)
+
if not found:
if args.pkgspec:
logger.error("Unable to find any package matching %s" % args.pkgspec)
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/oe-run-native b/scripts/oe-run-native
index bea5d696d7..4e63e69cc4 100755
--- a/scripts/oe-run-native
+++ b/scripts/oe-run-native
@@ -16,7 +16,7 @@ if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
echo 'OpenEmbedded run-native - runs native tools'
echo ''
echo 'arguments:'
- echo ' native-recipe The recipe which provoides tool'
+ echo ' native-recipe The recipe which provides tool'
echo ' tool Native tool to run'
echo ''
exit 2
diff --git a/scripts/postinst-intercepts/update_desktop_database b/scripts/postinst-intercepts/update_desktop_database
new file mode 100644
index 0000000000..8903b496f3
--- /dev/null
+++ b/scripts/postinst-intercepts/update_desktop_database
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# SPDX-License-Identifier: MIT
+#
+# Post-install intercept for mime-xdg.bbclass
+
+update-desktop-database $D${desktop_dir}
+
diff --git a/scripts/postinst-intercepts/update_font_cache b/scripts/postinst-intercepts/update_font_cache
index 3053c7065f..900db042d6 100644
--- a/scripts/postinst-intercepts/update_font_cache
+++ b/scripts/postinst-intercepts/update_font_cache
@@ -5,5 +5,9 @@
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}
+find $D -type f -name .uuid -exec chown root:root '{}' +
diff --git a/scripts/postinst-intercepts/update_mime_database b/scripts/postinst-intercepts/update_mime_database
new file mode 100644
index 0000000000..582d1e162c
--- /dev/null
+++ b/scripts/postinst-intercepts/update_mime_database
@@ -0,0 +1,9 @@
+#!/bin/sh
+#
+# SPDX-License-Identifier: MIT
+#
+# Post-install intercept for mime.bbclass
+
+echo "Updating MIME database... this may take a while."
+update-mime-database $D${mimedir}
+
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/draw.py b/scripts/pybootchartgui/pybootchartgui/draw.py
index add5c53882..53324b9f8b 100644
--- a/scripts/pybootchartgui/pybootchartgui/draw.py
+++ b/scripts/pybootchartgui/pybootchartgui/draw.py
@@ -308,7 +308,7 @@ sec_w_base = 1 # the width of a second
proc_h = 16 # the height of a process
leg_s = 10
MIN_IMG_W = 800
-CUML_HEIGHT = 2000 # Increased value to accomodate CPU and I/O Graphs
+CUML_HEIGHT = 2000 # Increased value to accommodate CPU and I/O Graphs
OPTIONS = None
def extents(options, xscale, trace):
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/rpm2cpio.sh b/scripts/rpm2cpio.sh
index 876c53c5d9..7cd771bbe7 100755
--- a/scripts/rpm2cpio.sh
+++ b/scripts/rpm2cpio.sh
@@ -22,7 +22,8 @@ calcsize() {
i=0
while [ $i -lt 8 ]; do
- b="$(_dd $(($offset + $i)) bs=1 count=1)"
+ b=$(_dd $(($offset + $i)) bs=1 count=1; echo X)
+ b=${b%X}
[ -z "$b" ] &&
b="0" ||
b="$(exec printf '%u\n' "'$b")"
diff --git a/scripts/runqemu b/scripts/runqemu
index 1a5aca98ac..e5e66f3453 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -67,9 +67,9 @@ of the following environment variables (in any order):
nographic - disable video console
sdl - choose the SDL UI frontend
gtk - choose the Gtk UI frontend
- gl - enable virgl-based GL acceleration (also needs gtk option)
- gl-es - enable virgl-based GL acceleration, using OpenGL ES (also needs gtk option)
- egl-headless - enable headless EGL output; use vnc or spice to see it
+ gl - enable virgl-based GL acceleration (also needs gtk or sdl options)
+ gl-es - enable virgl-based GL acceleration, using OpenGL ES (also needs gtk or sdl options)
+ egl-headless - enable headless EGL output; use vnc (via publicvnc option) or spice to see it
serial - enable a serial console on /dev/ttyS0
serialstdio - enable a serial console on the console (regardless of graphics mode)
slirp - enable user networking, no root privileges is required
@@ -135,6 +135,7 @@ class BaseConfig(object):
'DEPLOY_DIR_IMAGE',
'OE_TMPDIR',
'OECORE_NATIVE_SYSROOT',
+ 'MULTICONFIG',
)
self.qemu_opt = ''
@@ -164,6 +165,7 @@ class BaseConfig(object):
self.kvm_enabled = False
self.vhost_enabled = False
self.slirp_enabled = False
+ self.net_bridge = None
self.nfs_instance = 0
self.nfs_running = False
self.serialconsole = False
@@ -183,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.
@@ -401,9 +405,7 @@ class BaseConfig(object):
self.set("MACHINE", arg)
return
- cmd = 'MACHINE=%s bitbake -e' % arg
- logger.info('Running %s...' % cmd)
- self.bitbake_e = subprocess.check_output(cmd, shell=True).decode('utf-8')
+ self.bitbake_e = self.run_bitbake_env(arg)
# bitbake -e doesn't report invalid MACHINE as an error, so
# let's check DEPLOY_DIR_IMAGE to make sure that it is a valid
# MACHINE.
@@ -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,41 +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':
- self.qemu_opt_script += ' -display sdl'
+ if 'gl' in sys.argv[1:]:
+ 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.set_dri_path()
+ self.qemu_opt_script += ' -vga virtio -display sdl,gl=es,show-cursor=on'
+ else:
+ 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']
- 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
@@ -480,6 +503,8 @@ class BaseConfig(object):
self.vhost_enabled = True
elif arg == 'slirp':
self.slirp_enabled = True
+ elif arg.startswith('bridge='):
+ self.net_bridge = '%s' % arg[len('bridge='):]
elif arg == 'snapshot':
self.snapshot = True
elif arg == 'publicvnc':
@@ -565,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"""
@@ -797,7 +822,7 @@ class BaseConfig(object):
def check_and_set(self):
"""Check configs sanity and set when needed"""
self.validate_paths()
- if not self.slirp_enabled:
+ if not self.slirp_enabled and not self.net_bridge:
check_tun()
# Check audio
if self.audio_enabled:
@@ -927,29 +952,30 @@ class BaseConfig(object):
self.set('STAGING_BINDIR_NATIVE', '%s/usr/bin' % self.get('STAGING_DIR_NATIVE'))
def print_config(self):
- logger.info('Continuing with the following parameters:\n')
+ logoutput = ['Continuing with the following parameters:']
if not self.fstype in self.vmtypes:
- print('KERNEL: [%s]' % self.kernel)
+ logoutput.append('KERNEL: [%s]' % self.kernel)
if self.bios:
- print('BIOS: [%s]' % self.bios)
+ logoutput.append('BIOS: [%s]' % self.bios)
if self.dtb:
- print('DTB: [%s]' % self.dtb)
- print('MACHINE: [%s]' % self.get('MACHINE'))
+ logoutput.append('DTB: [%s]' % self.dtb)
+ logoutput.append('MACHINE: [%s]' % self.get('MACHINE'))
try:
fstype_flags = ' (' + ', '.join(self.fsinfo[self.fstype]) + ')'
except KeyError:
fstype_flags = ''
- print('FSTYPE: [%s%s]' % (self.fstype, fstype_flags))
+ logoutput.append('FSTYPE: [%s%s]' % (self.fstype, fstype_flags))
if self.fstype == 'nfs':
- print('NFS_DIR: [%s]' % self.rootfs)
+ logoutput.append('NFS_DIR: [%s]' % self.rootfs)
else:
- print('ROOTFS: [%s]' % self.rootfs)
+ logoutput.append('ROOTFS: [%s]' % self.rootfs)
if self.ovmf_bios:
- print('OVMF: %s' % self.ovmf_bios)
+ logoutput.append('OVMF: %s' % self.ovmf_bios)
if (self.ovmf_secboot_pkkek1):
- print('SECBOOT PKKEK1: [%s...]' % self.ovmf_secboot_pkkek1[0:100])
- print('CONFFILE: [%s]' % self.qemuboot)
- print('')
+ logoutput.append('SECBOOT PKKEK1: [%s...]' % self.ovmf_secboot_pkkek1[0:100])
+ logoutput.append('CONFFILE: [%s]' % self.qemuboot)
+ logoutput.append('')
+ logger.info('\n'.join(logoutput))
def setup_nfs(self):
if not self.nfs_server:
@@ -979,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)):
@@ -1014,12 +1040,18 @@ class BaseConfig(object):
self.nfs_running = True
+ def setup_net_bridge(self):
+ self.set('NETWORK_CMD', '-netdev bridge,br=%s,id=net0,helper=%s -device virtio-net-pci,netdev=net0 ' % (
+ self.net_bridge, os.path.join(self.bindir_native, 'qemu-oe-bridge-helper')))
+
def setup_slirp(self):
"""Setup user networking"""
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'))
@@ -1114,7 +1146,11 @@ class BaseConfig(object):
uid = os.getuid()
logger.info("Setting up tap interface under sudo")
cmd = ('sudo', self.qemuifup, str(uid), str(gid), self.bindir_native)
- tap = subprocess.check_output(cmd).decode('utf-8').strip()
+ try:
+ tap = subprocess.check_output(cmd).decode('utf-8').strip()
+ except subprocess.CalledProcessError as e:
+ logger.error('Setting up tap device failed:\n%s\nRun runqemu-gen-tapdevs to manually create one.' % str(e))
+ sys.exit(1)
lockfile = os.path.join(lockdir, tap)
self.taplock = lockfile + '.lock'
self.acquire_taplock()
@@ -1123,16 +1159,18 @@ class BaseConfig(object):
if not tap:
logger.error("Failed to setup tap device. Run runqemu-gen-tapdevs to manually create.")
- return 1
+ sys.exit(1)
self.tap = tap
tapnum = int(tap[3:])
gateway = tapnum * 2 + 1
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:
@@ -1151,9 +1189,13 @@ class BaseConfig(object):
if sys.stdin.isatty():
self.saved_stty = subprocess.check_output(("stty", "-g")).decode('utf-8').strip()
self.network_device = self.get('QB_NETWORK_DEVICE') or self.network_device
- if self.slirp_enabled:
+ 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):
@@ -1169,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
@@ -1181,11 +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%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).
@@ -1196,13 +1246,15 @@ 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.kernel_cmdline = 'root=%s rw highres=off' % (self.get('QB_KERNEL_ROOT'))
+ 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':
self.rootfs_options = ''
k_root = '/dev/nfs nfsroot=%s:%s,%s' % (self.nfs_server, os.path.abspath(self.rootfs), self.unfs_opts)
- self.kernel_cmdline = 'root=%s rw highres=off' % k_root
+ self.kernel_cmdline = 'root=%s rw' % k_root
if self.fstype == 'none':
self.rootfs_options = ''
@@ -1284,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]
@@ -1399,10 +1451,7 @@ class BaseConfig(object):
self.cleaned = True
- def load_bitbake_env(self, mach=None):
- if self.bitbake_e:
- return
-
+ def run_bitbake_env(self, mach=None):
bitbake = shutil.which('bitbake')
if not bitbake:
return
@@ -1410,14 +1459,24 @@ class BaseConfig(object):
if not mach:
mach = self.get('MACHINE')
+ multiconfig = self.get('MULTICONFIG')
+ if multiconfig:
+ multiconfig = "mc:%s" % multiconfig
+
if mach:
- cmd = 'MACHINE=%s bitbake -e' % mach
+ cmd = 'MACHINE=%s bitbake -e %s' % (mach, multiconfig)
else:
- cmd = 'bitbake -e'
+ cmd = 'bitbake -e %s' % multiconfig
logger.info('Running %s...' % cmd)
+ return subprocess.check_output(cmd, shell=True).decode('utf-8')
+
+ def load_bitbake_env(self, mach=None):
+ if self.bitbake_e:
+ return
+
try:
- self.bitbake_e = subprocess.check_output(cmd, shell=True).decode('utf-8')
+ self.bitbake_e = self.run_bitbake_env(mach=mach)
except subprocess.CalledProcessError as err:
self.bitbake_e = ''
logger.warning("Couldn't run 'bitbake -e' to gather environment information:\n%s" % err.output.decode('utf-8'))
@@ -1432,7 +1491,13 @@ class BaseConfig(object):
if result and os.path.exists(result):
return result
- cmd = ('bitbake', 'qemu-helper-native', '-e')
+ cmd = ['bitbake', '-e']
+ multiconfig = self.get('MULTICONFIG')
+ if multiconfig:
+ cmd.append('mc:%s:qemu-helper-native' % multiconfig)
+ else:
+ cmd.append('qemu-helper-native')
+
logger.info('Running %s...' % str(cmd))
out = subprocess.check_output(cmd).decode('utf-8')
@@ -1454,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/wic b/scripts/wic
index 1d89fb2eda..24700f380f 100755
--- a/scripts/wic
+++ b/scripts/wic
@@ -392,9 +392,9 @@ def imgpathtype(arg):
def wic_init_parser_cp(subparser):
subparser.add_argument("src",
- help="source spec")
- subparser.add_argument("dest", type=imgpathtype,
- help="image spec: <image>:<vfat partition>[<path>]")
+ help="image spec: <image>:<vfat partition>[<path>] or <file>")
+ subparser.add_argument("dest",
+ help="image spec: <image>:<vfat partition>[<path>] or <file>")
subparser.add_argument("-n", "--native-sysroot",
help="path to the native sysroot containing the tools")
@@ -403,6 +403,9 @@ def wic_init_parser_rm(subparser):
help="path: <image>:<vfat partition><path>")
subparser.add_argument("-n", "--native-sysroot",
help="path to the native sysroot containing the tools")
+ subparser.add_argument("-r", dest="recursive_delete", action="store_true", default=False,
+ help="remove directories and their contents recursively, "
+ " this only applies to ext* partition")
def expandtype(rules):
"""
@@ -495,14 +498,18 @@ def init_parser(parser):
subparser = subparsers.add_parser(subcmd, help=subcommands[subcmd][2])
subcommands[subcmd][3](subparser)
+class WicArgumentParser(argparse.ArgumentParser):
+ def format_help(self):
+ return hlp.wic_help
def main(argv):
- parser = argparse.ArgumentParser(
+ parser = WicArgumentParser(
description="wic version %s" % __version__)
init_parser(parser)
args = parser.parse_args(argv)
+
if args.debug:
logger.setLevel(logging.DEBUG)
@@ -510,13 +517,21 @@ def main(argv):
if args.command == "help":
if args.help_topic is None:
parser.print_help()
- print()
- print("Please specify a help topic")
elif args.help_topic in helptopics:
hlpt = helptopics[args.help_topic]
hlpt[0](hlpt[1], hlpt[2])
return 0
+ # validate wic cp src and dest parameter to identify which one of it is
+ # image and cast it into imgtype
+ if args.command == "cp":
+ if ":" in args.dest:
+ args.dest = imgtype(args.dest)
+ elif ":" in args.src:
+ args.src = imgtype(args.src)
+ else:
+ raise argparse.ArgumentTypeError("no image or partition number specified.")
+
return hlp.invoke_subcommand(args, parser, hlp.wic_help_usage, subcommands)
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']))